2014-03-26 157 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

你不能像你在你的代码中那样返回一个数组。
我会建议在你的主代码中进行查询,而不是写入一个函数。