2014-04-16 40 views
0

我有以下的代码这在他们行有一定的价值MySQL的结果数组:如何创建

<?php 
include_once 'init/init.funcs.php'; 
$pollid=$_GET['pollid']; 
$result = mysql_query('SELECT question FROM questions where survey_id="' . $pollid . '"'); 
$question = mysql_result($result, 0); 
echo $pollid; 
echo $question; 

?> 

它将回音具有survey_id = $ pollid的第一个问题。但是我想编制一系列所有问题,其中survey_id = $ pollid.How我可以这样做吗?

+0

严重:| mysql_result!的 – h2O

+0

可能重复[如何获取结果在PHP的MySQL的所有行?](http://stackoverflow.com/questions/10940332/how-to-fetch-all-the-row-of-the-result-在-PHP-MySQL的) – mario

回答

1

通过的结果只是循环,并将其添加到一个数组:

$pollid = (int) $_GET['pollid']; 
$questions = array(); 
$result = mysql_query('SELECT question FROM questions where survey_id="' . $pollid . '"'); 
while($row = mysql_fetch_assoc($result)) { 
    $questions[$pollid] = $row['question ']; 
} 

Please, don't use mysql_* functions in new code。他们不再维护and are officially deprecated。请参阅​​?请改为了解prepared statements,并使用PDOMySQLi - this article将帮助您决定哪个。如果您选择PDO,here is a good tutorial

您也可以开放至SQL injections。在我的例子中,我铸造了$_GET['pollid']为一个整数,以帮助防止它们。更好的方法是使用上面提到的准备好的语句。

0

尝试使用mysqli_而不是mysql_,

// MYSQLI 
$mysqli = new mysqli('localhost', 'example', 'example', 'test'); 

print '<h3>MYSQLI: simple select</h3>'; 
$rs = $mysqli->query(YOUR SELECT QUERY); 
while($row = $rs->fetch_object()) 
{ 
    //DATA 
}