私は軽いバックオフィス注文管理システムでウェブサイトを構築しています。私はまだPHPの学習プロセスにいるので、技術的な問題に遭遇しています。 私は、異なるスクリプトを起動するPHPメニューを持っており、この1つ(waiting_orders.php)は、待っている注文をhtmlテーブルに表示します。ボタンに格納されている注文主キーをクリックすると、order_detail.php(顧客テーブルへの参加など)で注文詳細を参照できるようになります。 2つのスクリプトは正常に実行されますが、order_detail.phpは期待される結果を表示しません。htmlテーブルのselect *から選択された行にアクセスするphp/pdo/mysql
waiting_orders.php
<?php
session_start();
if(isset($_POST['detail']))
{ header('Location: order_detail.php'); }
?>
<!DOCTYPE html>
all html stuff
<?php // all db connexion stuff
$status = "waiting";
$select = $connexion -> prepare("SELECT orderID,order_date,order_qty,order_amount
FROM Orders WHERE status = '$status'"
);
$select->execute();
$result = $select->fetchall();
echo '<table cellpadding="0" cellspacing="0" class="db-table">';
echo '<tr><th>Order no</th><th>Date</th><th>Quantity</th><th>Amount</th></tr>';
foreach($result as $row)
{
$_SESSION['order_key'] = $row['orderID']; // orderID is the primary key
echo '<tr>';
echo '<form method="post" action=""><td><button class="btn btn-danger bold" type="submit" name="detail" value="'.$_SESSION['order_key'].'">'.$row['cmdID'].'</button></td></form>';
echo '<td>',$row['order_date'],'</td>';
echo '<td>',$row['order_qty'],'</td>';
echo '<td>',$row['order_amount'],'</td>';
echo '</tr>';
}
echo '</table>';
?>
order_detail.php
<?php
session_start();
$select_key = $_SESSION['order_key'] ;
?>
<!DOCTYPE html>
all html stuff
<?php // all db connexion stuff
$select = $connexion -> prepare(
"SELECT * FROM Orders WHERE orderID = '$select_key'"
);
あなたが推測しているよう、order_detail.php常に最後の行ではなく、ユーザが選択した現在のorderIDを表示します。私は配列を使ってみましたが、成功することはありませんでした。なぜなら、それをどう扱うかは本当に分かりません。ありがとう。
[ 'orderID'];最後のorderIDがセッションに保存されます。 –
order_detail.phpをデバッグするにはSELECT * FROM Orders WHERE orderID = '$ select_key' "'を試して、データベースに行われている実際のクエリを確認してからphpMyAdminにコピーして貼り付けますそれがあなたに期待される結果を与えるか、エラーメッセージを与えるかどうかを確認してください。 – grateful
正しいDr.Stitchこれが配列にorderIDキーを格納しようとした理由です。$ keys = array(); $ keys [] = $ row ['orderID'];と$ _SESSION ['order_key'] = $ keys;すべてのorderIDキーがありますが、ユーザーがクリックしたキーはまだわかりません。 – devoteur