2014-03-26 221 views
0

我有一個簡單的查詢誰選擇了我從表3新聞,但我不會從其他文件變量變量這個數字。添加到字符串變量(字符串是查詢)

因此,這是查詢:

$query = 'SELECT * FROM news ORDER BY created_at DESC LIMIT 3'; 

我試過不同,但沒有工作...... 幫助請

我的代碼(我不能對我的問題回答,所以我在此添加)

$newsAmount = 3; 
function get_news() { 
    $query = "SELECT * FROM news ORDER BY created_at DESC LIMIT $newsAmount"; 

    $result = mysql_query($query); 
    $news = array(); 
    while ($row = mysql_fetch_array($result)) { 
     $news[] = $row; 
    } 
    return $news; 
    if (!$result) { 
     trigger_error('Invalid query: ' . mysql_error() . " in " . $query); 
    } 
} 

這就是這段代碼。

+0

如果沒有人解決[variable scope](http://php.net/language.variables.scope)的問題,爲什麼你會接受答案? – Gumbo

回答

0

其實你可以這樣做:

$query = "SELECT * FROM news ORDER BY created_at DESC LIMIT $newsAmount"; 

但請務必保持雙引號括起來,因此變量可以被評估,單引號將被打印儘管如此。

嘗試echo $ query,你會注意到它正在被打印。

0

試試這個:

$newsAmount = 3; 
$query = 'SELECT * FROM news ORDER BY created_at DESC LIMIT ' + $newsAmount; 
+1

你應該使用'.'作爲附加操作符。這不會追加'$ newsAmount'的值並添加string.proof [此處](http://3v4l.org/Lflef)的等價值 – krishna

+0

警告:mysql_fetch_array():提供的參數不是有效的MySQL結果資源在 – user2022879

+0

與點(。)相同的警告 – user2022879

0

你不能像你在你的代碼中那樣返回一個數組。
我會建議在你的主代碼中進行查詢,而不是寫入一個函數。