Задать вопрос
@vadovnikita

Как получить id от button?

В общем хотел сделать так чтобы при загрузке файла он отправлял в БД ссылку на файл, но видимо что то сделал не так, он отправляет ссылку на картинку товара но на все товары, нужно именно чтобы он записывал ссылку на картинку определенному товару БД
<tbody id="tovars">
      <?php
while($row = mysqli_fetch_array($all_tovars)) {

$id = $row['id'];
$name = $row['name'];
$desc = $row['sm_desc'];
$cost = $row['cost'];
$views = $row['views'];
$sql_select1 = "SELECT COUNT(*) FROM purchases WHERE tovar_id = '$id'";
$result1 = mysqli_query($link,$sql_select1);
$row = mysqli_fetch_array($result1);
if($row)
{
    $kupili = $row['COUNT(*)'];
}
echo '<tr id="product'.$id.'">
      <th scope="row">'.$id.'</th>
      <td>'.$name.'</td>
      <td>'.$cost.'</td>
      <td>'.$views.'</td>
      <td>'.$kupili.'</td>

      <td><button data-id="'.$id.'" onclick="del(this)" class="btn btn-danger " style="display:inline-block; width:49%;float:left;">Удалить</button>
      <input hidden name="ids" id="ids" value="5" type="text" placeholder="5"> <button data-edit="'.$id.'" name="id" onclick="edit(this)" class="btn btn-primary " style="display:inline-block; width:49%;float:right;" data-toggle="modal" data-target="#edit">Изменить</button></input>
      </td>
    </tr>';

  }
?>

  </tbody>


<form method="post" enctype="multipart/form-data">
<label for="tovar_full">Изображение товара</label>
<input type="file" name="filename" size="10" />
<input type="submit"  value="Загрузить" />
</form>


<?php
if ($_FILES && $_FILES["filename"]["error"]== UPLOAD_ERR_OK)
{
    $name = "upload/" . $_FILES["filename"]["name"];
    move_uploaded_file($_FILES["filename"]["tmp_name"], $name);
	$names = "https://smm-services.ru/admin/";
	$query = mysqli_query($link,"UPDATE tovars SET img = '$names$name' WHERE id = '$id'");
    echo "Файл загружен $id";
}
?>
  • Вопрос задан
  • 171 просмотр
Подписаться 1 Простой 3 комментария
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Здесь вы вроде бы правильно обновляете картинку только у нужного товара по его айди

$query = mysqli_query($link,"UPDATE tovars SET img = '$names$name' WHERE id = '$id'");


Но откуда ID то берется?

Передавайте идентификатор вместе с картинкой
<form method="post" enctype="multipart/form-data">
  <label for="tovar_full">Изображение товара</label> 
  <input type="hidden" name="id" value=" тут айди товара, к которому нужно прикрепить картинку " />
  <input type="file" name="filename" size="10" />
  <input type="submit"  value="Загрузить" />
</form>


и на сервере соответственно

$names = "https://smm-services.ru/admin/";
$id = $_POST['id']; // получить ID из формы
$query = mysqli_query($link,"UPDATE tovars SET img = '$names$name' WHERE id = '$id'");


PS
Нельзя вставлять данные в запрос напрямую полученные от пользователя. Узнайте, что такое sql-инъекции и как от них защищаться.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы