Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] null w row[]
Forum PHP.pl > Forum > Przedszkole
pantomcio
Dzień dobry smile.gif

Jak w temacie, celowo zamieściłem nieco więcej kodu bo podejżewam, że problem może być związany z poprzednim select'em.
iduser znajduje się w drugiej kolumnie tabeli zatem row[1] jest poprawne, a var_dump($row[1]) który jest na samym dole zwraca null... za pewne to coś oczywistego, a jednak kilka dobrych godzin już straciłem facepalmxd.gif. Kod leci dalej stąd braki w nawiasach wink.gif
row[2] którego używam na początku działa jak należy.


  1. $connection = mysql_connect(~~~~) or die ("Błąd połączenia z bazą danych");
  2.  
  3. $query = "SELECT * from rezerwacje WHERE data = '$data' && sala = '$sala'";
  4. $result = mysql_query($query, $connection) or die ("Error in query: $query. " . mysql_error());
  5.  
  6.  
  7. if (!empty($data))
  8. {
  9.  
  10. while($row = mysql_fetch_row($result)){
  11. $row2[]=$row[2];
  12. }
  13.  
  14. for($i=0;$i<count($godziny); $i++)
  15. {
  16. if (count($row2)==0) {
  17. $row2[]=""; // in_array zwraca błąd jeżeli zmienna jest pusta, stąd przypisana spacja.
  18. }
  19. if ( in_array($godziny[$i],$row2 )) {
  20.  
  21. $go=$godziny[$i];
  22.  
  23.  
  24. $zapytanie = "SELECT iduser from rezerwacje WHERE godzina = '$go'";
  25. $res = mysql_query($zapytanie, $connection) or die ("Error in query: $zapytanie. " . mysql_error());
  26.  
  27.  
  28. while($row = mysql_fetch_row($res)){
  29. $rowid[]=$row[1];
  30. }
  31.  
  32. var_dump($row[1]);
  33.  
  34. if (in_array($_SESSION['id'],$rowid)) {
fastlone
Linijka 15
zliczasz ilość wpisów w tablicy $godziny, wcześniej nie wprowadzając danej zmiennej.
pantomcio
  1. $godziny=array(
  2. '7:00-7:30','7:30-8:00',
  3. '8:00-8:30','8:30-9:00',
  4. '9:00-9:30','9:30-10:00',
  5. '10:00-10:30','10:30-11:00',
  6. '11:00-11:30','11:30-12:00',
  7. '12:00-12:30','12:30-13:00',
  8. '13:00-13:30','13:30-14:00',
  9. '14:00-14:30','14:30-15:00',
  10. '15:00-15:30','15:30-16:00',
  11. '16:00-16:30','16:30-17:00',
  12. '17:00-17:30','17:30-18:00',
  13. '18:00-18:30','18:30-19:00',
  14. '19:00-19:30','19:30-20:00',
  15. '20:00-20:30','20:30-21:00',
  16. '21:00-21:30','21:30-22:00'
  17. );


jeśli o to chodzi smile.gif pętla for działa jak należy
fastlone
  1. while($row = mysql_fetch_row($res)){
  2. $rowid[]=$row[1];
  3. }
  4.  
  5. var_dump($row[1]);


Jesteś pewien, że w tym var_dumpie chciałeś się odwołać do zmiennej $row czy też $rowid, której przyjmujesz wartości z poprzedniego zapytania?
pantomcio
Te zmienne mają taką samą zawartość więc to bez znaczenia, sprawdzałem obie.
Przypisuję ją po to aby za chwilę użyć w in_array tj.

  1. if (in_array($_SESSION['id'],$rowid)){


fastlone
  1. while($row = mysql_fetch_row($res)){
  2. $rowid[]=$row[1];
  3. }
  4.  
  5. var_dump($row[1]);

$row[1] zamień na $row[0], w obu miejscach w wyżej wymienionym kodzie. Pobierasz wartość jednej komórki, a pierwsza komórka ma id 0.
pantomcio
Ahh... ten sam błąd popełniłem niedawno i niczego się nie nauczyłem. Dzięki! Choć najgorsze przede mną więc być może niebawem runda 2 tongue.gif (właściwie to 3..)

edit:
  1. var_dump($row[0]);


o dziwo zwraca teraz null, natomiast

  1. var_dump($rowid);


Zdaje się, że działa jak należy. Przyjżę się temu bliżej bo to znów krok do przodu wink.gif
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.