如何使用成员ID从数据库获取多个记录

时间:2013-06-10 06:24:00

标签: php phpmyadmin

通过使用下面的代码,我只从数据库获取单个记录,但我想使用MemberID获取存储在数据库中的特定成员的所有记录。

举个例子,就像我在我的数据库中为MemberID 1有2条记录,但每当我试图从数据库中获取记录时,只获取第一条记录而不是两条记录,为什么?

<?php
$objConnect = mysql_connect("localhost","root","");
$objDB = mysql_select_db("mydatabase");

$strMemberID = $_POST["sMemberID"];
$strSQL = "SELECT * FROM order_details WHERE MemberID = '".$strMemberID."' ";

$objQuery = mysql_query($strSQL);
$obResult = mysql_fetch_assoc($objQuery);

if($obResult)
{
$arr = array();
$arr["OrderID"] = $obResult["OrderID"];
$arr["ItemDetails"] = $obResult["ItemDetails"];
}
mysql_close($objConnect);
echo json_encode($arr);
?>

5 个答案:

答案 0 :(得分:1)

对于多行,您需要一个循环,以便您可以反复调用mysql_fetch_assoc(),直到所有行都被处理完毕:

$arr = array();
while($obResult = mysql_fetch_assoc($objQuery))
{
    $arr[] = $obResult;
}

附注:mysql_*已被弃用且不鼓励,请考虑升级到PDO或MySQLi。

如果您必须使用这个旧库,请记住在$strMemberID中包装mysql_real_escape_string()以避免SQL注入漏洞。

完整代码:

$objConnect = mysql_connect("localhost","root","");
$objDB = mysql_select_db("mydatabase");

$strMemberID = $_POST["sMemberID"];
$strSQL = "SELECT OrderID, ItemDetails FROM order_details WHERE MemberID = '".mysql_real_escape_string($strMemberID)."' ";

$objQuery = mysql_query($strSQL);

$arr = array();
while($obResult = mysql_fetch_assoc($objQuery)) {
    $arr[] = $obResult;
}
mysql_close($objConnect);
echo json_encode($arr);

答案 1 :(得分:0)

尝试使用mysql_fetch_assoc()和while条件

while($row = mysql_fetch_assoc($objQuery))
{
   $result[$row['id']]['column1'] = $row['column1']; 
   $result[$row['id']]['column2'] = $row['column2']; 
}

或者您可以直接使用

while($row = mysql_fetch_assoc($objQuery))
{
   $result[][$row['id']] = $row; 
}
print_r($result);

并且不使用mysql_ *函数,因为它们被删除,而是使用 mysqli _ *函数或 PDO 语句

答案 2 :(得分:0)

使用mysqli_ *函数而不是mysql_,因为它们已被弃用。

注意可能注射 - 如果$ strMemberID来自外部,则可能很危险! mysqli_escape_string有帮助。

while($obResult = mysqli_fetch_assoc($objQuery)){

$arr = array();
$arr["OrderID"] = $obResult["OrderID"];
$arr["ItemDetails"] = $obResult["ItemDetails"];
}

答案 3 :(得分:0)

使用while循环来获得结果

$ objQuery = mysql_query($ strSQL);

$ arr = array();

while($ obResult = mysql_fetch_assoc($ objQuery)){

$ OrderID = $ obResult [&#34; OrderID&#34;];

$ ItemDetails = $ obResult [&#34; ItemDetails&#34;];

array_push($ arr,array(&#39; OrderID&#39; =&gt; $ OrderID,&#39; ItemDetails&#39; =&gt; $ ItemDetails));

}

mysql_close($ objConnect);

echo json_encode($ arr);

答案 4 :(得分:0)

<?php
$objConnect = mysql_connect("localhost","root","");
$objDB = mysql_select_db("mydatabase");

$strMemberID = $_POST["sMemberID"];
$strSQL = "SELECT * FROM order_details WHERE MemberID = '".$strMemberID."' ";

$objQuery = mysql_query($strSQL);
$obResult = mysql_fetch_assoc($objQuery);

if($obResult)
{

while($row==mysql_fetch_assoc($objQuery)){
$arr = array();
$arr["OrderID"] = $obResult["OrderID"];
$arr["ItemDetails"] = $obResult["ItemDetails"];
}
}
mysql_close($objConnect);
echo json_encode($arr);
?>