mysql — кнопка Добавить в корзину добавляет пробелы в базу данных

На странице просмотра в интернет-магазине я пытаюсь создать кнопку «Добавить в корзину», но при нажатии кнопки пустое поле (содержащее только нули во всех строках) просто вставляется в таблицу «cart_items».

Я бы хотел, чтобы addtocart.php вставлял все строки в таблицу cart_items.

Это код кнопки:

<form action="addtocart.php" method="post">
<td><input name="id" type="hidden" value="'.$id.'" /></td>
<td>
<div><input type="submit" name="submit" value="Føj til kurv" /></div>
</td>
</form>

$id определяется как $row['id'] ранее в документе.

Это код addtocart.php:

<?php
ob_start();
mysql_connect("localhost","root","") or die("Could not connect");
mysql_select_db("comics") or die("could not find DB");
if(!is_numeric($_POST['id'])) {

$eID=mysql_escape_string($_POST['id']);
}

$addtocart="INSERT INTO cart_items SET id='".$eID."'";
mysql_query($addtocart);
header("location:browsedata2.php");
exit;
ob_end_flush();
?>

Я не получаю никаких ошибок, он просто добавляет пробел.

Я не уверен, что дал достаточно информации, если вам нужно больше, просто скажите.

Пожалуйста, помогите.

1

Решение

Это потому что $_POST["id"] это не число, это строка. Так $eID никогда не устанавливается.

Попробуй это;

$eID=intval($_POST["id"]);

вместо ;

if(!is_numeric($_POST['id'])) {
$eID=mysql_escape_string($_POST['id']);
}
0

Другие решения

вы проверяете с !is_numeric() который установит $eID только если id не является числовым Попробуйте с —

if(is_numeric($_POST['id'])) {
$eID=mysql_escape_string($_POST['id']);
$addtocart="INSERT INTO cart_items SET id='".$eID."'";
mysql_query($addtocart);
} else {
// show some error if you want
}
0

По вопросам рекламы [email protected]