0
echo '<td><input type="checkbox" name="items[]" value="' . $row['0'] .  '" /></td>';

こんにちは、上に示すように、別のページの items という配列から参照番号を取得し、テーブルでそれを見つけて、「Title,Platform....」のように参照行を出力しようとしています。別のテーブルに入れましたが、うまくいかないようです...助けていただければ幸いです

if (isset($_POST['items'])) {
    $n = count($_POST['items']);

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

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

    if (!$_SESSION["selectingrows"]) {

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

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

        while($rows = pg_fetch_assoc($result))
        {
            echo "<tr>";
            echo "<td>" . $rows['1'] . "</td>"; 
            echo "<td>" . $rows['2'] . "</td>"; 
            echo "<td>" . $rows['3'] . "</td>"; 
            echo "<td>" . $rows['4'] . "</td>";
            echo "</tr>";
        }
    }
}
4

1 に答える 1

1

1 つ、ループ{}の後に中かっこを配置する必要があります。while

これがあなたがしていることです:

while($rows = pg_fetch_assoc($result))

    echo"<tr>"; echo "<td>" . $rows['1'] . "</td>"; echo "<td>" . $rows['2'] . "</td>"; echo "<td>" . $rows['3'] . "</td>"; echo "<td>" . $rows['4'] . "</td>";
    echo"</tr>"; 

ステートメントの後のコードを中かっこで囲まないことによりwhile、コードが実際に行うことは次のようになります。

while($rows = pg_fetch_assoc($result))
{
    echo"<tr>";
}
echo "<td>" . $rows['1'] . "</td>"; echo "<td>" . $rows['2'] . "</td>"; echo "<td>" . $rows['3'] . "</td>"; echo "<td>" . $rows['4'] . "</td>";
echo"</tr>";

while ループ内のコードを定義するには、常に中かっこを挿入する必要があります。

コードは次のようになります。

while($rows = pg_fetch_assoc($result))
{
    echo "<tr>";
    echo "<td>" . $rows['1'] . "</td>"; 
    echo "<td>" . $rows['2'] . "</td>"; 
    echo "<td>" . $rows['3'] . "</td>"; 
    echo "<td>" . $rows['4'] . "</td>";
    echo "</tr>";
}

コードをきちんと適切にフォーマットします。これを行うことで、コードがより明確になり、上記のような間違いに気づきやすくなります。if, while,forステートメントには常に中かっこを使用します。行末セミコロン;を入れるときは、改行を入れます。コードを正しくインデントします。コーディングを容易にするのは、書式設定などのささいなことです。

次の問題は、$rows配列から取得する値です。

    $rows['1'];
    $rows['2'];
    $rows['3'];
    $rows['4'];

これは、 stringのキー$rowsを持つ配列から何かを取得しようとしています。'1'

通常は、 から始まる整数を使用するインデックスで配列値にアクセスします0。または、キーでアクセスします。

これを試すことができます:

    $rows[0];
    $rows[1];
    $rows[2];
    $rows[3];

またはこれ:

    $rows['title'];
    $rows['platform'];
    $rows['description'];
    $rows['price'];
于 2012-11-29T03:39:12.050 に答える