BoriHagen
@BoriHagen

Почему не сохраняются данные в БД?

database.php :

$ip = "127.0.0.1";
$user = "root";
$password = "";
$db = "crm";

$connection = mysqli_connect($id, $user, $password, $db);

if ($connection == false) {
	echo "Произошла ошибка";
}


saveOrder.php :

include "database.php";
$order_number = $_GET["order_id"];

function saveOrder (){
	global $connection;
	global $order_number;
	mysqli_query($connection, "UPDATE `orders` SET `order_status`=".$_POST['orderStatus'].",`customer_surname`=".$_POST['customerSurname'].",`customer_name`=".$_POST['customerName'].",`customer_patronymic`=".$_POST['customerPatronymic'].",`email`=".$_POST['email'].",`phone_number`=".$_POST['phoneNumber'].",`second_phone_number`=".$_POST['secondPhoneNumber'].",`address`=".$_POST['address']." WHERE `orders`.`order_number` =".$order_number);
	mysqli_query($connection, "UPDATE `order_items` SET `item1` = ".$_POST['vendorCode'][0].", `item2` = ".$_POST['vendorCode'][1].", `item3` = ".$_POST['vendorCode'][2].", `item4` = ".$_POST['vendorCode'][3].", `item5` = ".$_POST['vendorCode'][4].", `item6` = ".$_POST['vendorCode'][5].", `item7` = ".$_POST['vendorCode'][6].", `item8` = ".$_POST['vendorCode'][7].", `item9` = ".$_POST['vendorCode'][8].", `item10` = ".$_POST['vendorCode'][9].", `item11` = ".$_POST['vendorCode'][10].", `item12` = ".$_POST['vendorCode'][11].", `item13` = ".$_POST['vendorCode'][12].", `item14` = ".$_POST['vendorCode'][13].", `item15` = ".$_POST['vendorCode'][14].", `item16` = ".$_POST['vendorCode'][15].", `item17` = ".$_POST['vendorCode'][16].", `item18` = ".$_POST['vendorCode'][17].", `item19` = ".$_POST['vendorCode'][18].", `item20` = ".$_POST['vendorCode'][19]." WHERE `order_items`.`order_number` =".$order_number);
}
saveOrder();
header('Location: crm_order_page.php?order_id='.$order_number);


Станица обновляется, ошибок не выводит, пробовал делать echo $order_number - выводит 1 как и должно. SQL запрос по синтаксису вроде тоже верный, так как брал напрямую с phpmyadmin, но обновления данных в таблице так и не происходит. Данные с POST массива тоже выводятся корректно при помощи echo.
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Чтобы запрос всегда выполнялся, надо делать так
1. сначала подготавлиавешь запрос, вместо всех переменных ставишь знак вопроса
2. в bind_param пишешь столько букв s, сколько переменных, а дальше - сами переменные
3. выполняешь запрос

Кроме того и в тот и в дргой файл надо добавить разные нужные вещи, и выкинуть ненужные.

Я знаю, что это трудно поначалу осилить, но тут надо выбирать - или постараться, или вообще не тратить время учебу.

database.php взять отсюда , только название БД свое подставь

saveOrder.php :

<?php
include "database.php";
$order_number = $_GET["order_id"];

$sql = "UPDATE `orders` SET `order_status`=?,`customer_surname`=?,`customer_name`=?,
`customer_patronymic`=?,`email`=?,`phone_number`=,`second_phone_number`=?,`address`=? 
WHERE `orders`.`order_number` =?";
$stmt = $connection->prepare($sql);
$stmt->bind_param("sssssssss", $_POST['orderStatus'],$_POST['customerSurname'],
    $_POST['customerName'],$_POST['customerPatronymic'],$_POST['email'],
    $_POST['phoneNumber'],$_POST['secondPhoneNumber'],$_POST['address'],$order_number
);
$stmt->execute();

// второй запрос делаешь по тому же принципу
header('Location: crm_order_page.php?order_id='.$order_number);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы