За последние 24 часа нас посетили 18232 программиста и 1700 роботов. Сейчас ищут 1494 программиста ...

подтверждение записи и вывод логина

Тема в разделе "PHP и базы данных", создана пользователем aziz, 10 май 2006.

  1. aziz

    aziz Активный пользователь

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    Вот так и делаю, странный прикол может вы разберётесь скрипт не хочет обновлять записи в бд, уже 5 час мучаюсь, но непойму в чём проблема
    Код (Text):
    1. <?php require_once('Connections/test.php'); ?>
    2.  
    3. <body>
    4. <?
    5. // Подключаемся к базе данных
    6. mysql_select_db($database_test, $test);
    7.  
    8. // Если мы уже нажимали кнопку изменения записи
    9. if(@$submit_update) {
    10.   // Обновляем выбранную запись
    11.   $sql="update user set login=$login where  pass=$pass ";
    12.   mysql_query($sql);
    13. };
    14.  
    15. // Заносим в переменную <I>$result</I> всю базу оставленных сообщений
    16. $sql="select * from user";
    17. $result=mysql_query($sql);
    18. // Узнаем кол-во записей в гостевой книге
    19. $rows=mysql_num_rows($result);
    20. echo "<table border=0 align=center>";
    21. echo "<tr><td align=center><B>Имя</B></td>";
    22. echo "<td align=center><B>Е-майл</B></td>";
    23. echo "<td align=center><B>Изменить</B></td></tr>";
    24. for($i=0;$i<$rows;$i++) {
    25.   // Устанавливаем курсор на соответствующую позицию
    26.   mysql_data_seek($result,$i);
    27.   // Записываем в ассоциативный массив <I>$arr_guest</I>
    28.   // значения полей таблицы гостевой книги
    29.   $arr_guest=mysql_fetch_array($result);
    30.   echo "<form method=get action='$PHP_SELF'>";
    31.  
    32.   echo "<tr>";
    33.   echo "<td><input type=text name='login' value=''></td>";
    34.   echo "<td><input type=text name='pass' value=''></td>";
    35.  
    36.   echo "<td><input type=submit name='submit_update' value='Изменить'></td>";
    37.   echo "</tr>";
    38.   echo "</form>";
    39. };
    40. echo "</table>";
    41. echo "</form>";
    42. ?>
    буду весьма признателен...
     
  2. Mavir

    Mavir Guest

    Не узнавай количество записей таким образом
    Код (Text):
    1. $sql="select * from user";
    2. $result=mysql_query($sql);
    3. // Узнаем кол-во записей в гостевой книге
    4. $rows=mysql_num_rows($result);
    Для этого используй запрос
    Код (Text):
    1. $sql="select COUNT(*) from user";
    В этом примере не так критично, так как потом из этого запроса выбираются данные.
    Как лучше выбирать данные можно посмотреть здесь
    http://php.ru/manual/function.mysql-fetch-array.html

    Ну и причины, почему не обновляются данные
    1. register_globals = off
    2. Не правильный запрос. В запросе надо закавычивать строковые данные
    Код (Text):
    1. $sql="update user set login='$login' where  pass='$pass'";
    P.S. Еще я заметил, что если курсор стоит на некотором поле и нажать кнопку ввод, то не передается значение кнопки (name='submit_update'). А если нажать на кнопку мышкой или перевести фокус и потом нажать на ней, то тогда передается. Поэтому не стоит ориентироваться на значение которое передает кнопка, а лучши завести скрытое поле.
     
  3. aziz

    aziz Активный пользователь

    С нами с:
    1 фев 2006
    Сообщения:
    194
    Симпатии:
    0
    Адрес:
    Ташкент
    сделал немного по другому вроде всё работает нормально. но возникла другая проблема, при вводе данных из формы каждый раз создаётся новая запись, то есть немогу осуществить проверку логина и если она есть выдать сообщение типа "Пользователь $login уже сушествует". примерный код
    Код (Text):
    1.  
    2. $nick = $_POST['login'];
    3.  
    4. $query = "SELECT * FROM users WHERE (nick='$nick')";
    5. $resource = mysql_query($query);
    6. if($resoerce)
    7. {
    8. дальнейши код для выполнения
    9. }
    10. else
    11. {
    12. echo('"Пользователь $login уже сушествует". ');
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    правильнее делать
    Код (Text):
    1.  
    2. $query = "SELECT count(*) as cnt FROM users WHERE (nick='$nick')";
    3. $obj = mysql_fetch_object(mysql_query($query));
    4. if($obj->cnt == 1)
    5.      // есть
    6. else
    7.      // нет