0

PHPMYADMINに複数のレコードがあり、PHP コードを使用してそれらのレコードをフェッチしようとしていますが 、Localhostを使用して php スクリプトを実行するたびに常にArray ( ) 1を取得していますが、テーブルに5 行あります.

以下のコードを参照してください。

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

$strMemberID = $_POST["sMemberID"];
$strSQL =  "SELECT * FROM order_details WHERE 
MemberID = '".mysql_real_escape_string($strMemberID)."' ORDER BY OrderID DESC ";

$objQuery = mysql_query($strSQL);


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

2 に答える 2

0

while ループでコードを変更します。

ループの外で $arr を宣言します。ループ内で配列を宣言すると、初期化する前に配列がクリアされます。そのため、各実行で単一の行を取得しています。

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

Also, to view array elements use echo json_encode($arr) or var_dump($arr) or print_r($arr);

それは間違いなくあなたのために働くでしょう

于 2013-06-13T05:03:19.143 に答える
0

それはあなたの質問への直接の答えではありませんが、その間に PDO と準備されたステートメントを使用してみてください

$strMemberID = $_POST["sMemberID"];
$strSQL = 'SELECT * FROM order_details WHERE MemberID = ? ORDER BY OrderID DESC';
try {
    $db = new PDO('mysql:host=localhost;dbname=dbname;charset=UTF8', 'user', 'password');
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
    $query = $db->prepare($strSQL);
    $query->execute(array($strMemberID));
    $result = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    echo 'Exeption: ' .$e->getMessage();
    $result = false;
}
$query = null;
$db = null;
var_dump($result);

あなたはそれを好きかもしれません。

于 2013-06-13T05:07:03.980 に答える