[PHP+SQL]Nie wyświetla sie strona błędu!

0

Napisałem taki kod:


      // zmienna $id przekazana metoda GET
      $id = $_GET['id'];
      
      // sprawdzamy czy zmienna $id nie jest pusta
      if(!empty($id)) {

          if(mysql_query("SELECT * FROM pages WHERE name='".$id."'") ){
                $sql = mysql_query("SELECT * FROM pages WHERE name='".$id."'");
		$r = mysql_fetch_array($sql);
		$text=$r['text'];
		$title=$r['title'];
		$id=$r['id'];
		$title = stripslashes($title);
		
             }else{     
                $sql = mysql_query("SELECT * FROM pages WHERE name='error'");
		$r = mysql_fetch_array($sql);
		$text=$r['text'];
		$title=$r['title'];
		$id=$r['id'];
		$title = stripslashes($title);
		$text = stripslashes($text);
             }
          
      }
      // jezeli zmienna $id jest pusta wyswietla się strona glowna

      else{ 
                $sql = mysql_query("SELECT * FROM pages WHERE name='".$start_page."'");
		$r = mysql_fetch_array($sql);
		$text=$r['text'];
		$title=$r['title'];
		$id=$r['id'];
		$title = stripslashes($title);
		$text = stripslashes($text);
     }
 

Wszystko fajnie jak wpisze index.php?id=news albo wpisze tylko index.php to mi wyświetla ze sql strone ale jak wpiszę niepoprawny (np index.php?id=kdscv) to znaczy w tabeli takiego czegoś nie ma to mi nie wyświetla się strona error (jest zapisana w tabeli). Nie wiem co się dzieje HELP ME z góry THX

0

Jeżeli nawet czegoś w tabeli nie ma, to i tak funkcja mysql_query("SELECT * FROM pages WHERE name='".$id."'") zwróci true - zwraca false tylko w przypadku, gdy zapytanie się z jakiś powodów nie powiedzie (błąd połączenia z bazą danych na przykład).

Możesz za pomocą funkcji mysql_num_rows() sprawdzać czy ilość zwróconych przez zapytanie wierszy jest większa od zera.

0

podstawiłem
if(mysql_num_rows("SELECT * FROM pages WHERE name='".$id."'") ){
ale pisze mi że błąd
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\WebServ\httpd\index.php on line 11</code>

0

http://pl.php.net/manual/en/function.mysql-num-rows.php
Przeczytaj sobie jakie parametry przyjmuje zamiast na pałę wstawiać nowo poznaną funkcję.

0

Podziękowania wszystkim !

1 użytkowników online, w tym zalogowanych: 0, gości: 1