$q4 = "SELECT order_id FROM menu WHERE category_id = $cat_id";
$r4 = mysqli_query($dbc, $q4);
$num_items = mysqli_num_rows($r4)+1;
$q5 = "INSERT INTO menu (category_id, order_id, item, price, date_added, name) VALUES ('$cat_id', '$num_items', '$item', $price, NOW(), $name)";
$r5 = mysqli_query($dbc, $q5);
現在、テーブルの行の総量を取得するために1つの初期クエリを実行していますので、新しく挿入された行に正しいorder_idを追加できます。データベースへの2つのクエリを実行せずにPHPテーブルの順序を作成する
は基本的に、私は、ユーザーが注文自身
1つのクエリでこれを行う方法はあります編集できるIよう1,2,3,4を維持したいですか?あるいは、あなた方はもっと良い方法を知っているでしょうか?
おかげ
ように、インサート中のサブクエリを使用これは動作しません – ajreal
私は推測します。しかし、自動インクリメントdoesntは1,2,3,4のような連続した順序でそれを行います...もしユーザーが1,2,3,4を削除すると5から数え始めます...しかし、私はそれが本当に問題ではないと思います長い間注文を保持しています – Adam
再利用しない理由があります。 'order_id = 1'にリンクされた他のテーブルにデータがあったとします。もしあなたが注文を削除し、同じIDを持つ別のテーブルが作成された場合、その他のデータは新しい注文と正しくリンクされません。 IDは一意であり、再使用されることはありません。削除されたIDを再利用しないことには不利益はありません。 –