Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Jak pobrać rekordy by otrzymać tablicę
Forum PHP.pl > Forum > Przedszkole
szczabik
Witam jak mogę pobrać rekordy z bazy danych by otrzymać taką tablicę
  1. <?php
  2. $pytania = Array(
  3. "Co to jest PHP?`język programowania`bohater kreskówki`marka kotłów parowych",
  4. "Kiedy była bitwa pod Grunwaldem?`1410`1456`1520`1100`nigdy jej nie było!",
  5. "Najbardziej znana mysz?`Miki`Mia"
  6. );
  7. ?>
Mlodycompany
z reguły zmienne łączy się za pomocą '.' czyli np.
  1. <?php
  2. $zmiennaA = 'a';
  3.  
  4. $zmiennaB = 'b';
  5.  
  6. $zmiennaC = $zmiennaA.$zmiennaB; //daje to ab
  7. ?>
szczabik
A jak zrobić by z tej zmiennej Każdy element tablicy odpowiadał linii pliku chodzi mi cos podobnego do
  1. <?php
  2. $pytania = file("test001.txt");
  3. ?>

tylko nie chce pobierać danych z pliku tylko zrobić tak

  1. <?php
  2. $pytania = ("Jakie miasto jest stolicą Polski?`Warszawa`Poznań`Kraków`Płock
  3. Kiedy była bitwa pod Grunwaldem?`1410`1456`1520`1100`nigdy jej nie było!
  4. Najbardziej znana mysz?`Miki`Mia
  5. Co to jest PHP?`język programowania`bohater kreskówki`marka kotłów parowych");
  6. ?>


Chciałbym funkcje która zwróci mi to samo co file
Mlodycompany
nie wiem wogóle jak ten quiz ma działać. Ja bym zrobił to tak: 

ID|pytanie|odp1|odp2|odp3|odp4|poprawnaOdpowiedz

Wyciagasz rekordy z bazy i robisz sobie formularz typu radio gdzie umieszczasz odpowiedzi. User zaznacza poprawna odpowiedz i po wyslaniu danych sprawdzasz czy zaznaczona odpowiedz jest poprawna i dodajesz tam jakies punkciki czy cos tam.
WojtasSP320
Po kilku minutach ciężkiego i intensywnego myślenia nad tym co napisałeś chyba wiem o co ci chodzi smile.gif

Zakładam, że masz bazę danych MySQL z tabelą powiedzmy quiz, w której są pola: Pytanie, Odp1, Odp2, Odp3 ... Odp (n)

czyli robisz tak:

  1. <?php
  2. $index=0;
  3. $pytania;
  4.  
  5. #połączenie z bazą
  6. $uchwyt = mysql_connect(host,user,password);
  7. $data = mysql_query("SELECT * FROM quiz'");
  8. mysql_close($uchwyt);
  9.  
  10. #przetwarzanie danych
  11. while ($rekord = mysql_fetch_assoc($data))
  12. {
  13.   $pytania[$index] ='';
  14.   foreach ($rekord as $key => $value)
  15.   {
  16.       $pytania[$index] .= $value.'`';
  17.   }
  18.   $pytania[$index] = rtrim($pytania,'`'); //Obcinanie ostatniego "`"
  19.   $index++;
  20. }
  21. ?>


Powinno działać.

W tym momencie masz tablicę $pytania, gdzie każda komórka zawiera dokładnie jeden rekord z bazy MySQL. Wygląda to tak:

$pytania[0] = "Pytanie1`Odp`Odp`Odp`...Odp"
$pytania[1] = "Pytanie2`Odp`Odp`Odp`...Odp"
$pytania[2] = "Pytanie3`Odp`Odp`Odp`...Odp"
...
$pytania[n] = "Pytanie(n)`Odp`Odp`Odp`...Odp"

BTW następnym razem pisz jaśniej...
szczabik
WojtasSP320 o to mi chodziło ale nie działa tak jak trzeba wyświetla mi Array
peter13135
no teraz to wyświetlasz w ten sposób:

echo $pytania[1]
szczabik
Nie o to mi chodzi bo dalej mam taki kod

  1. <?php
  2. $pytania = file("test001.txt");
  3. ?>


Pytania pobieram z pliku txt i mam je tam zapisane tak

Jakie miasto jest stolicą Polski?`Warszawa`Poznań`Kraków`Płock
Kiedy była bitwa pod Grunwaldem?`1410`1456`1520`1100`nigdy jej nie było!
Najbardziej znana mysz?`Miki`Mia
Co to jest PHP?`język programowania`bohater kreskówki`marka kotłów parowych

I teraz chce zrobić to sam ale na bazie danych czyli w bazie danych mam tak

Co to jest PHP?`język programowania`bohater kreskówki`marka kotłów parowych

Czyli jeden rekord to jeden wiersz i chce je pobrac z bazy tak samo jakbym jej pobrał z pliku txt

A dalej mam taki kod

  1. <?php
  2. $ile = count($pytania); $dobre=0;
  3.  for ($o=0; $o<$ile ;$o++) if ($f[$o]==1) $dobre++;
  4. ?>


Chyba rozumiecie o co chodzi ?


Sposób jaki podał WojtasSP320 jest dobry ale nie działa wyświetla mi
1. Array
2. Array
Pilsener
Cytat
Czyli jeden rekord to jeden wiersz i chce je pobrac z bazy tak samo jakbym jej pobrał z pliku txt


  1. <?php
  2. $result = mysql_query('select * from tabela');
  3. while ($row = mysql_fetch_assoc($result)) {
  4.    echo $row["id_uzytkownika"];
  5.    echo $row["pelna_nazwa"];
  6. }
  7. ?>
golaod
Kompletnie nie da się dojść do tego o co mu chodzi bo ja rozumiem to na parę różnych sposób.
Wyciąga z bazy i:
  1. <?php
  2. $wynik = array();
  3. while($wynik[] = mysql_fetch_assoc($qid)){}
  4. $str = implode("r\n",$wynik);
  5. # lub
  6. $str = implode("<br />",$wynik);
  7. ?>

Problem aktualny z array:
  1. <?php
  2. print_r($wynik);
  3. ?>

Dzięki temu zobaczysz co jest w tej tablicy i jak masz ją wyświetlać.
Mam jeszcze parę innych wizji, o co może Ci chodzić ale dopóki sam klarownie tego nie przedstawisz to i ja nie mam zamiaru się poświęcać.
WojtasSP320
Ja się poddaje...
szczabik
Chodzi mi o pobranie danych z bazy za pomocą pętli foreach ale nie rozbijać tego tak jak podał WojtasSP320 bo jego kod prawie działa i mniej więcej o to mi chodzi ale pobranie rekordwór bez rozbijania.
Chciał bym pobrać rekordy z bazy danych i otrzymać taką tablice
  1. <?php
  2. $pytania = Array(
  3. "Co to jest PHP?`język programowania`bohater kreskówki`marka kotłów parowych",
  4. "Kiedy była bitwa pod Grunwaldem?`1410`1456`1520`1100`nigdy jej nie było!",
  5. "Najbardziej znana mysz?`Miki`Mia"
  6. );
  7. ?>
WojtasSP320
No przecież dokładnie to dostajesz.

A tak poza tym, to muszę cię zmartwić, ale twój quiz jest zupełnie bez sensu, bo z kodu wynika, że zawsze poprawną odpowiedzią jest odpowiedź nr 1, a to kiepski pomysł...
szczabik
A ja ci powiem że nie jest i zawsze jest inna odpowiedz poprawna i zawsze pytania są inaczej ułożone i nie da się quizi nauczyć na pamięć
kefirek
Zobacz tak
  1. <?php
  2. while($r=mysql_fetch_assoc($dane_z_bazy))
  3. {
  4. $pytania[] = $r['pole']
  5. }
  6. ?>
szczabik
Dzięki działa tak jak chciałem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.