Не работает insert в цикле?

Vlad_c

Guest
Не работает insert в цикле?

Делаю цикл
while($row11=@mysql_fetch_array($res11)) {

echo $row11['people_id'].'<br>';
echo $row11['photo_id'].'<br>';

mysql_query("insert into order2 values(LAST_INSERT_ID(),$row11[people_id],$row11[photo_id],'$cur_date','$payment')");
}

вставляет в таблицу только последнюю запись а должен все пока не закончится массив mysql_fetch_array($res11), причем при выводе все ок выводит все 10 записей массива?
 

Demiurg

Guest
у тебя после первой вставки меняется LAST_INSERT_ID. Так и должно быть ?
 

Сергей123

Новичок
Перед while есть INSERTы?
Ты хотел, чтобы в INSERTе в order2 первое указанное поле имело одно и то же значение?
 

Wingely Dog

Guest
может mysql_query( $query_string, $db ) ?

-~{}~ 25.11.04 10:51:

и вообще, десять записей не тыща, может их все выдернуть, а потом спокойно вставлять?
 

Vlad_c

Guest
Wingely Dog - нет нужно именно в цикле, трудно сказать сколько потом будет записей

Бресь Сергей - нет insertoв нет

Demiurg - да id должен сам меняться
 

Сергей123

Новичок
Vlad_c,
записи в order2 точно должны так странно связываться?
Об атрибуте auto_increment полей MySQL-таблицы ты знаешь?
 

Demiurg

Guest
Vlad_c
объясни поподробнее, что ты пытаешься сделать.
 

jonjonson

Guest
В данной ситуации у тебя одно соединение с базой данных. По этой причине наступает конфликт.
1. Используй два цикла:
1) вытащи все данные в цикле в массив;
2) загрузи данные в цикле из массива в БД.
2. Или создавай два конекта.
PHP:
$link = mysql_connect ($server,  $username, $password, true);
$link2 = mysql_connect ($server,  $username, $password, true);
и юзай дальше $link и $link2 для параллельных запросов в одном цикле.
 

Vlad_c

Guest
jonjonson - я делаю сначала $row11=@mysql_fetch_array($res11);
потом в цикле
for($i=0; $i<mysql_num_rows($res11); $i++)
{
mysql_query("insert into order2 values(LAST_INSERT_ID(),$row11[people_id],$row11[photo_id],'$cur_date','$payment')");
}

все равно не работает
 

SelenIT

IT-лунатик :)
Vlad_c, у тебя первый столбец случайно не сам автоинкрементный id?
 

SelenIT

IT-лунатик :)
Так что получается - один раз вставил, LAST_INSERT_ID() вернул id только что сгенерированной записи, а на следующем проходе пытаешься что-то записать с этим же id? Или я жутко торможу?
 

Vlad_c

Guest
нет при следующей записи поидеи он должен генерироваться на 1 больше чем предыдущий
 

SelenIT

IT-лунатик :)
так он и генерируется, но ты его насильно пытаешься перебить прошлым id-ом

может, надо просто
... insert .... values('', $row11[people_id], ... ?
 
Сверху