Я прохожу эту вещь, чтобы сортировать работу, но моя функция AddItem не работает. Я нажимаю ссылку «добавить элемент» на странице продуктов, и она выводит меня на страницу корзины. Но на странице корзины ничего нет. Я надеюсь, что кто-то сможет это увидеть и сказать мне, что делать, чтобы исправить это.Функция AddItem, похоже, не работает
AddItem функция:
function AddItem($itemId, $qty) {
// Will check whether or not this item
// already exists in the cart table.
// If it does, the UpdateItem function
// will be called instead
// Check if this item already exists in the users cart table
$result = mysql_query("select count(*) from cs368_cart where cookieID = '" . GetCartID() . "' and itemId = $itemId");
$row = mysql_fetch_row($result);
$numRows = $row[0];
if($numRows == 0) {
// This item doesn't exist in the users cart,
// we will add it with an insert query
mysql_query("insert into cs368_cart(cookieID, itemId, qty) values('" . GetCartID() . "', $itemId, $qty)");
}
else {
// This item already exists in the users cart,
// we will update it instead
UpdateItem($itemId, $qty);
}
}
Я только что проверил мои cs368_cart таблицы базы данных и она пуста.
mysql> select * from cs368_cart
-> ;
Empty set (0.00 sec)
По-видимому, ничего не добавляется. Мне интересно, правильно ли мой запрос?
Мои столы:
mysql> select * from cs368_products
-> ;
+--------+----------------+---------------------------------------------+-----------+
| itemId | itemName | itemDesc | itemPrice |
+--------+----------------+---------------------------------------------+-----------+
| 1 | French Vanilla | A medium blend with a hint vanilla | 9.79 |
| 2 | Hazelnut Cream | A light blend with a spicy note of Hazelnut | 9.69 |
| 3 | Columbian | A medium-dark blend straight up | 9.89 |
+--------+----------------+---------------------------------------------+-----------+
3 rows in set (0.00 sec)
и моей корзины столы;
mysql> show columns from cs368_cart;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| cartId | int(11) | NO | PRI | NULL | auto_increment |
| cookieId | varchar(50) | NO | | | |
| itemId | int(11) | YES | | NULL | |
| qty | int(11) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)
Это мой GetCartId я в отдельном PHP файл, который bieng называется правильно файлом PHP с помощью этой функции AddItem.
function GetCartId(){
if(isset($_COOKIE["cartId"])){
return $_COOKIE["cartId"];
}
else {
session_start();
setcookie("cartId", session_id(), time()+((3600*24)*30));
return session_id();
}
Пожалуйста, прекратите писать новый код с помощью древних 'mysql_ *' функций. Они больше не поддерживаются, и сообщество начало процесс [устаревания] (http://news.php.net/php.internals/53799). Вместо этого вы должны узнать о подготовленных операторах и использовать либо [PDO] (http://php.net/pdo), либо [MySQLi] (http://php.net/mysqli). Если вы хотите узнать, [здесь довольно хороший учебник по PDO] (http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers). –
Что такое SQL, идущий в результат $ на вашей странице печати, вы предоставили нам цикл while, но не то, что на самом деле передается. – grahamrb
@Truth Look, я был в PHP/MySQL примерно 2 недели с whopping 4 класса на нем в более старой книге, которая не упоминает PDO. Я обязательно посмотрю на это. Благодарю. Я также ценю драйв с небольшой помощью, кроме комментариев. –