Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> z tabeli pobieram jedno pole i w pętli while z każdym przebiegiem chce podać inną zmienną
scorpion10
post 8.07.2016, 07:46:53
Post #1





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


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.

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Pyton_000
post 8.07.2016, 07:50:24
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


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. }
Go to the top of the page
+Quote Post
scorpion10
post 8.07.2016, 08:33:01
Post #3





Grupa: Zarejestrowani
Postów: 59
Pomógł: 0
Dołączył: 8.07.2016

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


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 ?
Go to the top of the page
+Quote Post
IAmBoskiM
post 8.07.2016, 10:31:40
Post #4





Grupa: Zarejestrowani
Postów: 72
Pomógł: 11
Dołączył: 8.05.2016

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


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


Ten post edytował IAmBoskiM 8.07.2016, 10:32:33
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 Wersja Lo-Fi Aktualny czas: 14.08.2025 - 09:06