[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите решить проблему:
Диман
Помогите решить проблему:
В Базе данных есть таблица с 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, код товара, пользователь ?

Можно так

PHP
$result1 = mysql_query("SELECT count(*) FROM zakazitabl WHERE kod=$kod AND logged_user='$logged_user'", $db);
$flag=mysql_fetch_row($result1);
$rez=$flag[0];
if ($rez>0) { //запись есть
    $query="update zakazitabl set kol=kol+$koladd WHERE id=$id AND kod=$kod AND logged_user='$logged_user'";
}
 else {
    $query="insert into zakazitabl values($id,$kod,'$logged_user',$koladd)";
}
$result1 = mysql_query($query);


В твоем скрипте если нет кода товара то ничего и не вернет,
а ты результат жестко проверяешь в in_array - конечно выдаст error
Просьба далее оформлять код в теги php

Спустя 15 минут, 42 секунды (29.07.2009 - 11:03) Диман написал(а):
Извени какой индекс?
id, код товара, пользователь - это название колонок
иначе так id logged_user kod colvo



Спустя 17 минут, 56 секунд (29.07.2009 - 11:21) Диман написал(а):
Michael ты гений. Ты супер. Все заработало. Спасибо. Огромезнейшее спасибо. biggrin.gif

Спустя 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
Тут такая штука что код одинаковый может быть у разных пользователей и в таблице только при регистрации я ставил что бы небыло одинаковых пользователей но это другая таблица.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.