Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL][PHP]Jaki warunek postawić pętli ?
Gruchol
post
Post #1





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Witam,
Chcę zrobić aby pętla wyświetlała pole "nazwa" z bazy tyle razy ile się znajduje w tabeli.
Nie mogę jednak wymyślić jaki warunek postawić.

Napisałem coś takiego jednak to nie za bardzo chce działać :

  1. <?php
  2. $nick = "test";
  3. $db = mysqli_connect('localhost', 'root', '', 'test');
  4. $zapytanie = mysqli_query($db, "SELECT * FROM test1 WHERE nick = '$nick'");
  5. $dane = mysqli_fetch_assoc($zapytanie);
  6. while($rekord = mysqli_fetch_array($zapytanie)) {
  7. $tresc = $dane["nazwa"];
  8. echo "$tresc";
  9.  
  10.  
  11. }
  12.  
  13. ?>


Z góry dziękuję i pozdrawiam.

Ten post edytował Gruchol 29.01.2015, 13:42:54
Go to the top of the page
+Quote Post
SpiritCode
post
Post #2





Grupa: Zarejestrowani
Postów: 167
Pomógł: 35
Dołączył: 29.12.2014
Skąd: Otwock

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


Fetchowanie danych przenosi Ci kursor na koniec tablicy.
Przed pętlą musisz cofnać kursor na początek zestawu danych albo w pętli dać while($dane) zamiast while($rekord = mysqli_fetch_array($zapytanie))
Go to the top of the page
+Quote Post
Gruchol
post
Post #3





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Zrobiłem to tak : while($dane)
I teraz wyświetla to nieskończoną ilość razy.
Go to the top of the page
+Quote Post
markuz
post
Post #4





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


  1. foreach($dane as $rekord)


--------------------
Go to the top of the page
+Quote Post
Gruchol
post
Post #5





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Jak zrobić aby pętla while wykonywała się tyle razy ile występuje pole nazwa w bazie ?
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Co Wy tu motacie? Pole nazwa wystepuje tyle razy ile jest rekordow. Ni mniej nie wiecej. WIec masz przeleciec po rekordach i koniec.

  1. $nick = "test";
  2.  
  3. $db = mysqli_connect('localhost', 'root', '', 'test');
  4.  
  5. $zapytanie = mysqli_query($db, "SELECT * FROM test1 WHERE nick = '$nick'");
  6.  
  7.  
  8. while($rekord = mysqli_fetch_array($zapytanie)) {
  9.  
  10. $tresc = $rekord["nazwa"];
  11.  
  12. echo "$tresc";
  13.  
  14.  
  15.  
  16.  
  17.  
  18. }


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Gruchol
post
Post #7





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Zrobiłem tak jak napisałeś jednak jest jeden problem.
Baza wygląda tak :

http://screenshooter.net/101736853/sbymvan

I nie wyświetla pola jeden.

Jest tylko

dwa
trzy
cztery
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Na pewno na 100% zrobiles jak ja ci napisalem? Bo to ze ci znika jeden rekord to wina twojego pierwszego kodu. W moim kodzie, poprawilem wszystkie Twoje bledy.
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Gruchol
post
Post #9





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Faktycznie działa.
Wielkie dzięki.
Możesz jeszcze tylko napisać gdzie był błąd ? Chciałbym wiedzieć na przyszłość.
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Tutaj
$dane = mysqli_fetch_assoc($zapytanie);
pobierales rekord i nic z nim nie robiles wiec "znikal"


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Gruchol
post
Post #11





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Mam jeszcze jedno pytanko.
Czy da się zrobić tabele w pętli ale aby powtarzały się same komórki bez tabeli ?
Zrobiłem coś takiego :

  1. echo <<<END
  2.  <center><table border="1" cellpadding="3" cellspacing="3" width ="500px" height ="50px">
  3. <tr>
  4. <td><center>$tresc</center></td>
  5. <td><center>$status1</center></td>
  6. </tr>
  7. </table> </center>
  8. END;

Tylko że teraz to brzydko wygląda bo każda komórka ma inną wielkość itp.
Da się zrobić aby w dalszym wykonywaniu pętli dodawało się tylko to ?

  1. <tr>
  2. <td><center>$tresc</center></td>
  3. <td><center>$status1</center></td>
  4. </tr>
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to dodawaj tylko to:
<tr>

<td><center>$tresc</center></td>

<td><center>$status1</center></td>

</tr>
Kto ci broni?
Nagłówki tabeli masz wygenerować przed pętlą a nie w petli. To chyba dość logiczne. Zaś zakonczenie tabeli </table> masz wygenerować po petli


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Gruchol
post
Post #13





Grupa: Zarejestrowani
Postów: 242
Pomógł: 0
Dołączył: 28.11.2014

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


Ehhh, że ja o tym nie pomyślałem.
Wielkie dzięki
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 18:21