2010-12-19 49 views
0

嗨,我是mysql新手,希望我想要做的事情非常簡單。當行星表中有與$ imgFile相對應的標題列下的條目時,下面的sql會起作用。我遇到的問題是,並非所有的$ imgFiles都在數據庫中。所以當這是案例行3 $caption=mysql_result($data, '0')引發此錯誤:如何檢查數據庫列中是否存在var,如果不存在則什麼也不做

Warning:mysql_result()[function.mysql-result]:無法跳轉到/ home/drawapl1/public_html/planet中的MySQL結果索引3上的第0行.php on line 3

我該如何改變它,以便它只設置$標題,其中$ imgFile存在?

$retrieveCaption="SELECT caption from planets where image='$imgFile'"; 

$data=mysql_query($retrieveCaption); 

$caption=mysql_result($data, '0'); 

echo $caption; 
+4

到目前爲止,您已做了9個問題。這是你學習格式化代碼的時間。 – 2010-12-19 23:35:17

+0

對不起,你不喜歡格式化。如果你能指出我出錯的地方,也許我可以改進。我對編碼相當陌生,但最近開始做更多的業餘愛好。 – 2010-12-19 23:50:45

+0

他正在討論將代碼格式化爲本網站上問題/答案中的代碼示例。您可以通過選擇代碼示例來完成此操作,然後在編輯器中點擊「{}」按鈕。 – svens 2010-12-20 15:21:16

回答

1

你能趕上空的結果集mysql_num_rows()

if(mysql_num_rows($data) == 0) { 
    // No results returned 

或者使用不拋出一個警告在這種情況下,像mysql_fetch_assoc()功能。

$row = mysql_fetch_assoc($data); 
if($row) { 
    $caption = $row['caption']; 
} else { 
    $caption = "Default"; 
} 
+0

謝謝你這個工作!我使用了第一個mysql_num_rows() – 2010-12-19 23:44:39

0

同比可以問MySQL的,如果它發現任何東西:

if (0 < mysql_num_rows($data)) { // results

如果沒有結果,不使用mysql_result。

另外:'0'想成爲0(一個int而不是一個字符串)。

另外:你應該逃避所有輸入到SQL查詢,所以你應該逃避$ imgFile

相關問題