Вопрос по циклам

547
.
кто подскажет как лучше это записать

есть ключ $key=в результате обработки получаю массив ключей array($key1=>проверка на наличие аналогичного ключа в бд далее запись в таблицу если совпадения не найдено а если найдено то надо перейти к следующему ключу,$key2=>тоже самое проверка итд)

как мне правильно обозначить переменную $err чтобы она мне цикл не обрывала а просто переходило к новому циклу$key=>$value

циклы плохо пока знаю
.
(\/)____o_O____(\/)
Garjs, оборвать цикл можно через break
.
(\/)____o_O____(\/)
Garjs, можно прям одним запросом проверять наличие нескольких ключей в базе, нужно использовать условия,
.
(\/)____o_O____(\/)
select field from table where field in(1,2,3)
или так
select field from table where field = 1 or field = 2 or field = 3
так же можно комбинировать и или не и прочие логики
.
Блиносвёрт ?
переименовала тему, сам вопрос не очень поняла
.
сами запросы и проверку на наличие одинаковых ключей это я все знаю вопрос в другом пример
//массив ключей $key=array($key1,$key2 ,итд)

//проверка на наличие одинакового ключа в базе
if (mysql_result(mysql_query("SELECT COUNT(url) FROM `videо` WHERE `url` = '$key1' AND `id_user` = '$user[id]'"),0) != 0)$err[] = '';//нужно установить значение $err чтобы оно не обрывало цикл а переходило к $KEY2 аналогично проверка следущего ключа итд

если совпадение не найдено то результат записи нового ключа

if (!isset($err)) mysql_query("INSERT INTO `video` (`url`,`time`,`id_category`,`id_user`) values('$key1[0]', '$time', '$ID', '$user[id]')"); $video = mysql_insert_id();
//переход к новому ключу
и соответственно с ним те же манипуляции проверка если $еrr то к следующему ключу если не $err то запись этого ключа и тд

так понятней немножко?
.
Блиносвёрт ?
Garjs, блин, синтаксис php плохо знаю, ну типа так:
foreach ($key as $val) {
if (!mysql_result(mysql_query("SELECT COUNT(url) FROM `videо` WHERE `url` = '$val' AND `id_user` = '$user[id]'"),0)) {

mysql_query("INSERT INTO `video` (`url`,`time`,`id_category`,`id_user`) values('$val', '$time', '$ID', '$user[id]')");
}
}
то есть никаких массивов $err я бы не стала использовать.. или тебе этот массив для чего-то еще нужен?
.
(\/)____o_O____(\/)
Jane, массив ошибок же
.
Блиносвёрт ?
# Koenig (15.12.2014 / 17:13)
Jane, массив ошибок же
что туда писать? те ключи, что уже есть? для чего, этот массив совпадающих ключей где-то дальше используется?
это вопрос к автору темы
.
Если вы указываете ON DUPLICATE KEY UPDATE (новшество в MySQL 4.1.0), и производится вставка строки, которая вызывает ошибку дублирующегося первичного (PRIMARY) или уникального (UNIQUE) ключа, то вполняется UPDATE старой строки. Например:

INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE c=c+1;

Если a определяется как UNIQUE и уже содержит 1, то тогда вышеуказанная команда будет аналогична следующей:

UPDATE table SET c=c+1 WHERE a=1;

не?
Всего: 30