Ich versuche, über ein Formular eine MySQL-assoziativ (viele zu viele) Tabelle zu füllen einreichen. Grundsätzlich versuchen Sie, diese Seite zu verwenden, um eine "Rote Fahne" mit eins-zu-vielen "Produkten" zu verbinden.PHP - Insert in assoziative Tabelle
FORM
<?php
require 'connect-db.php';
$sql = "SELECT ID, prod_name FROM catalog";
$result = mysqli_query($mysqli, $sql);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<p><strong>Add Red Flag:</strong></p>
<form action="addRedFlag.php" method="post" id="rfForm">
<p>Description:
<br/><textarea rows="4" cols="50" name="rfDescription" form="rfForm"></textarea>
<p>Severity: <br/>
<input type="radio" name="severity" value="minor"/>Minor<br/>
<input type="radio" name="severity" value="moderate"/>Moderate<br/>
<input type="radio" name="severity" value="major"/>Major<p/>
<select name="prod_id">
<option value="">Choose a product</option>
<?php while($row = mysqli_fetch_assoc($result)){ ?>
<?php $id = $row['ID']; ?>
<?php $title = $row['prod_name']; ?>
<option value="<?php echo $id; ?>"><?php echo $title; ?></option>
<?php } ?>
</select>
<p/><input type="submit" value="Submit" name="submit" /></form><br>
<a href="captureRedFlag.php"> Reset Form </a><br>
<a href="displayRedFlag.php"> View Red Flag List</a><br>
<a href="../../index.html"> Home</a>
</body>
</html>
PHP HANDLER
<?php
// connect to the database
include("connect-db.php");
$value1 = $_POST['rfDescription'];
$value2 = $_POST['severity'];
$value3 = $_POST['prod_id'];
$sql = "INSERT INTO redFlag (description, severity) VALUES ('$value1', '$value2')";
$sql2 = "SELECT ID FROM redFlag WHERE (description = '$value1')";
$sql3 = "INSERT INTO prod_RF (cat_id, rf_id) VALUES ('$value3', '$value4')";
$result1 = mysqli_query($mysqli, $sql);
$result2 = mysqli_query($mysqli, $sql2);
if ($result1)
{
if ($result2)
{
$row = mysqli_fetch_assoc($result2);
$value4 = $row['ID'];
// echo $value4;
$result3 = mysqli_query($mysqli, $sql3);
if ($result3)
{
echo "success";
}
else {echo "Error: " . $sql . "<br>" . mysqli_error($mysqli);}
}
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($mysqli);
}
mysqli_close($mysqli);
?>
Wenn er ausgeführt wird, schließt der Code erfolgreich aber der Wert von rf_id in prod_RF Tabelle ist immer Null. Das ist seltsam, denn wenn ich die Zeile auszeichne, wird der erwartete Wert auf dem Bildschirm ausgegeben. Aus irgendeinem Grund, wenn ich den gleichen Wert ($ value4) als Eingabe in einer SQL-Abfrage ($ sql3) zu verwenden versuchen, nicht etwas.
Vielen Dank für alle Anregungen, wie ich bin ziemlich neu in diesem alles.
kurz nach '$ value3 = $ _POST [ 'prod_id'];' definieren '$ value4 = '';' und überprüfen –
diese Versuchte ... hat nicht funktioniert. Trotzdem danke! – Ben