Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] malutki dziwny blad z if :P
Forum PHP.pl > Forum > Przedszkole
plurr
  1. <?php
  2. ....
  3.  
  4. $sql = "select imie, nazwisko from studenci where id_studenta='454'";
  5. $query = mysql_query($sql);
  6.  
  7. if ($query == TRUE) 
  8.  echo "jest student";
  9.  else echo "nie ma";
  10.  
  11. ....
  12. ?>


wie ktos dlaczego mysql_query w tym zapytaniu caly czas wyrzuca mi wartosc TRUE - czyli napis "jest student" skoro nie ma nikogo takiego o podanym id = 454 ? Nigdy wczesniej mi sie to nie zdarzalo, a teraz nie jestem wstanie tego wyjasnic, oczywiscie tylko tak zle dziala z warunkiem "where" w zapytaniu sql. ohmy.gif

ps: same dodaj mi sie teraz tutaj \ do skryptu : P

korzystajac jeszcze z okazji, zeby tez nie zakladac drugiego tematu:

  1. <?php
  2. $sql2="SELECT ocena, przedmiot FROM oceny,studenci WHERE studenci.id_studenta=".$_POST[id]." AND studenci.id_studenta=oceny.id_studenta";
  3. $zapytanie2 = mysql_query($sql2);
  4.  
  5. echo "<table border><th>ocena<th>przedmiot";
  6.  
  7. for($i=0; $i<mysql_num_rows($zapytanie2); $i++); 
  8. {
  9. echo "<tr>";
  10. $wierszdrugi = mysql_fetch_array($zapytanie2);
  11. echo "<td>".$wierszdrugi[ocena]."</td>";
  12. echo "<td>".$wierszdrugi[przedmiot]."</td>";
  13. echo "</tr>";
  14. }
  15. echo "</th></table>";
  16. ?>


num rows w tym przypadku ma wartosc 3, nie wiem dlaczego petla robi sie tylko jeden raz - a dokladnie, wypisuje mi tylko jeden przedmiot z ocena, keidy sa trzy :/
Daimos
1.
  1. <?
  2. if($query==true)
  3. if($query)
  4. ?>
oba warunki daja taki samy wynik winksmiley.jpg to tak na marginesie
co do sprawdzania, wynik zwraca czy zapytanie sie powiodlo, a nie czy znalazlo rekord, chyba najprosciej jest policzyc (COUNT), albo sprawdzic czy ma jakas wartosc
2.
  1. <?
  2. $zapytanie = "SELECT * FROM tabela";
  3. $wykonaj = mysql_query($zapytanie);
  4. while($wiersz = mysql_fetch_array($wykonaj))
  5. {
  6. print "Pole pierwsze".$wiersz['pole1']."<br />";
  7. print "Pole drugie".$wiersz['pole2']."<br />";
  8. print "Pole trzecie".$wiersz['pole3']."<br />";
  9. }
  10. ?>
z pomoca while jest latwiej winksmiley.jpg
plurr
Cytat(my salsa @ 7.07.2007, 16:58:56 ) *
1.
  1. <?
  2. if($query==true)
  3. if($query)
  4. ?>
oba warunki daja taki samy wynik winksmiley.jpg to tak na marginesie

no ja wiem, tylko troche zaczalem juz kombinowac tongue.gif
Cytat
co do sprawdzania, wynik zwraca czy zapytanie sie powiodlo, a nie czy znalazlo rekord, chyba najprosciej jest policzyc (COUNT), albo sprawdzic czy ma jakas wartosc

ale glupek ze mnie ! ze nie pomyslalem hehe biggrin.gif
zrobilem wiec cos takiego, co dziala:

  1. <?php
  2. $sql = "select imie, nazwisko from studenci where id_studenta='2323'";
  3. $query = mysql_query($sql);
  4. $zlicz = mysql_num_rows($query);
  5.  
  6. if ($zlicz == '0') 
  7. echo "nie ma studenta";
  8. else echo "jest";
  9. ?>


tylko chcialbym sie zapytac czy jest tu sie do czego doczepic, czy mozna to ejszcze prosciej zrobic ? Chodzi o to ze jutro mam egzamin i chcialbym zeby wykladowca nie czepial sie szczegolow - jak to z nim bywa - a co za tym idzie "ocena w doł" :/

Apropo pkt 2, jestem strasznie przyzwyczajony do for, gdzies musial byc blad, napisalem to ejszcze raz i dziala smile.gif
JaRoPHP
Cytat(plurr @ 7.07.2007, 14:39:55 ) *
wie ktos dlaczego mysql_query w tym zapytaniu caly czas wyrzuca mi wartosc TRUE
Funkcja mysql_query" title="Zobacz w manualu PHP" target="_manual zwraca albo zmienną typu resource, albo FALSE - nigdy TRUE (jeżeli zbiór wynikowy zapytania będzie pusty zostanie zwrócona zmienna resource). Aby policzyć, ile rekordów zostało zwróconych poprzez zapytanie SELECT, musisz użyć funkcji mysql_num_rows" title="Zobacz w manualu PHP" target="_manual.
Więc dlaczego warunek if($query==true) jest spełniony? Ano dlatego: Converting to boolean.

Cytat
Apropo pkt 2, jestem strasznie przyzwyczajony do for, gdzies musial byc blad, napisalem to ejszcze raz i dziala

Błąd na pewno jest tutaj:
  1. <?php
  2. echo "<td>".$wierszdrugi[ocena]."</td>";
  3. ?>
Powinno być tak:
  1. <?php
  2. echo "<td>".$wierszdrugi['ocena']."</td>";
  3. ?>
plurr
jest to dosyc dziwne bo mam bez ' w tablicy i trybi tongue.gif a wtedy nie dzialalo. widocznie jeszcze jakis blad.
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.