samedi 25 juin 2016

PHP - Insert Into Associative Table

I am trying to populate a mysql associative (many to many) table via a form submit. Basically, trying to use this page to associate a "Red Flag" to one-to-many "Products". Screenshot of input form 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); ?> When executed, the code completes successfully BUT the value of rf_id in prod_RF table is always zero. This is strange because when I uncomment the echo $value4; line, the expected value is printed to the screen. For some reason, when I attempt to use that same value ($value4) as input to a SQL query ($sql3), something fails. Thanks for any suggestions as I'm pretty new to all this.

Aucun commentaire:

Enregistrer un commentaire