2012-03-15 52 views
0

我有一個PHP腳本,試圖在數據庫中找到一個特定名稱,其中指定的程序是$q,一個從html頁面傳遞的變量。我對此很陌生,所以我無法弄清楚如何編碼if not found, then display類型的消息。以下是我目前有:SQL未找到條件

$sql="SELECT * FROM names WHERE program='".$q."'"; 
    $result = mysql_query($sql); 
    while($row = mysql_fetch_array($result)) 
    { 
     echo "<div class='header'>Program Name:</div>"; 
     echo "<div class='data'>"; 
     echo $row['program']; 
     echo "</div>"; 
    } 

我需要它回顯消息說如果沒有發現。我試着在網上看到NOT IN condition in SQLhttp://www.techonthenet.com/sql/exists.php以及其他東西,但我不確定這是否正確。任何幫助,將不勝感激。

回答

1

次使用PHP函數

mysql_num_rows($result); 

檢查結果發現

所以,你的代碼應該是這樣的:

$sql="SELECT * FROM names WHERE program='".addslashes($q)."'"; 
$result = mysql_query($sql); 
if(mysql_num_rows($result) > 0) 
    while($row = mysql_fetch_array($result)) 
    { 
     echo "<div class='header'>Program Name:</div>"; 
     echo "<div class='data'>"; 
     echo $row['program']; 
     echo "</div>"; 
    } 
else 
    echo "No data found"; 

請注意,我增加

addslashes($q) 

在查詢中,以避免SQL注入問題。

+0

嘿,感謝您的回覆,我現在就試一試 - addslashes如何幫助解決SQL注入問題? – user1152440 2012-03-15 16:44:52

1
$sql="SELECT * FROM names WHERE program='".$q."'"; 
    $result = mysql_query($sql); 
    $found = false; 
    while($row = mysql_fetch_array($result)) 
    { 
     $found = true; 
     echo "<div class='header'>Program Name:</div>"; 
     echo "<div class='data'>"; 
     echo $row['program']; 
     echo "</div>"; 
    } 
    if ($found == false) 
     echo "I found nothing";