2015-10-09 2 views
-2

enter image description hereКак вставить запись в нескольких строках PHP MYSQL

У меня есть проблема, когда я хотел, чтобы вставить запись в строках, это вставить только последнее значение строк

Вот моя вставка поведение записи сервера код:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) { 
$insertSQL = sprintf("INSERT INTO ordering (productCode, Name, paymentMethod, Quantity, TotalPrice) VALUES (%s, %s, %s, %s, %s)", 
        GetSQLValueString($_POST['productcode'], "int"), 
        GetSQLValueString($_POST['Name'], "text"), 
        GetSQLValueString($_POST['PaymentMethod'], "text"), 
        GetSQLValueString($_POST['quantity'], "int"), 
        GetSQLValueString($_POST['totalprice'], "double")); 

    mysql_select_db($database_perfume_connection, $perfume_connection); 
    $Result1 = mysql_query($insertSQL, $perfume_connection) or die(mysql_error()); 

    $insertGoTo = "member_perfume_homepage.php"; 
    if (isset($_SERVER['QUERY_STRING'])) { 
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
    $insertGoTo .= $_SERVER['QUERY_STRING']; 
    } 
    header(sprintf("Location: %s", $insertGoTo)); 
} 
+1

Вам нужно [прекратить использование функций mysql_] (http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php), поскольку они будут удалены из PHP – Machavity

+0

Возможный дубликат [Вставка нескольких строк в mysql] (http://stackoverflow.com/questions/6889065/inserting-multiple-rows-in-mysql) – GottZ

+0

Я попробовал решение gottz, но я не могу сделать это, чтобы запросить @Machavity его ok, хотя я просто использовал это как для моих школьных проектов .... но все же я хочу, чтобы это было сделано, хотя – KingJ

ответ

0

SQL, Вы выполняете это:

INSERT INTO ordering (productCode, Name, paymentMethod, Quantity, TotalPrice) VALUES (%s, %s, %s, %s, %s) 

, который вставляет только одну строку. Это синтаксис SQL. Кроме того, вы должны заметить своим здравым смыслом, что вы разобираете $ _POST только один раз, поэтому он не будет извлекать вам несколько значений, которые будут использоваться в строках, используемых sprintf.

Правильный синтаксис вставки нескольких строк в одном SQL запросе:

INSERT INTO ordering (productCode, Name, paymentMethod, Quantity, TotalPrice) VALUES (%s, %s, %s, %s, %s), (%s, %s, %s, %s, %s), (%s, %s, %s, %s, %s); 

Если Вы хотели бы подготовить SQL запрос, используя функцию Sprintf, Вам потребуется больше 3х аргументы, передаваемые этому методу.

$insertSQL = sprintf("INSERT INTO ordering (productCode, Name, paymentMethod, Quantity, TotalPrice) VALUES (%s, %s, %s, %s, %s)", 
        GetSQLValueString($_POST['productcode'], "int"), 
        GetSQLValueString($_POST['Name'], "text"), 
        GetSQLValueString($_POST['PaymentMethod'], "text"), 
        GetSQLValueString($_POST['quantity'], "int"), 
        GetSQLValueString($_POST['totalprice'], "double"), 
        GetSQLValueString($_POST['productcode'], "int"), 
        GetSQLValueString($_POST['Name'], "text"), 
        GetSQLValueString($_POST['PaymentMethod'], "text"), 
        GetSQLValueString($_POST['quantity'], "int"), 
        GetSQLValueString($_POST['totalprice'], "double"), 
        GetSQLValueString($_POST['productcode'], "int"), 
        GetSQLValueString($_POST['Name'], "text"), 
        GetSQLValueString($_POST['PaymentMethod'], "text"), 
        GetSQLValueString($_POST['quantity'], "int"), 
        GetSQLValueString($_POST['totalprice'], "double")); 

Это должно работать, хотя я не предлагаю использовать этот способ, но думаю о лучшем решении.

Кроме того, функции mysql_ * устарели. Вместо этого используйте PDO или MySQLi. Читайте о них в руководстве по PHP: http://php.net/manual/en/book.pdo.php или http://php.net/manual/en/class.mysqli.php

+0

Я буду обновлять вас, как только я закончу обновление своего кода! Подожди меня!! – KingJ

+0

ОК, я сделал кодировку, он вставляет строку в порядке, но если я вставляю 1 элемент, база данных показывает, что я вставляю элемент 3 из них .. (UPDATE), если я ввожу 2 разных элемента из строки, только последняя строка будет вставлен в базу данных, и он будет вставлять 3 строки записи вставки – KingJ

+0

um im, используя ур, предлагаемый код, но, его не работает .... он показывает только последнее значение строки .. см. изображение из моего сообщения выше .. Вы видите таблицы с двумя строками? например, он показывает только последнюю строку и вставляет 3 повторяющиеся данные из последней строки ... Я хочу, чтобы он показывал много данных из строк в базе данных. – KingJ

Смежные вопросы