Итак. Есть две php- странички (привожу код ниже). На первой из них печатается список статей (ссылок с описаниями ресурсов - не важно) из базы для того, чтоб можно было выбрать определённую для редактирования. На второй - производится собственно update базы по выбранному на предыдушей страничке id. Вроде бы всё правильно сделано. Но почему то результат функции mysql_query возвращает ложь и соответственно в базу никаких изменений не производится. Помогите разобраться в чём тут дело? Уж голову сломал. Итак: 1-я страничка вывода списка статей: PHP: <? $result = mysql_query ("SELECT id, lnk FROM links"); $myrow = mysql_fetch_array ($result); if (!isset($id)) { do { printf ("<p class = 'main_txt'><a href = 'edit_links.php?id=%s'>%s</a></p>", $myrow['id'], $myrow['lnk'] ); } while ($myrow = mysql_fetch_array ($result)); } else { $result = mysql_query ("SELECT * FROM links WHERE id=$id"); $myrow = mysql_fetch_array ($result); print <<<HERE <form name="form1" method="post" action="update_links.php"> <label> <p><span class="main_txt">Введите ссылку: (без тэгов): </span><br> <input value="$myrow[lnk]" name="lnk" type="text" id="lnk" size="95" maxlength="255"> </p> <p> <label><span class="main_txt">Введите краткое описание ссылки:<br> <textarea name="description" cols="95" id="description">$myrow[description]</textarea> </span> </label> </p> <p> <label><span class="main_txt">Введите рейтинг ресурса (число от 1 до 10):<br> </span> <textarea name="rating" cols="95" id="rating">$myrow[rating]</textarea> </label> </p> <input name="id" type="hidden" value="$myrow[id]"> <p> <input type="submit" name="button" id="button" value="Сохранить изменения"> </p> </form> HERE; } ?> ------------------------------------------- Вторая страничка - обработчк update_links.php PHP: <?php include ("lock.php"); include ("bloks/bd.php"); if (isset($_POST['id'])) {$id = $_POST['id']; if ($id == '') {unset($id);}} if (isset($_POST['lnk'])) {$lnk = $_POST['lnk']; if ($lnk == '') {unset($lnk);} } if (isset($_POST['description'])) {$description = $_POST['description']; if ($description == '') {unset($description);}} if (isset($_POST['rating'])) {$rating = $_POST['rating']; if ($rating == '') {unset($rating);}} ?> . . . . <?php if (isset ($lnk) && isset($description) && isset($rating)) { /*Здесь заноисм инфо в базу*/ echo $id, $lnk, $description, $rating; /* это вставил для отладки. Чтоб видеть что попадает в переменные. */ $result = mysql_query ("UPDATE 1inks SET lnk = '$lnk', description = '$description', rating = '$rating' WHERE id='$id'"); if ($result == 'true') {echo "<p class = 'abzac'> Ссылка успешно обновлена! </p>";} else { echo "<p class = 'abzac'> Ошибка базы данных. Ссылка не обновлена! </p>";} } else { echo "<p class = 'abzac'> Вы ввели не всю информайию о ссылке. Ссылка не может быть добавлена в базу!</p>"; } ?>
прикол в том, что $result почему то всё время получается = 'false' Хотя проверяю все переменные печатая в echo всё правильно. Все как и должны быть. Не работает только функция апдейта базы. В чём может быть прикол?
По идее должён быть. А как бы проверить? В incleude подключается файл с коннектом. Но проверить бы реально не мешало. А как?
$db = mysql_connect ("localhost","oleg67","cfkj98"); if ($db == 'false') {} Что=то типа такого? ПРоверку устроить? Но по идее всё в порядке. Так как в других таблицах похожий кусок кода работает нормально.
PHP: <? $db = mysql_connect("localhost","oleg67","cfkj98") or die("Ни шмагла я: " . mysql_error()); После коннекта база выбирается?
По=моему что-то надыбал.. Вот.. В обеих файлах стоит коннект к базе в самом начале файлов. include ("bloks/bd.php") Не может быть так, что он в первом файле читает список полей из базы, выводит всю инфу из них в форму. Потом я её редактирую в этом же файле, а когда жму кнопку ОБНОВИТЬ на этой форме, то ... Попадая в обработчик (который тоже начинается коннектом к базе) все переменные теряются. ТО есть происходит переподсоединение? Может так?