0

こんにちは、あなたが私を助けることができるかどうか疑問に思っていますか? itemsという配列に保存した参照番号を使用してデータベースから行を取得しようとしており、行をテーブルに表示していますが、ページに表示する参照番号しか取得できません.. .どんな助けでも本当に感謝していますか?

</head>
<h1>Shopping Cart</h1>

<body>

<?php $con = pg_connect("blah blah");
if (!$con){
    die('Could not connect: ' . pg_error());
}

if (isset($_POST['items'])) {
    $n = count($_POST['items']);
    for($i=0; $i < $n; $i++)
        echo $_POST['items'][$i]; 
    }

    if(!$_SESSION["selectingrows"]== 0){
        $result = pg_query ($con, "SELECT title, platform, description, price FROM CSGames     WHERE 'refnumber' = 'items[]'");

    echo "<table>
            <tr>
            <th>Title</th>
            <th>Platform</th>
            <th>Description</th>
            <th>Price</th>
            </tr>";

    while($rows = pg_fetch_result($result));{
        echo"<tr>"; echo "<td>" . $rows['title'] . "</td>"; echo "<td>" . $rows['platform'] . "</td>"; echo "<td>" . $rows['description'] . "</td>"; echo "<td>" . $rows['price'] . "</td>";
        echo"</tr>";      
    }
    echo"</table>";
}
4

3 に答える 3

1

while ステートメントをブロックしています:

while($rows = pg_fetch_result($result));{

そして、次のようにする必要があります。

while($rows = pg_fetch_result($result)){

セミコロンがなくなっていることに注意してください。

編集:構文エラーがさらにあるようです(これは完全です):

$con = pg_connect("blah blah");
if (!$con){
    die('Could not connect: ' . pg_error());
}

if (isset($_POST['items'])) {
    $n = count($_POST['items']);
    for($i=0; $i < $n; $i++){
        echo $_POST['items'][$i]; 
    }

    if(!$_SESSION["selectingrows"]== 0){
        $result = pg_query ($con, "SELECT title, platform, description, price FROM CSGames     WHERE 'refnumber' = 'items[]'");

    echo "<table>
            <tr>
            <th>Title</th>
            <th>Platform</th>
            <th>Description</th>
            <th>Price</th>
            </tr>";

    while($rows = pg_fetch_result($result));{
            echo"<tr>"; echo "<td>" . $rows['title'] . "</td>"; echo "<td>" . $rows['platform'] . "</td>"; echo "<td>" . $rows['description'] . "</td>"; echo "<td>" . $rows['price'] . "</td>";
            echo"</tr>";      
        }
        echo"</table>";
    }
}
于 2012-11-29T00:14:12.837 に答える
0

あなたの問題はここにあると思います:

$result = pg_query ($con, "SELECT title, platform, description, price FROM CSGames     WHERE 'refnumber' = 'items[]'");

items[]は有効な変数参照ではありません。あなたはおそらく次のようなことをする必要があります:

$items = array();
foreach ($_POST['items'] as $item) {
    $items[] = pg_escape_string($con, $item);
}

$item_string = "'" . implode("','", $items) . "'";

$result = pg_query ($con, "SELECT title, platform, description, price FROM CSGames     WHERE 'refnumber' IN ($item_string)");

投稿されたデータをクエリで使用するためにエスケープし、すべての値の文字列を作成してから、その文字列を SQLWHERE 'refnumber' IN句で使用したことに注意してください。

于 2012-11-29T00:19:40.717 に答える
0
</head>
<h1>Shopping Cart</h1>

<body>

<?php $con = pg_connect("blah blah");
if (!$con){
    die('Could not connect: ' . pg_error());
}

if (isset($_POST['items'])) {
    $n = count($_POST['items']);
    $items = array();
    for($i=0; $i < $n; $i++)
        array_push($items,$_POST['items'][$i]; // stored referrral_no in array
    }
    $items = implode("','",$items); // implode to query use
    if(!$_SESSION["selectingrows"]== 0){
        $result = pg_query ($con, "SELECT title, platform, description, price FROM CSGames     WHERE 'refnumber' IN ('$items')"); // revise query to IN

    echo "<table>
            <tr>
            <th>Title</th>
            <th>Platform</th>
            <th>Description</th>
            <th>Price</th>
            </tr>";

    while($rows = pg_fetch_result($result)){
        echo"<tr>"; echo "<td>" . $rows['title'] . "</td>"; echo "<td>" . $rows['platform'] . "</td>"; echo "<td>" . $rows['description'] . "</td>"; echo "<td>" . $rows['price'] . "</td>";
        echo"</tr>";      
    }
    echo"</table>";
}

これを試して、最初にアイテムを配列に再度保存してから、クエリで使用するために内破します

于 2012-11-29T00:23:20.813 に答える