2013-04-04 145 views
-3

我該如何去嘗試檢查某個值是否存在於mysql集合中?我有這樣的代碼:檢查mysql集合中是否存在值,如果存在,打印它

,我與(我懷疑這是可行的)實驗和它拋出這個錯誤:

$result = mysql_query("SELECT * FROM posts ORDER BY time DESC"); 
while ($row = mysql_fetch_array($result)) { 
    $result1 = mysql_query("SELECT * FROM friends WHERE friends = $row{'name'}"); 
    $row1 = mysql_fetch_array($result1); 
    if ($row == 1) { 
     echo "<b style='color: #D55292;'>".$row{'name'}."</b> says <br>".$row{'cont'}."<br><b style='color: #A1A1A1';>Posted on ".$row{'time'}."</b><br><br>"; 
    } 
} 

我得到這些錯誤:

Notice: Array to string conversion in C:\xampp\htdocs\index.php on line 44 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in  C:\xampp\htdocs\index.php on line 45 

Notice: Array to string conversion in C:\xampp\htdocs\index.php on line 44 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\index.php on line 45 

Notice: Array to string conversion in C:\xampp\htdocs\index.php on line 44 

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\index.php on line 45 

你能大家給我一些關於如何去做這件事的指針?先謝謝了!

我只是想這個問題可能還不夠明確:

我有一組存儲您所有的「朋友」在我的「朋友」表。我還有一個表格,用於存儲所有「帖子」的名稱,內容,時間以及誰可以查看它的值。我試圖讓這些帖子(我已經成功完成),並打印出來。我可以做到這一點。我只是想做到這一點,所以你只能看到「名稱」值等於你的「朋友」組中的字符串的帖子。

+0

我想第一個錯誤是在$ result1,試試這個 $ result1 = mysql_query(「SELECT * FROM friends WHERE friends =」。$ row ['name']) – Mat 2013-04-04 18:05:44

回答

1

一些PHP錯誤: AFAIR它不是$row{'name'}而是$row['name']並且您應該在字符串之外啓動變量。爲$row{'cont'}

$result = mysql_query("SELECT * FROM posts ORDER BY time DESC"); 
while ($row = mysql_fetch_array($result)) { 
    $name = $row['name']; 
    $result1 = mysql_query("SELECT * FROM friends WHERE friends = '$name'"); 
    $row1 = mysql_fetch_array($result1); 
    if ($row == 1) { 
     echo "<b style='color: #D55292;'>".$row['name']."</b> says <br>".$row['cont']."<br><b style='color: #A1A1A1';>Posted on ".$row['time']."</b><br><br>"; 
    } 
} 

我不知道同樣的事情,你爲什麼需要$result1分別$row1你以後不要在代碼中使用它們。一個更好的解決辦法是,如果你加入這兩個表,這樣你就不需要第二個查詢,您執行的每一個職位:

$sql = "SELECT post.time, friends.name, ... 
      FROM post 
      JOIN friends on post.name = friends.name 
     ORDER BY post.time DESC"; 
+0

讓我看看... – Beaurocks16 2013-04-04 18:07:49

+0

謝謝,該工程,我只是有這個錯誤: – Beaurocks16 2013-04-04 18:08:49

+0

警告:mysql_fetch_array()期望參數1是資源,布爾給出在第45行 – Beaurocks16 2013-04-04 18:09:10

0

你的第二個查詢需要看起來像這樣:$row['name']

$result1 = mysql_query("SELECT * FROM friends WHERE friends = '" . $row['name'] . "'"); 
1

在這一行:

$result1 = mysql_query("SELECT * FROM friends WHERE friends = $row{'name'}"); 

取代$row{'name'}{$row['name']}

$result1 = mysql_query("SELECT * FROM friends WHERE friends = {$row['name']}"); 

或者看起來像你可以簡單地做:

$result1 = mysql_query("SELECT * FROM friends WHERE friends = {$row{'name'}}"); 

除此之外,你有非常不同尋常的價值指數的風格。通常使用括號如[]

0

mysql_fetch_array()返回一個字符串數組。你不能寫: -

$row1 = mysql_fetch_array($result1); 

這就是爲什麼它給人這樣的警告: -

聲明:Array對C字符串轉換:\ XAMPP \ htdocs中\的index.php上線44

第二件事: -

$row{'name'} - <此語法錯誤。改爲使用$row['name']

+0

瘋狂,但語法正確)即使它是不尋常的。從來不知道它可能工作,但只是試了一下。 http://au.php.net/manual/en/language.types.array.php#99015 – 2013-04-04 18:12:13

0

我不知道你是如何編碼的,但這是我將如何實現你的代碼試圖做我認爲它正在嘗試做的事情。


$result = mysql_query("SELECT * FROM posts ORDER BY time DESC"); 

//use mysql_fetch_assoc instead of mysql_fetch_array. Makes more sense to me 

while ($row = mysql_fetch_assoc($result)) { 

    //Then instead or $row{'name'}, you use $row['name'] 
    $result1 = mysql_query("SELECT * FROM friends WHERE friends = $row{'name'}"); 
    $row1 = mysql_fetch_array($result1); 
    if ($row == 1) { 
     echo "".$row{'name'}." says 
".$row{'cont'}."
Posted on ".$row{'time'}."

"; } }

希望它有幫助。

相關問題