2013-06-01 59 views
-3

我想從表中提取一個變量,以便在另一個語句中使用它。SQL變量需要

變量是板的id

<?php 
$data = mysql_query("SELECT id FROM board") 
or die(mysql_error()); 
while($info = mysql_fetch_array($data)) 
{ 
Print " ".$info['id']." "; 
} 
?> 

這會拉出並列出表格中的所有ID。

我希望再能使用".$info['id]."數據變量,像這樣:

$boardid = $info['id']; 

,我可以接着在另一份聲明中使用:

<?php 
$result = mysql_query("SELECT COUNT(is_following_board_id) FROM follow 
WHERE is_following_board_id='$boardid'"); 
$c = mysql_result($result, 0); 
?> 

注意$boardid在上面的聲明中。

但是,爲了得到我需要的$boardid變量,我無法將其置入。

我試過這個,但它不起作用。

任何人都可以幫忙嗎?

<?php 
$data = mysql_query("SELECT id FROM board") 
or die(mysql_error()); 
while($info = mysql_fetch_array($data)) 
{ 
Print " ".$info['id']." "; 
} 
$boardid = $info['id']; 
?> 

我還在學習。 謝謝。

+0

你期待只有一個結果行嗎?每一行都有一個id,因此對於你想要的哪一行id是非常不明確的。 – zsawyer

+0

我只使用這個來獲得'id'列的變量,所以我可以在另一個語句中使用它的每個id –

+0

不,它們是很多行,不只是一個 –

回答

1

需要注意的是使用不推薦的方法。

<?php 
    $data = mysql_query("SELECT id FROM board") or die(mysql_error()); 
    while($info = mysql_fetch_assoc($data)) 
    { 
     Print " ".$info['id']." "; 
     myOtherQuery($info['id']); 
    } 

    function myOtherQuery($id) { 
     $result = mysql_query("SELECT COUNT(is_following_board_id) " + 
      "FROM follow WHERE is_following_board_id='$id'"); 
     $c = mysql_result($result, 0); 
    } 
?> 

myOtherQuery對於每個獲取的行都被調用。這不是很優化,你可能想看看MySQL的join

SELECT board.id 
    FROM board 
INNER JOIN 
    SELECT follow.is_following_board_id, COUNT(is_following_board_id) 
     FROM follow 
ON follow.is_following_board_id=board.id 
GROUP BY board.id; 
+0

我會嘗試這種方法,但是當我剛剛運行它時,「myOtherQuery($ info ['id'])」之後的'}'出現意外 –

+0

謝謝。我設法改變了你的代碼,並取得了預期的效果。 –

+0

缺少分號;但你應該看看MySQL-JOIN – zsawyer

2
$boardid = $info['id'] 

需要在內部while循環工作:)

+0

我試過這個,但仍然遇到「意外';'「錯誤。 ( while( $ boardid = $ info ['id']; $ info = mysql_fetch_array($ data)) { –

+0

這是因爲你把它放在一段時間的情況。不在它的身體(「循環內」)。 – zsawyer

0

假設你board表只有一個排它,那麼你可以更新您的while語句

while($info = mysql_fetch_array($data)) 
{ 
$boardid = $info['id']; 
} 
+0

這隻調用表中最後創建的id,而不是可用於獲取每個id的唯一變量。 –