2013-12-19 86 views
0

這裏是警告:警告mysql_fetch_array但其值顯示

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/angga/fungsi/fungsi-halaman.php on line 133 

線133 $k = mysql_fetch_array($kata);

function tag($tagi){ 
$teks = explode(" ",$tagi); 
    for($i=0;$i<count($teks);$i++): 
    $teks2 = safe($teks[$i]); 
    $kata = mysql_query("select * from `tag` where id=$teks2"); 
    $k = mysql_fetch_array($kata); 
    echo "<a href=\"\">".$k['nama']."</a> "; 
    endfor; 

} 

我打電話是這樣的:

tag($post['tag']); 

和輸出是:

test jancuk surem insert null value function ignore varchar 

原值1 2 3 4 5 6 7 8 9

我想從價值在$post['tag']我的數據庫

我試圖通過編輯添加or die(mysql_error());和警告仍列轉換並顯示它的名字從tag表。 這裏警告當我添加or die(mysql_error());

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 

這有什麼錯我的代碼?

編輯1: 問題解決了添加''所以現在就像是

$kata = mysql_query("select * from `tag` where id='$teks2'") or die(mysql_error()); 

的回答是我的問題的第一個評論,但現在沒有了或編輯?

這裏safe()

function safe($value){ 
    return mysql_real_escape_string($value); 
} 
+0

您的查詢可能有語法錯誤。所以查詢不會觸發並返回false。你得到那個錯誤 – zkanoca

+0

哇謝謝。是工作。現在沒有警告。 – 3118731

+0

var_dump($ teks2);如果你在'mysql_query()'語句之前添加它,輸出是什麼?我猜你的'safe()'函數是以一些奇怪的方式操縱字符串。你也可以顯示函數定義嗎? –

回答

0

您的查詢可能有語法錯誤。所以查詢不會觸發並返回false。而你得到這個錯誤:嘗試引用的id值:

$kata = mysql_query("select * from `tag` where id='$teks2'"); 
+0

這與您在打印時「select * from''tag'' id = $ teks2」相同。 –

+0

如果我沒有錯,你的第一個回答是在評論權利?你告訴我添加''''所以語法就像這樣:'mysql_query(「select * from'tag' where id ='$ teks2'」)'及其工作。謝謝。 – 3118731

0

你需要嘗試使用它之前檢查由mysql_query()返回的值。如果您的查詢失敗,它將返回布爾值false而不是結果對象。如果發生這種情況,您可以檢查使用mysql_error()發生了什麼錯誤。

儘管您正在使用已棄用的API,但指出這一點很重要。您應該使用新的mysqli函數。

0

嘗試用下面的查詢:

mysql_query("select * from tag where id=$teks2");