Всем привет! Творится ерунда какая-то вот код: Код (Text): if (!empty($hero[0]) && !empty($tel)){ //echo "Поля заполнены!"; $sql2 = mysql_query("SELECT id, tel FROM jek_info WHERE tel = '$tel'"); $res2 = mysql_fetch_assoc($sql2); $bu = $res2['tel']; $bu_id = $res2['id']; if (empty($bu)){ //КОГДА СРАБАТЫВАЕТ ТО ВСЕ РАБОТАЕТ!!! $sql3 = mysql_query("INSERT INTO jek_info (name, tel, cont_user, comment) VALUES ('$jek_name', '$tel', '$cont_user', '$comment')"); $sql4 = mysql_query("SELECT id FROM jek_info WHERE tel = '$tel'"); $res4 = mysql_fetch_assoc($sql4); if (!empty($res4)){ for ($i=0; $i<count($hero);$i++){ $sql5=mysql_query("INSERT INTO jek_address (jek_id) VALUES ('{$res4['id']}') WHERE name = '{$hero[$i]}'"); } if ($sql5 == TRUE){echo "Новый контакт добавлен";} } } else {echo $bu."-ID:".$bu_id; // ЭТИ 2-ВЕ ПЕРЕМЕННЫЕ ВЫВОДЯТСЯ $sql6 = mysql_query("UPDATE jek_info SET name='$jek_name', tel='$tel', cont_user='$cont_user', comment='$comment' WHERE id='$bu_id'"); if ($sql6 == TRUE){echo "Новый контакт ЖЭКа обновлен";} // ТОЖЕ РАБОТАЕТ for ($i=0; $i<count($hero);$i++){ $sql7=mysql_query("INSERT INTO jek_address (jek_id) VALUES ('$bu_id') WHERE name = '{$hero[$i]}") or die (mysql_error()); // ТУТ ОШИБКА } if ($sql7 == TRUE){echo "Новый контакт ЖЭКА обновлен и для адресов";} } } все работает кроме вот это го момента Код (Text): $sql7=mysql_query("INSERT INTO jek_address (jek_id) VALUES ('$bu_id') WHERE name = '{$hero[$i]}") or die (mysql_error()); // ТУТ ОШИБКА Но прикол в том что эта часть написана эдентично и она работает: Код (Text): $sql5=mysql_query("INSERT INTO jek_address (jek_id) VALUES ('{$res4['id']}') WHERE name = '{$hero[$i]}'"); Ошибку выдает такую: Код (Text): Новый контакт ЖЭКа обновлен 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 = 'ММ-3b-2-P-s1' at line 1 А если я этот запрос проверяю в phpmyadmin через SQL-запрос там чуть по другому ошибка выглядит, вот запрос и ошибка: Код (Text): Ошибка SQL-запрос: INSERT INTO jek_address( jek_id ) VALUES ( '11' ) WHERE name = ММ - 3b -2 - P - s1 Ответ MySQL: #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 'WHERE name = ММ-3b-2-P-s1' at line 1
Devzirom WHERE= тут нужен!!! так как обновляется список и нужно идентифицировать поле списка какое обновляем! Invision С ним тоже не работает только ошибка выглядит вот так: Код (Text): $sql7=mysql_query("INSERT INTO jek_address (jek_id) VALUES ('$bu_id') WHERE name = '{$hero[$i]}' ") or die (mysql_error()) MySQL server version for the right syntax to use near 'WHERE name = 'ММ-3b-2-P-s1'' at line 1 //Обрати в нимание на адрес
Как интересно. По моему для обновления используется UPDATE. А INSERT используется для вставки. Или я, что-то путаю?
Devzirom Спасибо тыкнул носом на ошибку- не INSERT a UPDATE теперь все работает. Invision Про лишнее не понял. А берется из формы Код (Text): <?php print "<center><form action='' method='post' align='center' style='background: #d1f59b; width: 95%; border-bottom:2px dotted #4169e1;'> <table align='center' border='0'><tr><td> <p><select size='20' multiple name='hero[]' style='width:150;'> <option disabled>Выберите узел</option>"; while ($res = mysql_fetch_assoc($sql)) { $name = $res['name']; $id = $res['id']; print "<option value='$name' name='$id' >$name</option>"; } print "</select></p>"; ?>