[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: После INSERT -- UPDATE
dima4321
Получаю 2 массива.

Первый вставляет в таблицу значения

Второй дополняет эту таблицу еще одним значением.


Специфика такова, что одновременно вставить все я не могу. Поэтому приходится городить огород.

Т.е. сначала INSERT, а следующий массив UPDATE.


Вот часть кода ----я укоротил, заакцентировав внимние на запросах:
PHP:
 <?

$i=0;
$n=0;

foreach($match[1] as $h33)
{

$sql = "SELECT id FROM `names` WHERE name='$name'";
$data = mysql_query($sql);
$qq=mysql_fetch_assoc($data);
$id=$qq['id'];
$query = "INSERT INTO `tracklist` (`text_tracklist`, `page`, `name_id`) VALUES ('$a', '$i', '$id')";
mysql_query($query) or die(mysql_error());
$i++;
}


foreach($new1 as $key)

{

$sql = "SELECT id FROM `names` WHERE name='$name'";
$data = mysql_query($sql);
$qq=mysql_fetch_assoc($data);
$id=$qq['id'];

$query="UPDATE tracklist SET list ='$new1', WHERE name_id = '$id' , page='$n'";
mysql_query($query) or die(mysql_error());
$n++;

}

?>



В итоге Пишет
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE name_id = '9' , page='0'' at line 1 и ничего не вставляется из второго массива..

При таком запросе

$query="UPDATE tracklist SET list ='$new1', page='$n' WHERE name_id = '$id' ";


Пишет про duplicate key и вставляет только первую запись второго массива.

p/s первый массив вставлется без проблем в обоих случаях.



Спустя 1 час, 56 минут, 58 секунд (24.02.2011 - 15:41) Evilsoul написал(а):
Здесь:
 $query="UPDATE tracklist SET list ='$new1', WHERE name_id = '$id' , page='$n'";

не запятая а AND или OR
 $query="UPDATE tracklist SET list ='$new1', WHERE name_id = '$id' AND page='$n'";

Спустя 3 часа, 38 минут, 50 секунд (24.02.2011 - 19:20) sergeiss написал(а):
Evilsoul - и еще ты не сказал про еще одну запятую, перед WHERE - она там вообще не нужна.

Спустя 10 минут, 59 секунд (24.02.2011 - 19:31) KonstantinK написал(а):
А что переменные
$query = "INSERT INTO `tracklist` (`text_tracklist`, `page`, `name_id`) VALUES ('$a', '$i', '$id')"; 

вот тут и дальше так и вставляются в без обработки или это сокращенный код?

Спустя 2 часа, 54 минуты, 29 секунд (24.02.2011 - 22:25) Evilsoul написал(а):
sergeiss
Ах да, точно smile.gif

KonstantinK
ну это вопрос "третий" там проблему решить нужно smile.gif


_____________
Работаю за еду ! __))
И за плюсики !
Быстрый ответ:

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