Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Zapisanie wartości zapytania sql do tablicy
Forum PHP.pl > Forum > Przedszkole
followc
Witam, chciałbym zapisać do tablicy wartości zapytania, które ma kilka pozycji i każda zawiera kilka informacji
"SELECT s.session_id, s.operator_id, o.login FROM sesja AS s, operator AS o WHERE godz_wyl = '0000-00-00 00:00:00' AND o.id = s.operator_id"
wciąż kiepsko radze sobie z mysql_fetch_row i wychodzą mi nieprawidłowe dane. Pytam więc Was, jak to zrobić?
Kshyhoo
A kursy i wyszukiwarki mają wolne? Przykład:
  1. while ($row = mysql_fetch_row($result)) {
  2. $tablica = array( 'xxx' => $row['xxx']);
  3. }
followc
no tak, wszystko pięknie, ale czytanie tablicy poprzez np echo $tablica['xxx'](a tak uczą w kursach i wyszukiwarkach) wywala błędy. nic już nie rozumiem, jak mam się do tego dobrać
Kshyhoo
Jakie błędy?
followc
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/.../lista_zalogowanych.php on line 32
Turson
Przykro mi ale tutaj nie ma żadnej wróżki i na podstawie samego błędu (bez podanego kodu) nie jesteśmy stwierdzić, gdzie jest error.
followc
jest i kod:

CODE
$wynik = mysql_query("SELECT s.session_id, s.operator_id, o.login FROM sesja AS s, operator AS o WHERE godz_wyl = '0000-00-00 00:00:00' AND o.id = s.operator_id");

while ($row = mysql_fetch_row($wynik)) {
$tablica = array( 'a.session_id' => $row['xxx'],'s.operator_id' => $row['yyy'], 'o.login' => $row['zzz']);
echo "$tablica['a.session_id']";
}
modern-web
  1. echo $tablica['a.session_id'];
followc
nadal nic
modern-web
A możesz mi powiedzieć, której linii dotyczy błąd, bo niestety zgubiłeś numerację wink.gif
followc
tej przy echo "$tablica['a.session_id']";
po usunieciu "", błędu faktycznie nie ma, ale nadal nie wyświetla żadnej wartości
Turson
'a.session_id' => $row['xxx']
nie widzę, żebyś pobierał w zapytaniu kolumnę xxx

followc
zmieniłem na 'a.session_id' => $row['a.session_id'],
bo taką kolumnę już pobrałem i niestety... nic to nie zmieniło. Co znów spieprzyłem?

ok, już wiem co spieprzyłem. dzięki wszystkim:p

jednak nie jest tak super, bo
CODE

$tablica = array(array( 'session_id' => $row[0],'operator_id' => $row[1], 'login' => $row[2]));


wciąż nadpisuje 0 element tablicy... jest jakiś sposób, żeby poruszać sie po tabeli przy pomocy jakiejś zmiennej, która przy każdym okrążeniu petli zwiększałaby się o jeden?
packa
Cytat(followc @ 17.01.2014, 00:32:56 ) *
wciąż nadpisuje 0 element tablicy... jest jakiś sposób, żeby poruszać sie po tabeli przy pomocy jakiejś zmiennej, która przy każdym okrążeniu petli zwiększałaby się o jeden?



deklarujesz jakąś zmienną np $i = 0 i inkremenujesz ją w pętli ?
followc
No tak, to wiem, ale jak poruszać się tą zmienna po tablicy?
myślałem, że może tak:
CODE
$tablica[$i] = array(array( 'session_id' => $row[0],'operator_id' => $row[1], 'login' => $row[2]));
$i++;

ale znów myślałem kiepsko...
nospor
$tablica[] = array( 'session_id' => $row[0],'operator_id' => $row[1], 'login' => $row[2]);

I juz
YourFrog
Podaj do mysql_connect i do mysql_select_db odpowiednie dane, uruchom obejrzyj wyniki i przenalizuj.

  1. <?php
  2.  
  3. mysql_connect('localhost', 'root', '');
  4. mysql_select_db('dbname');
  5.  
  6. $sql = 'SELECT
  7. s.session_id,
  8. s.operator_id,
  9. o.login
  10. FROM
  11. sesja AS s,
  12. operator AS o
  13. WHERE
  14. godz_wyl = "0000-00-00 00:00:00" AND
  15. o.id = s.operator_id';
  16.  
  17. $resource = mysql_query($sql);
  18.  
  19. if( $resource === FALSE )
  20. throw new \Exception('Wystąpiły błędy w zapytaniu. ' . mysql_error());
  21.  
  22. $arr = array();
  23. while( $row = mysql_fetch_assoc($resource) )
  24. {
  25. $temp = array();
  26. foreach($row as $key => $value)
  27. $temp[$key] = $value;
  28.  
  29. $arr[] = $temp;
  30. }
  31.  
  32.  
  33. var_dump($arr);
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.