2014-01-22 4 views
0

Я пытаюсь сделать cronjob, который удаляет все из таблицы, а затем заполняет его случайными значениями из другой таблицы, моя проблема в том, что это только вставка 1 строки, когда я хочу, чтобы она вставляла 24 разных которые он захватывает из другого стола. любая помощь будет очень оценена. btw Я знаю, что mysql устарел.Несколько вставок с запросом

$result = mysql_query("SELECT * FROM market ORDER BY RAND() LIMIT 24"); 
while($row = mysql_fetch_array($result)) { 

mysql_query("TRUNCATE TABLE market2"); 

mysql_query("INSERT INTO `market2` (`id`, `pokemon`, `price`, `type`) VALUES ('".$row['id']."', '".$row['pokemon']."', '".$row['type']."', '".$row['price']."') "); 
} 

Является ли фиксированная версия для тех, у кого есть этот вопрос.

$result = mysql_query("SELECT * FROM market ORDER BY RAND() LIMIT 24"); 

mysql_query("TRUNCATE TABLE market2"); 
while($row = mysql_fetch_array($result)) { 

mysql_query("INSERT INTO `market2` (`id`, `pokemon`, `price`, `type`) VALUES ('".$row['id']."', '".$row['pokemon']."', '".$row['type']."', '".$row['price']."') "); 
} 
+0

Вам необходимо пройти через строку $ row и вставить каждый раз. Было бы намного лучше с подготовленным утверждением, хотя - один запрос, отправленный в MySQL, и вместо этого перебирает только переменные. – ElendilTheTall

+2

поставить инструкцию усечения до вашего времени –

+0

Спасибо, mamdouh;) – Sakai

ответ

2

Независимо от того, согласен ли я с вашей методологией, ваша проблема заключается в том, что вы обрезаете каждый цикл. Чтобы исправить, пожалуйста, используйте следующее:

$result = mysql_query("SELECT * FROM market ORDER BY RAND() LIMIT 24"); 
mysql_query("TRUNCATE TABLE market2"); 
while($row = mysql_fetch_array($result)) { 
mysql_query("INSERT INTO `market2` (`id`, `pokemon`, `price`, `type`) VALUES ('".$row['id']."', '".$row['pokemon']."', '".$row['type']."', '".$row['price']."') "); 
} 
Смежные вопросы