初めての質問です、宜しくお願い致します。
###前提・実現したいこと
PHPのフォームの部分なのですが、フォームの内容をデータベースに書き込む際に、他のテーブルのidをフォームを送信するテーブルのidにデータを送りたいのですが、データ件数カウントの指定方法がダメなのか、変数の指定がダメなのかわからず困っております。
どなたか助言をお願い致します。
ちなみに、システム(アプリ)は、メニューの一覧があり、チェックを入れて送信すると、データベースに選んだメニューのデータが送られるという感じです。idはメニューの種類(主菜など)です
###該当のソースコード
テーブルの結合を行って、menuIdを持ってきているはず・・・なのですが、データベースの方には値が0としか入ってくれません・・・
コードはこんな感じです↓↓
PHP
1//データ件数をカウント、変数dataに代入 2$recordSet = mysqli_query('SELECT COUNT(id) FROM dish INNER JOIN menu ON dish.dishId = menu.menuId'); 3$data = mysqli_fetch_assoc($recordset); 4 5$id = $data['count(id)']+1; 6$dishId = $_POST[menuId]; 7$dishMenu1 = $_POST[dishMenu1]; 8$dishMenu2 = $_POST[dishMenu2]; 9$dishMenu3 = $_POST[dishMenu3]; 10$dishMenu4 = $_POST[dishMenu4]; 11 12//書き込み部分 13mysqli_query('INSERT INTO dish SET id="'.$id.'",dishId="'.$dishId.'",dishMenu1="'.$dishMenu1.'",dishMenu2="'.$dishMenu2.'",dishMenu3="'.$dishMenu3.'",dishMenu4="'.$dishMenu4.'"') or die(mysqli_error());
###試したこと
$recordSetはテーブル結合しているはずなので、変に弄るともっと分からなくなるかなと思い、
$dishId=$_POST[menuId];の部分を$dishId=$_POST[dishId];にしてみたのですが、0の値のままでした。
###追記
テーブル構造↓
dishはdishId,dishMenu1,dishMenu2,dishMenu3・・・
menuはmenuId,menu1,menu2,menu3・・・という構造になっています。
考えてみたところ、この結合方法は不適切かな・・・?と思いましたので、上記にあるコードの
$recordSet = mysqli_query('SELECT COUNT(id) FROM dish INNER JOIN menu ON dish.dishId = menu.menuId');
の部分を
$recordSet = mysql_query('SELECT COUNT(id) as CNT FROM answers');
$sql = sprintf('SELECT * FROM questions WHERE questionnaires_id="%s"',mysql_real_escape_string($_GET['q']));
に書き換えてみましたが、idが取得されませんでした。
現在、このような感じです。
$recordSet = mysql_query('SELECT COUNT(id) as CNT FROM answers'); $sql = sprintf('SELECT * FROM questions WHERE questionnaires_id="%s"',mysql_real_escape_string($_GET['q'])); $data = mysql_fetch_assoc($recordSet); $id = $data['CNT']+1; $dishId = $_POST[menuId]; $dishMenu1 = $_POST[dishMenu1]; $dishMenu2 = $_POST[dishMenu2]; $dishMenu3 = $_POST[dishMenu3]; $dishMenu4 = $_POST[dishMenu4]; //書き込み部分 mysqli_query('INSERT INTO dish SET id="'.$id.'",dishId="'.$dishId.'",dishMenu1="'.$dishMenu1.'",dishMenu2="'.$dishMenu2.'",dishMenu3="'.$dishMenu3.'",dishMenu4="'.$dishMenu4.'"') or die(mysqli_error());
回答2件
あなたの回答
tips
プレビュー