0

データベースにデータを追加する次のコードがあります。すべてが正常に機能しているように見えますが、データベースに一度だけ追加され、その後、データがデータベースに正しく保存されたことがわかりますが、追加されたかどうかを確認したい場合は、追加されていないことがわかります。

insert.php

<?php   
            session_start();
            $server = "";
            $user_name = "";
            $password = "";
            $database = "";
            $id = $_SESSION['id'];
            $res_name = $_SESSION['username'];

            $db_handle = mysql_connect($server, $user_name, $password);
            $db_found = mysql_select_db($database, $db_handle);
            if ($db_found) {
                $SQL = "INSERT INTO [db_table] (ID,name,category,dish_name,explanation,ingredients,price) 
                VALUES ('$id','$res_name','$_POST[cat]','$_POST[dname]','$_POST[about]','$_POST[ing]','$_POST[num]')";
                $result = mysql_query($SQL);

                mysql_close($db_handle);

                print "Records added to the database";
                echo "<BR>";
                echo "<a href='newitem.php'>Back to main page</a>";

            }
            else {
                mysql_close($db_handle);
            }
          ?>

そして私のhtmlフォームで:

<form class="form-inline" action="inser.php" method="post">
    <input type="text" id="dname" name="dname" class="input-medium" placeholder="Dish Name">
    <?php
    $server = "";
    $user_name = "";
    $password = "";
    $database = "";
    $id = $_SESSION['id'];
    $res_name = $_SESSION['username'];
    $_SESSION['id'] = $id;
    $db_handle = mysql_connect($server, $user_name, $password);
    $db_found = mysql_select_db($database, $db_handle);
    if ($db_found) {

        $SQL = "SELECT category from Category where Rest_ID = '".$id."'";           
        $result = mysql_query($SQL,$db_handle) or die(mysql_error());
        $i = 0;
        echo "<select id='cat' name='cat'> <option selected='selected'>Select</option>";
        while($row = mysql_fetch_array($result)){
            $i = $i + 1;
            echo "<option>".$i.". $row[category]</option>";
        }
        echo '</SELECT>';
    }
    else {
        mysql_close($db_handle);
    }
    //echo $id;
    ?>
    <input type="text" id="ing" name="ing" class="input-medium" placeholder="Ingredients">
    <input type="text" id="about" name="about" class="input-medium" placeholder="About this food">
    <input type="number" id="num" name="num" class="input-medium" onkeypress="return isNumberKey(event)" placeholder="Price">
    <button type="submit" class="btn btn-success">Add</button>
  </form>

私は問題を理解できないようです。

4

2 に答える 2

0

「id」はテーブルのプライマリ フィールドであり、同じレコードをテーブルに挿入しようとしていると思います。そのため、レコードをテーブルに挿入していません。新しい値でレコードを変更する場合は、レコードが既に存在するなどの条件を確認して更新クエリを試してください。

以下を使用すると、mysql エラーを追跡できます。

mysql_query($sql) または die($sql . mysql_error());

于 2013-07-15T13:30:52.923 に答える