0

フォームをデータベースに投稿する際に問題が発生しています。最初の部分は、1 つのテーブルから CustomerID をチェックするクエリであり、この部分は正常に機能します。次の部分は、値を別のテーブルに投稿することです。フォームではすべて正常に機能しますが、「注文」テーブルに投稿されておらず、エラーも返されていません。私は何が欠けていますか?

<?php
    //Insert Into database
    $mysqli = @ new mysqli('127.0.0.1','root',null,'storefront');

    if (mysqli_connect_error())
    {
    echo 'Error: Could not connect to database. Please try again later.';
    exit;
    }

    $mysqli->select_db("storefront")
        or die("<p>Unable to select the database.</p>"
        ."<p>Error code ". mysqli_errno($mysqli)
        .": " . mysqli_error($mysqli)) . "</p>";

    $customerid = isset($_POST['customerid']);
    $custid = $_POST['customerid'];

    if($customerid)
    {
        $result = $mysqli->query("SELECT * FROM customer WHERE customerID = '$custid'");
        $row = $result->fetch_row();

        if (!$row)
        {
            echo "Customer Number not found.".mysql_error();
            exit;
        }
    }
    else
    {

        $tableName = "orders";
        $nullstr = "NULL";

        $SQLstring = "INSERT INTO $tableName VALUES
                ('".$nullstr."','".$customerid."', '".$blue."','".$green."','".$red."')";
        $result = $mysqli->query($SQLstring);   

        if ($result)
        {
            echo $mysqli->affected_rows ."  $tableName database.<br />";

            $mysqli->close();
        }
    }
?>
4

2 に答える 2

0

この行:

$SQLstring = "INSERT INTO $tableName VALUES
            ('".$nullstr."','".$customerid."', '".$blue."','".$green."','".$red."')";

次のようなものでなければなりません

$SQLstring = "INSERT INTO $tableName VALUES
            ('".$nullstr."','".$custid."', '".$blue."','".$green."','".$red."')";

あなたの挿入はELSE forで呼び出されてif($customerid)います-最初のクエリのelseになることを意図していたようです:

    if($customerid)
    {
        $result = $mysqli->query("SELECT * FROM customer WHERE customerID = '$custid'");
        $row = $result->fetch_row();

        if (!$row)
        {
            echo "Customer Number not found.".mysql_error();
            exit;
        }      
        else
        {
            $tableName = "orders";
            $nullstr = "NULL";

            $SQLstring = "INSERT INTO $tableName VALUES
                ('".$nullstr."','".$custid."', '".$blue."','".$green."','".$red."')";
            $result = $mysqli->query($SQLstring);   

            if ($result)
            {
                echo $mysqli->affected_rows ."  $tableName database.<br />";

                $mysqli->close();
            }
        }
    }

$blue、$green、$red はどこにも定義されていませんが、それは関係ありません。

多分私はここであなたの意図の考えを逃した. もしそうなら、私に知らせてください。もう一度見直して更新します。

于 2013-04-19T03:14:39.647 に答える
0

交換してみる

$customerid$custid

から

('".$nullstr."','".$customerid."', '".$blue."','".$green."','".$red."')";

('".$nullstr."','".$custid."', '".$blue."','".$green."','".$red."')";
于 2013-04-19T03:16:21.293 に答える