Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Pętla odczytująca dane
Forum PHP.pl > Forum > Przedszkole
poxrimex
Stworzyłem pętle chcąć odczytać 3 wiersze odpowiadające zapytaniu. Oczywiście w bazie są odpowiedni rekordy, ale na stronie mi tego nie wyświetla, nie ma nawet błędu tylko jakby nie było skryptu:
  1. <?php
  2. $dbh=mysql_connect("localhost", "sek", "haslo) or die ('I cannot connect to the database because: ' . mysql_error());
  3. mysql_select_db ("sek") or die(mysql_error());
  4.  
  5. $a=1;
  6. while ( $a = 3)
  7. {
  8. $zapytanie = "SELECT * from tabela where numer = $a";
  9. $a=$a+1;
  10. $wynik = mysql_query($zapytanie);
  11. $wiersz = mysql_fetch_assoc($wynik);
  12. $haje=$wiersz['hajeden'];
  13. $opis=$wiersz['opis'];
  14. $link=$wiersz['link'];
  15. $obrazek=$wiersz['obrazek'];
  16. echo $haje.$opis.$link.$obrazek;
  17. }
  18.  
  19. ?>
redelek
Cytat(poxrimex @ 4.02.2008, 14:17:43 ) *
while ( $a = 3)
{
$zapytanie = "SELECT * from tabela where numer = $a";


Rozumiem że to literówka czy tabela nazywa się tabela ?
Wieviór
Co to jest w ogóle za logiczna konstrukcja:

  1. <?php
  2. $a = 1;
  3. while ( $a = 3) {}
  4. ?>


Po pierwsze, w nawiasie zamiast = daj ==, po drugie popatrz co napisałeś: Zmienna a równa się 1, kiedy zmienna a równa się trzy, wykonaj skrypt wewnątrz. Człowieku, podstawy, myśl trochę.
poxrimex
tak, tabela nazywa się tabela
to nie przykład przepisany żywcem sadsmiley02.gif

ja chcem aby odczytało mi wszystkie wiersze od 1 do 3
Wieviór
Cytat(poxrimex @ 4.02.2008, 16:22:10 ) *
tak, tabela nazywa się tabela
to nie przykład przepisany żywcem sadsmiley02.gif


Nie możesz winić nas za takie domysły, bo każdy Twój post wskazuje na brak największych (najmniejszych) podstaw.
smietek
  1. <?php
  2. $dbh=mysql_connect("localhost", "sek", "haslo) or die ('I cannot connect to the database because: ' . mysql_error());
  3. mysql_select_db ("sek") or die(mysql_error());
  4.  
  5. $zapytanie = "SELECT * from tabela ORDER BY numer LIMIT 0, 2";
  6. $wynik = mysql_query($zapytanie);
  7.  
  8. while ($wiersz = mysql_fetch_array($wynik)) {
  9. $haje=$wiersz['hajeden'];
  10. $opis=$wiersz['opis'];
  11. $link=$wiersz['link'];
  12. $obrazek=$wiersz['obrazek'];
  13. echo $haje.$opis.$link.$obrazek;
  14. }
  15. ?>

Pobierze 3 pierwsze wyniki, sortowane od najmniejszego do największego.
poxrimex
Ten skrypt nadal mi zwraca jeden wynik sadsmiley02.gif
smietek
To może podaj jaki, i zobacz, czy nie masz jednego wpisu w tabeli.
poxrimex
po 1 chciałbym nadal używać where=id

oraz wszystko w pętli tzn aby where=id zapętiło tak
by za każdym razem id zwiększało się o 1 aż do np 4
smietek
Przecież ten przykłąd co Ci podałem właśnie to robi! No chyba, że ty chcesz jeszcze wyświetlać ze stronami. Najpierw pobaw się ze zwykłym wyświetlaniem, bo widać, że nic nie rozumiesz.

To jest zapytanie które wyświetla wszystkie wyniki, jeżeli użyjesz pętli, co ci wcześniej podałem:
  1. <?php
  2. $zapytanie = "SELECT * FROM tabela ORDER BY id";
  3. ?>

A tutaj z WHERE, która wyświetli wszystkich, którzy mają id pomiędzy 1 a 10:
  1. <?php
  2. $zapytanie = "SELECT * FROM students WHERE id BETWEEN 1 and 10";
  3. ?>


Nie rób takiej pętli, która za każdym razem wysyła zapytanie, bo to jest nieopłacalne. Najlepiej wysłać zapytanie raz, a potem przetworzyć wynik.
szpakoo
  1. $sql="SELECT * FROM tabela LIMIT 3";
  2. $wynik = mysql_query($sql) OR die ("bląd");
  3. while ($wiersz = mysql_fetch_array($wynik))
  4. {
  5. $haje=$wiersz['hajeden'];
  6. $opis=$wiersz['opis'];
  7. $link=$wiersz['link'];
  8. $obrazek=$wiersz['obrazek'];
  9. echo $haje.$opis.$link.$obrazek;
  10. }

Pwinno być wszystko dobrze, do zapytania możesz sobie dodać jakiś warunek WHERE np albo sortowanie
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.