@lesmanora

Как сделать редактирование уже существующего массива?

Есть уже работающий массив:

$id = mysqli_insert_id($link);
foreach ($_POST['tovar'] as $i => $tovar) {
		  if (!empty($tovar) AND !empty($_POST['many'][$i])) {
			  $many = $_POST['many'][$i];
			  mysqli_query($link,"INSERT INTO tovar(products_id,tovar,many)
            VALUES(
              '".mysqli_real_escape_string($link, $id)."',
              '".mysqli_real_escape_string($link, $tovar)."',
              '".mysqli_real_escape_string($link, $many)."'
            )") or die("Ошибка: ".mysqli_error($link));
		  } else {
			  $_SESSION['answer'] = "Ошибка";
		  }
	  }


Но нужно делать так, чтобы этот массив можно было добавлять и изменять, вот c 'этим уже загвоздка.....

$id = clear_string($_GET["id"]);
 $idd = mysqli_insert_id($link);
             

	
	  foreach ($_POST['tovar'] as $i => $tovar) {
		  if (!empty($tovar) AND !empty($_POST['many'][$i])) {
			  $many = $_POST['many'][$i];
			  mysqli_query($link,"UPDATE tovar SET (products_id='$id',tovar='$tovar',many='$many')
			   ") or die("Ошибка: ".mysqli_error($link));
		  } else {
			  $_SESSION['answer'] = "Ошибка";
		  }
	  }
	  
	  foreach ($_POST['tovars'] as $i => $tovars) {
		  if (!empty($tovars) AND !empty($_POST['manys'][$i])) {
			  $manys = $_POST['manys'][$i];
			  mysqli_query($link,"INSERT INTO tovar(products_id,tovar,many)
            VALUES(
              '".mysqli_real_escape_string($link, $id)."',
              '".mysqli_real_escape_string($link, $tovars)."',
              '".mysqli_real_escape_string($link, $manys)."'
            )") or die("Ошибка: ".mysqli_error($link));
		  } else {
			  $_SESSION['answer'] = "Ошибка";
		  }
	  }


Выводит ошибку : Ваши данные успешно добавленыОшибка: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '(products_id='90',tovar='Наименование товара3',many='234')' at line 1

Есть две базы cotegorys(id) и tovar(product_tovar) и они взаимосвязаны.
Все, что в базе cotegorys изменятеся, а вот товары так не подтягиваются...

Весь код обработчика скидываю ниже:
spoiler

session_start();
      if ($_SESSION['auth_admin'] == "yes_auth")
{
	define('supercleaning', true);
       
       if (isset($_GET["logout"]))
    {
        unset($_SESSION['auth_admin']);
        header("Location: index.php");
    }}
   
   include("include/db_connect.php");
   include("functions/functions.php");
   
   $id = clear_string($_GET["id"]);
 
   if ($_POST["submit_add"])
    {

      $error = array();
    
    // Проверка полей
        
       if (!$_POST["form_title"])
      {
         $error[] = "Укажите категорию";
      }
	  if (!$_POST["form_categor"]) {
		  $error[] = "Укажите категорию на английском";
	  }
	  if (!$_POST["text"]) {
		  $error[] = "Укажите описание";
	  }
       
      if (count($error))
       {           
            $_SESSION['message'] = "<p id='form-error'>".implode('<br />',$error)."</p>";
            
       }else
       {
      	
$brand = $_POST['form_title'];
$brands = $_POST['form_categor'];
$text = $_POST['text'];

$link = mysqli_connect($db_host, $db_user, $db_password, $db_database) 
    or die("Ошибка " . mysqli_error($link)); 
    
	$querynew = "category='{$_POST["form_title"]}',brand='{$_POST["form_categor"]}',text='{$_POST["text"]}'";

	$update ="UPDATE categorys SET $querynew WHERE id='$id' ";

	$result = mysqli_query($link, $update) or die("Ошибка " . mysqli_error($link));

//Если запрос пройдет успешно то в переменную result вернется true
if ($result == 'true') {
	echo "Ваши данные успешно добавлены";
	
	}
else {echo "Ваши данные не добавлены";}
   
      $_SESSION['message'] = "<p id='form-success'>Данные успешно добавлены!</p>";
      
      $idd = mysqli_insert_id($link);
             

	
	  foreach ($_POST['tovar'] as $i => $tovar) {
		  if (!empty($tovar) AND !empty($_POST['many'][$i])) {
			  $many = $_POST['many'][$i];
			  mysqli_query($link,"UPDATE tovar SET (products_id='$id',tovar='$tovar',many='$many')
			   ") or die("Ошибка: ".mysqli_error($link));
		  } else {
			  $_SESSION['answer'] = "Ошибка";
		  }
	  }
	  
	  foreach ($_POST['tovars'] as $i => $tovars) {
		  if (!empty($tovars) AND !empty($_POST['manys'][$i])) {
			  $manys = $_POST['manys'][$i];
			  mysqli_query($link,"INSERT INTO tovar(products_id,tovar,many)
            VALUES(
              '".mysqli_real_escape_string($link, $id)."',
              '".mysqli_real_escape_string($link, $tovars)."',
              '".mysqli_real_escape_string($link, $manys)."'
            )") or die("Ошибка: ".mysqli_error($link));
		  } else {
			  $_SESSION['answer'] = "Ошибка";
		  }
	  }

            
             
                 
       if (empty($_POST["upload_image"]))
      {        
      include("actions/upload-images.php");
      unset($_POST["upload_image"]);           
      } 
	  if (empty($_POST["galleryimg"])) {
		  include("actions/upload-gallery.php");
		  unset($_POST["galleryimg"]);
	  }

	  
  } }




Формы:

spoiler

<label class="stylelabel" >Наименование товара</label>
									<?php

									$link = mysqli_connect($db_host, $db_user, $db_password, $db_database)
									or die("Ошибка " . mysqli_error($link));
									$query ="SELECT * FROM categorys WHERE id='$id' ";
									$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));

									if (mysqli_num_rows($result) > 0) {
										$query ="SELECT * FROM tovar WHERE products_id='$id' ";
										$result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));

										if (mysqli_num_rows($result) > 0) {
											$row = mysqli_fetch_array($result);

											do {
												echo '
									
												
											<input type="text" name="tovar[]" class="field" value="'.$row["tovar"].'" style="width: 78%;">
											<input type="text" name="many[]" class="field" value="'.$row["many"].'" style="width: 20%;"><br>
											
									';
									}
									while ($row = mysqli_fetch_array($result));
									}	}

									?>  
									
								</div>
								
								
									<div id="dynamic-form" class="dynamic-form">

										<a href="#dynamic-form" id="add">Добавить</a>
										<a href="#dynamic-form" id="remove">Удалить</a>
										<a href="#dynamic-form" id="reset">Сбросить</a>
										<br><br><br>

										<div class="inputs">
											<div>
												<label class="stylelabel" >Наименование товара</label>
												<input type="text" name="tovars[]" class="field" style="width: 78%;">
												<input type="text" name="manys[]" class="field" style="width: 20%;"><br></div>
										</div>

									</div>

  • Вопрос задан
  • 81 просмотр
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Есть уже работающий массив

Что такое "работающий массив"? При чем тут массив?

You have an error in your SQL syntax

Ошибка в синтаксисе sql запроса, при чем тут массив? Вероятно стоит убрать кавычки вокруг переменных. Потому что products_id наверное ждет int, а получает string.
Вот простой гайд с примерами: https://www.w3schools.com/sql/sql_update.asp
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽