Код (Text): $result5 = mysql_query("SELECT date_d, date_m, date_y, time, date FROM messages",$db); while ($myrow5 = mysql_fetch_array ($result5)){ $mysqldate = "$myrow5[date_y]-$myrow5[date_m]-$myrow5[date_d] $myrow5[time]"; $time = strtotime($mysqldate); $result = mysql_query ("UPDATE messages SET date='$time'"); } в таблице дата храниться следующим образом date_y(год), date_m(мес), date_d(день) и time(время 12:20) в новой ячейке (date) хочу преобразовать обычную дату в UNIX время.... код для преобразования нашел $mysqldate = "2012-12-28 12:20"; $time = strtotime($mysqldate); проблемма с кодом для UPDATE. ничего не могу понять, вроде простенькая задача и код правильный, а не получается. после запуска кода он обновляет все строки подставляя одно и то же значние в каждую строку!?
Ну так WHERE в UPDATE-запросе не указан - вот он и обновляет все записи каждым запросом. Но вообще тут можно обойтись без цикла и одним SQL-запросом: Код (Text): UPDATE `messages` SET `date` = UNIX_TIMESTAMP(CONCAT(`date_y`, '-', `date_m`, '-', `date_d`, ' ', `time`));
прикольно)))) работает, спасибо) sobachnik, все равно не могу сообразить, что нужно указывать в WHERE в UPDATE-запросе? Я думал если не указываешь WHERE, он берет первую строку, обновлят, потом вторую и т.д. Подскажи пожалуйста, что нужно указывать что бы одновлять поочердно каждую строку? вот допустим примрно такая же задача нужно обновить все строки и установить значения id с 1 и по порядку до конца... $result5 = mysql_query("SELECT id FROM foto_user",$db); $i=1; while ($myrow5 = mysql_fetch_array ($result5)){ $result = mysql_query ("UPDATE foto_user SET id='$i'"); $i++; } тут такая же проблемма(
Если не указать условие в WHERE - то обновляются все строки. Если есть условие - то только те строки, которые подходят под указанное условие. Можешь так написать, например: Код (PHP): $result5 = mysql_query("SELECT `id` FROM `foto_user`", $db); $i = 1; while($myrow5 = mysql_fetch_assoc($result5)) { mysql_query("UPDATE `foto_user` SET `id` = '$i' WHERE `id` = {$myrow5['id']}"); $i++; } PHP и MySQL - это две разные программы. MySQL ничего не знает, о том, что там за PHP-скрипт у тебя и понятия не имеет, что там за циклы в скрипте. Он просто получает от PHP запросы и выполняет их. Вообще-то, это не нужно Так не делают. И пробелы в последовательности id - никому не мешают.
Супер спасибо) В моем случае делают))) Я просто хочу соеденить данные двух таблиц из разных баз, а id совпадают
у меня к этому id есть атрибуты auto_increment и primary key. разве значения в таком случае могут быть одинаковыми?
Не могут. Только причём тут это вообще? У первой таблицы свои id, у второй - свои. И пусть они одинаковые - как это мешает? Не понятно, что ты пытаешься сделать, что имеешь в виду под "соеденить данные двух таблиц из разных баз".
sobachnik, все что я пытался сделать, я сделал))) с твоей помошью, спасибо))) А вообще соеденить две одинаковые таблицы с разными данными из разных баз в одну))))))))))
Ну и всё равно не вижу никакого смысла в том, чтобы пересчитывать id с 1 и по порядку. Можно было бы просто дописать записи из одной таблицы в другую, а id для добавляемых записей задать новые, не копируя их из старой таблицы.