Вот так и делаю, странный прикол может вы разберётесь скрипт не хочет обновлять записи в бд, уже 5 час мучаюсь, но непойму в чём проблема Код (Text): <?php require_once('Connections/test.php'); ?> <body> <? // Подключаемся к базе данных mysql_select_db($database_test, $test); // Если мы уже нажимали кнопку изменения записи if(@$submit_update) { // Обновляем выбранную запись $sql="update user set login=$login where pass=$pass "; mysql_query($sql); }; // Заносим в переменную <I>$result</I> всю базу оставленных сообщений $sql="select * from user"; $result=mysql_query($sql); // Узнаем кол-во записей в гостевой книге $rows=mysql_num_rows($result); echo "<table border=0 align=center>"; echo "<tr><td align=center><B>Имя</B></td>"; echo "<td align=center><B>Е-майл</B></td>"; echo "<td align=center><B>Изменить</B></td></tr>"; for($i=0;$i<$rows;$i++) { // Устанавливаем курсор на соответствующую позицию mysql_data_seek($result,$i); // Записываем в ассоциативный массив <I>$arr_guest</I> // значения полей таблицы гостевой книги $arr_guest=mysql_fetch_array($result); echo "<form method=get action='$PHP_SELF'>"; echo "<tr>"; echo "<td><input type=text name='login' value=''></td>"; echo "<td><input type=text name='pass' value=''></td>"; echo "<td><input type=submit name='submit_update' value='Изменить'></td>"; echo "</tr>"; echo "</form>"; }; echo "</table>"; echo "</form>"; ?> буду весьма признателен...
Не узнавай количество записей таким образом Код (Text): $sql="select * from user"; $result=mysql_query($sql); // Узнаем кол-во записей в гостевой книге $rows=mysql_num_rows($result); Для этого используй запрос Код (Text): $sql="select COUNT(*) from user"; В этом примере не так критично, так как потом из этого запроса выбираются данные. Как лучше выбирать данные можно посмотреть здесь http://php.ru/manual/function.mysql-fetch-array.html Ну и причины, почему не обновляются данные 1. register_globals = off 2. Не правильный запрос. В запросе надо закавычивать строковые данные Код (Text): $sql="update user set login='$login' where pass='$pass'"; P.S. Еще я заметил, что если курсор стоит на некотором поле и нажать кнопку ввод, то не передается значение кнопки (name='submit_update'). А если нажать на кнопку мышкой или перевести фокус и потом нажать на ней, то тогда передается. Поэтому не стоит ориентироваться на значение которое передает кнопка, а лучши завести скрытое поле.
сделал немного по другому вроде всё работает нормально. но возникла другая проблема, при вводе данных из формы каждый раз создаётся новая запись, то есть немогу осуществить проверку логина и если она есть выдать сообщение типа "Пользователь $login уже сушествует". примерный код Код (Text): $nick = $_POST['login']; $query = "SELECT * FROM users WHERE (nick='$nick')"; $resource = mysql_query($query); if($resoerce) { дальнейши код для выполнения } else { echo('"Пользователь $login уже сушествует". ');
правильнее делать Код (Text): $query = "SELECT count(*) as cnt FROM users WHERE (nick='$nick')"; $obj = mysql_fetch_object(mysql_query($query)); if($obj->cnt == 1) // есть else // нет