Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: z tabeli pobieram jedno pole i w pętli while z każdym przebiegiem chce podać inną zmienną
Forum PHP.pl > Forum > PHP
scorpion10
Witam ! Napotkalem problem, a mianowicie z tabbeli Mysql pobieram Selectem jedno pole i w yniku otrzymuje 4 rekordy. Chce je wyświetlić w petli while i z każdym przebiegem pętli nadać pobranemu polu inną nazwę zmiennej.

$kwer = SELECT id_pole FROM tabela WHERE id = $id;

while($rekord = mysql_fetch_array($kwer)){

$zmienna = $rekord[id_pole];

i tutaj jest problem ja z kolejnym przebiegiem nadać kolejną wartość pola po inną nazwę zmiennej
np:

$zmienna2 = $rekord[id_pole]; itd.

}

echo $zmienna;
echo $zmienna2;

Czy ktoś moze mi podpowiedzieć ? bo pod każy wynik pola potem muszę pobrac odpowiedni rekord z innej tabeli a tak to tylko moge ich wartośc wyswietlic na ekranie.

Pyton_000
a nie lepiej pobrać od razu wszystko czego potrzebujesz jednym zapytaniem? Będzie szybciej, wydajniej, i ładniej.

A jeśli już chcesz koniecznie się uprzeć na nadawanie zmiennym innej nazwy to:

  1. $i=0;
  2. while(warunek) {
  3. ${'zmienna'.$i} = 111;
  4. $i++;
  5. }
scorpion10
No działa twój sposób, ale faktycznie nie jest to najlepszy sposób. Jak zrobił bys to by wybrać te dane jednym zapytaniem ?
IAmBoskiM
Rozszerzenie MySQL jest przestarzałe i nie należy go używać. Od tego mamy teraz MySQLi oraz PDO.
  1. <?php
  2. try {
  3. $conn = new PDO ('mysql:host=nazwa_hosta;dbname=nazwa_bazy_danych', $dbuser, $pwd);
  4. } catch (PDOException $e) {
  5. die($e->getMessage());
  6. }
  7. $qry = $conn->query("SELECT id_pole FROM tabela WHERE id = $id");
  8. // Ejejej, tak to piszę i się zastanawiam, jak ty robiłeś tą bazę danych? Zwraca ci cztery rekordy, bo te wszystkie rekordy mają ID takie samo? Przecież ID jest normalnie unikatowe no ale OK
  9. $arr = $qry->fetchAll(PDO::FETCH_ASSOC); // rozszerzenie MySQL takiej funkcji chyba nie ma; fetchujesz wynik i tworzysz tablicę dwuwymiarową gdzie pierwsze indeksy to int 0-n gdzie to liczba wierszy minus 1 (-1) i każdy z tych indeksów to tablica asocjacyjna w tym wypadku z wartościami każdego wiersza
  10. for ($i = 0; $i < count($arr); $i++) {
  11. ${'zmienna' . $i} = $arr[$i]['id_pole']; // nie zapominaj o apostrofach!!!
  12. }
  13. $conn = null;
  14. ?>
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.