Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] malutki dziwny blad z if :P
plurr
post
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


  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 :/

Ten post edytował plurr 7.07.2007, 15:44:15


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Daimos
post
Post #2





Grupa: Zarejestrowani
Postów: 1 319
Pomógł: 118
Dołączył: 26.11.2003
Skąd: Lublin

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


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

Ten post edytował my salsa 7.07.2007, 15:59:25


--------------------
scriptun.com. Startup z poradnikami do gier ttp.zone i ttpzone.pl
Go to the top of the page
+Quote Post
plurr
post
Post #3





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


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

Ten post edytował plurr 7.07.2007, 16:25:46


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #4





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

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


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


Ten post edytował JaRoPHP 7.07.2007, 16:35:40


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
plurr
post
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 12
Dołączył: 28.06.2007
Skąd: Bytom

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


jest to dosyc dziwne bo mam bez ' w tablicy i trybi tongue.gif a wtedy nie dzialalo. widocznie jeszcze jakis blad.


--------------------
Wyobraźnia bez wiedzy może stworzyć rzeczy piękne.
Wiedza bez wyobraźni najwyżej doskonałe.

Albert Einstein
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 Aktualny czas: 22.08.2025 - 07:40