Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak pobrać rekordy by otrzymać tablicę
szczabik
post
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował szczabik 30.09.2008, 17:56:02
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #2





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


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. ?>
Go to the top of the page
+Quote Post
szczabik
post
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Mlodycompany
post
Post #4





Grupa: Zarejestrowani
Postów: 910
Pomógł: 44
Dołączył: 20.02.2008
Skąd: Łódź

Ostrzeżenie: (20%)
X----


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.
Go to the top of the page
+Quote Post
WojtasSP320
post
Post #5





Grupa: Zarejestrowani
Postów: 87
Pomógł: 13
Dołączył: 13.08.2008
Skąd: Chełmno

Ostrzeżenie: (0%)
-----


Po kilku minutach ciężkiego i intensywnego myślenia nad tym co napisałeś chyba wiem o co ci chodzi (IMG:http://forum.php.pl/style_emoticons/default/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...
Go to the top of the page
+Quote Post
szczabik
post
Post #6





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

Ostrzeżenie: (0%)
-----


WojtasSP320 o to mi chodziło ale nie działa tak jak trzeba wyświetla mi Array

Ten post edytował szczabik 30.09.2008, 06:46:25
Go to the top of the page
+Quote Post
peter13135
post
Post #7





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

Ostrzeżenie: (0%)
-----


no teraz to wyświetlasz w ten sposób:

echo $pytania[1]
Go to the top of the page
+Quote Post
szczabik
post
Post #8





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
Pilsener
post
Post #9





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
golaod
post
Post #10





Grupa: Zarejestrowani
Postów: 419
Pomógł: 42
Dołączył: 12.08.2008
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
WojtasSP320
post
Post #11





Grupa: Zarejestrowani
Postów: 87
Pomógł: 13
Dołączył: 13.08.2008
Skąd: Chełmno

Ostrzeżenie: (0%)
-----


Ja się poddaje...
Go to the top of the page
+Quote Post
szczabik
post
Post #12





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
WojtasSP320
post
Post #13





Grupa: Zarejestrowani
Postów: 87
Pomógł: 13
Dołączył: 13.08.2008
Skąd: Chełmno

Ostrzeżenie: (0%)
-----


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ł...
Go to the top of the page
+Quote Post
szczabik
post
Post #14





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

Ostrzeżenie: (0%)
-----


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ęć
Go to the top of the page
+Quote Post
kefirek
post
Post #15





Grupa: Zarejestrowani
Postów: 781
Pomógł: 256
Dołączył: 29.06.2008

Ostrzeżenie: (0%)
-----


Zobacz tak
  1. <?php
  2. while($r=mysql_fetch_assoc($dane_z_bazy))
  3. {
  4. $pytania[] = $r['pole']
  5. }
  6. ?>
Go to the top of the page
+Quote Post
szczabik
post
Post #16





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

Ostrzeżenie: (0%)
-----


Dzięki działa tak jak chciałem
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 16:51