В Базе данных есть таблица с 4 элементами.
id, код товара, пользователь, Количество.
Я хочу узнать если уже есть код товара у пользователя то тогда я изменю количество, а если нет то я просто добавлю.
Все мои идеи разбиваются на проверке товара.
// Можно ли после WHERE ставить AND ?
if (isset($kod) && isset($colvo) && isset($logged_user)) {
$result1 = mysql_query("SELECT * FROM zakazitabl WHERE kod=$kod AND logged_user='$logged_user'", $db);
$myrow1 = mysql_fetch_array($result1);
$kodprov = $myrow1['kod'];
$existsd = in_array($kod, $kodprov);
if ($existsd==TRUE){$d="1";}
if ($d=="1"){$summa_usser=$colvo+$myrow1['colvo'];
$result_complit = mysql_query ("UPDATE zakazitabl SET colvo='$summa_usser' WHERE kod=$kod AND logged_user=$logged_user");}
else
{ $result = mysql_query ("INSERT INTO zakazitabl (kod,colvo,logged_user) VALUES ('$kod','$colvo','$logged_user') ");
}
}
Пишет то ошибка здесь $existsd = in_array($kod, $kodprov);
Может вообще я не туда ушел?
Как узнать есть ли в Бд строчка с двумя задаными парамитрами?
Спустя 30 минут, 29 секунд (29.07.2009 - 10:47) Michael написал(а):
А индекс на таблице какой?
id, код товара, пользователь ?
Можно так
id, код товара, пользователь ?
Можно так
PHP |
$result1 = mysql_query("SELECT count(*) FROM zakazitabl WHERE kod=$kod AND logged_user='$logged_user'", $db); |
В твоем скрипте если нет кода товара то ничего и не вернет,
а ты результат жестко проверяешь в in_array - конечно выдаст error
Просьба далее оформлять код в теги php
Спустя 15 минут, 42 секунды (29.07.2009 - 11:03) Диман написал(а):
Извени какой индекс?
id, код товара, пользователь - это название колонок
иначе так id logged_user kod colvo
id, код товара, пользователь - это название колонок
иначе так id logged_user kod colvo
Спустя 17 минут, 56 секунд (29.07.2009 - 11:21) Диман написал(а):
Michael ты гений. Ты супер. Все заработало. Спасибо. Огромезнейшее спасибо.
Спустя 7 минут, 2 секунды (29.07.2009 - 11:28) Michael написал(а):
Цитата (Диман @ 29.07.2009 - 08:03) |
Извени какой индекс? id, код товара, пользователь - это название колонок иначе так id logged_user kod colvo |
Просто таблицы создаются обычно с ключом например PRIMARY KEY чтоб была
однозначность в данных.
Чтоб например нельзя было создать две записи с одинаковыми
id kod logged_user,
потому что тогда вопрос: в какую из них кол-во записать, к тому же
update будет менять все строки.
Можешь уже в готовую таблицу добавить индекс:
SQL |
ALTER TABLE zakazitabl ADD PRIMARY KEY(id ,kod,logged_user); |
Спустя 5 минут, 51 секунда (29.07.2009 - 11:34) Диман написал(а):
Michael
Тут такая штука что код одинаковый может быть у разных пользователей и в таблице только при регистрации я ставил что бы небыло одинаковых пользователей но это другая таблица.
Тут такая штука что код одинаковый может быть у разных пользователей и в таблице только при регистрации я ставил что бы небыло одинаковых пользователей но это другая таблица.