1. Не могу выделить максимальный id echo $im['id']; выводит Array 2. Не работает INSERT, хотя сам поиск работает, но новую строку в таблицу не хочет вставлять ни в какую. $dar оказывается пустым. Подскажите с чем это может быть связано PHP: <?php //$imax = mysql_query("SELECT * FROM rooms",$db); $imax = "SELECT MAX(id) FROM `rooms`"; $imi=mysql_query($imax); $im = mysql_fetch_array($imi); $j=50; for($i=1;$i<=$im['id'];$i++){ echo "i=".$i."<br>"; $res=mysql_query("select * from `rooms` where id='$i'"); $row=mysql_fetch_array($res); echo $row["ZRAIONID"]; $sql="SELECT id FROM `rooms1` WHERE ZRAIONID='$row[ZRAIONID]' AND ZVSTREET='$row[ZVSTREET]' AND ZVPRICE='$row[ZVPRICE]'"; $sql_1 = mysql_query($sql); $sql_2 = mysql_fetch_array($sql_1); if($sql_2[id]!="") { echo $sql_2["id"]."<br>"; } else{ $dar=mysql_query("INSERT INTO 'rooms1' ('id', 'ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', 'ZAAREA', 'ZRAREA', 'ZKAREA', 'ZVSTREET', 'ZRAIONID', 'ZWCID', 'ZVBAL', 'ZPHONEID', 'O.ZMISC', 'ZVAGPH', 'ZVAGENT', 'img1', 'img2', 'img3') VALUES ('$j', '$row[ZVPRICE]', '$row[ZEQPRICE]', '$row[ZVTH]', '$row[ZSTAGE]', '$row[ZHSTAGE]', '$row[ZMATERID]', '$row[ZAAREA]','$row[ZRAREA]', '$row[ZKAREA]', '$row[ZVSTREET]', '$row[ZRAIONID]', '$row[ZWCID]', '$row['ZVBAL']', '$row[ZPHONEID]', '$row['O.ZMISC']', '$row[ZVAGPH]', '$row[ZVAGENT]', 0, 0, 0)"); print_r ($dar); echo ("no")."<br>"; $j=$j+1; } //$r=mysql_fetch_array(mysql_query($sql)); } ?>
Я не буду работать с вашим кодом, но дам наводку. Итак, max(`id`) PHP: <?php $id = mysql_fetch_object(mysql_query("SELECT MAX(id) FROM `rooms`"))->id; ?> с insert даже смотреть не буду - каша кашей. Смотрите ошибку, которую любезно даёт СУБД.
PHP: $id = mysql_fetch_object(mysql_query("SELECT MAX(id) FROM `rooms`"))->id; print_r($id); так же пусто
[sql]SELECT MAX(id) FROM `rooms` [/sql] В MySQL работает верно PHP: $id = mysql_fetch_object(mysql_query("SELECT MAX(id) FROM `rooms`"))->id; print_r($id); echo mysql_error($id) . "\n"; Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in Z:\home...input3.php on line 21
Значит смотреть, что возвращает mysql_query. Я так вижу, что он возвращает false, значит - таблица пуста или её нет?
Таблица есть и она не пуста В MySQL SELECT MAX(id) FROM `rooms` возвращает 25 PHP: $id = mysql_query("SELECT MAX(id) FROM `rooms`"); print_r($id); echo mysql_error($id) . "\n"; Resource id #3 Warning: mysql_error(): supplied resource is not a valid MySQL-Link resource in Z:\home...input3.php on line 22 PHP: $id = mysql_fetch_object(mysql_query("SELECT MAX(id) FROM `rooms`")); print_r($id); echo mysql_error($id) . "\n"; stdClass Object ( [MAX(id)] => 25 ) Warning: mysql_error(): supplied argument is not a valid MySQL-Link resource in Z:\home...input3.php on line 22
блин, я чет сонный. Короче не надо передавать функции mysql_error переменную $id. Она принимает идентификатор, не ресурс, который возвращает mysql_query. Вызови mysql_error БЕЗ аргументов.
PHP: $id = mysql_query("SELECT MAX(id) FROM `rooms`"); print_r($id); echo mysql_error(); Вообще пусто, не ошибок ничего Resource id #3 Только это
Значит ошибок нет. Итак, поехали. PHP: <?php $query = mysql_query("SELECT MAX(id) FROM `rooms`"); $found = mysql_num_rows($id); echo $found; ?> Дальше смотрим кол-во строк. Должна быть одна и только одна. Я - сонный и не заметил кое-какого нюанса. смотрите сюда: PHP: <?php $query = mysql_query("SELECT MAX(id) as `id` FROM `rooms`"); // И только теперь $id = mysql_fetch_object($query)->id; echo $id; ?>
Ладно, помогу =) Видите у вас mysql_query с командой insert? Замените mysql_query на echo и посмотрите, что получается на выходе, т.е готовый запрос. Так будет легче найти реальную ошибку в уже готовом запросе.
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 ''rooms1' ('id', 'ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', ' at line 1no
Julia Если вы всё равно перечисляете все поля, то можно полностью переписать запрос insert. Т.е шаблон такой: [sql]INSERT INTO `table_name` VALUES ( ... данные в очередности столбцов .. )[/sql] Мне влом копаться в коде выше, поэтому говорю по ходу.
PHP: $dar=("INSERT INTO 'rooms1' ('id', 'ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', 'ZAAREA', 'ZRAREA', 'ZKAREA', 'ZVSTREET', 'ZRAIONID', 'ZWCID', 'ZVBAL', 'ZPHONEID', 'O.ZMISC', 'ZVAGPH', 'ZVAGENT', 'img1', 'img2', 'img3') VALUES ('$j', {$row['ZVPRICE']}, {$row['ZEQPRICE']}, {$row['ZVTH']}, {$row['ZSTAGE']}, {$row['ZHSTAGE']}, {$row['ZMATERID']}, {$row['ZAAREA']},{$row['ZRAREA']}, {$row['ZKAREA']}, {$row['ZVSTREET']}, {$row['ZRAIONID']}, {$row['ZWCID']}, {$row['ZVBAL']}, {$row['ZPHONEID']}, {$row['O.ZMISC']}, {$row['ZVAGPH']}, {$row['ZVAGENT']}, 0, 0, 0)") ; echo $dar; echo mysql_error(); INSERT INTO 'rooms1' ('id', 'ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', 'ZAAREA', 'ZRAREA', 'ZKAREA', 'ZVSTREET', 'ZRAIONID', 'ZWCID', 'ZVBAL', 'ZPHONEID', 'O.ZMISC', 'ZVAGPH', 'ZVAGENT', 'img1', 'img2', 'img3') VALUES ('50', 1100 тыс.руб., 1100, Купеч, 2, 2, Кирпичный, 120,23, 0, Алексеевская ул., 1-Нижегородский р-н., cовмещенный, -, -, комната в отличном состоянии, свой санузел, чист.пр., сот. 8-902-306-72-64, Бочкарева Нина Владиленовна, 0, 0, 0) Вроде все так, ошибки нет
Ну лично я не вижу, что этот запрос верный. Во-первых, значения полей не в кавычак, во-вторых, непонятные дефисы в качестве значений.
Кстааати, только что заметил глобальнейшую ошибку. Я кажется понял, зачем выбирать MAX(`id`). Поле `id` должно быть первычным ключом с авто инкрементированием. Никаких MAX(`id`). Очередной workaround из-за банального незнания.
Т.е. MAX('id') нельзя использовать как условие конца цикла? Возможно у Вас ошибка в SQL-парсере. Пожалуйста, проверьте внимательно Ваш запрос и соответствие кавычек. Возможно также, что Вы пытаетесь закачать бинарный файл вне поля quoted text area. #1064 - 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 ''rooms1' ('id', 'ZVPRICE', 'ZEQPRICE', 'ZVTH', 'ZSTAGE', 'ZHSTAGE', 'ZMATERID', ' at line 1