내 페이지에서 이름, 크기, 비용 등으로 새 음식 요리를 정의합니다. 아래에서 선택할 수있는 테이블이 있습니다. 이전에 정의 된 성분 목록 (또 다른 MySQL 테이블)은 접시에 지정되고 필요한 수량을 지정합니다.PHP 하나의 필드가 첫 번째 SQL 문에서 생성 된 AIl 데이터베이스 필드 인 MySQL 배열 삽입
첫 번째 부분에서는 제출시 서버 측에서 트리거를 사용하여 DishID
이 자동으로 생성됩니다 (자동 증가). 이것은 접시 파트를 성공적으로 삽입합니다.
두 번째 부분은 넘어지는 부분입니다. 새 데이터베이스 DishID
, IngID
및 Volume
을 내 데이터베이스 테이블에 게시하려고하지만 DishID는 비워 둡니다. 나는 현재 Select Max 문을 사용하여 최신 레코드를 가져 오지만 이것이 이상적은 아닐지 모르지만 이것이 작동하지 않는 이유라고 생각하지 않습니다. 특정 문에 특정 ID를 쓰는 경우에도 공백이 반환됩니다. 그러므로 내 코드가 작성된 방식이어야합니다.
require_once('db_connect.php');
$DishName = mysqli_real_escape_string($con, $_POST['DishName']);
$DishCatID = mysqli_real_escape_string($con, $_POST['DishCatID']);
$Serving = mysqli_real_escape_string($con, $_POST['Serving']);
$SRP = mysqli_real_escape_string($con, $_POST['SRP']);
$Method = mysqli_real_escape_string($con, $_POST['Method']);
$SourceID = mysqli_real_escape_string($con, $_POST['SourceID']);
$sql="INSERT INTO Dishes (DishName, DishCatID, Serving, SRP, Method, SourceID)
VALUES ('$DishName', '$DishCatID', '$Serving', '$SRP', '$Method', '$SourceID')";
mysqli_query($con, $sql) or die(mysqli_error($con));
$DishID = 'SELECT MAX(DishID) FROM Dishes';
$result=mysqli_query($con, $DishID) or die ("Query to get DishID failed: ".mysqli_error($con));
$array = array('$DishID'=>(mysql_query($GetDishID)),'$IngID'=>($_POST['IngID[]']),'$Volume'=>($_POST['Volume[]']));
$values = array();
foreach ($_POST['IngID'] as $i => $ingID) {
if (!empty($ingID)) {
$ingID = mysqli_real_escape_string($con, $ingID);
$volume = mysqli_real_escape_string($con, $_POST['Volume'][$i]);
$values[] = "('$DishID', '$ingID', '$volume')";
}
}
if (!empty($values)) {
$sql2 = 'INSERT INTO DishIng (DishID, IngID, Volume) VALUES ' . implode(', ', $values);
mysqli_query($con, $sql2) or die(mysqli_error($con));
}
require_once('db_disconnect.php');
내가 뭘 잘못하고 있니?
'0'을 반환합니다. 어떻게 적용하겠습니까? 어쩌면 내가 잘못하고있는거야? – fernalonso
DishID가 자동 증가 필드입니까? 그렇지 않은 경우 선택 쿼리를 수행해야합니다. 하지만 코드가 맞지 않습니다. '$ DishID'에 질의를 생성하고 결과를'$ result'에 저장합니다. 그러나 다음 줄에 배열을 만들 때 mysql_query ($ GetDishID)를 호출합니다. 당신은 mysqli를 사용하고 있었고 이제는 mysql을 호출하고 어디에도'$ GetDishID'를 설정하지 않습니다. – slapyo