За последние 24 часа нас посетили 20244 программиста и 1694 робота. Сейчас ищут 1793 программиста ...

Не получается вывести значение на страничку из MySql

Тема в разделе "PHP для новичков", создана пользователем BoB, 3 мар 2011.

  1. BoB

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

    С нами с:
    22 мар 2009
    Сообщения:
    19
    Симпатии:
    0
    Добрый ночи.
    Недавно решил начать осваивать PHP, ну и соответственно работу с MySql.

    Бональная задача:

    Человек переходит на форму регистрации, вводит поля, нажимает зарегистрироваться.
    Данные заносятся в БД MySql, и выводится следующее сообщение
    PHP:
    1. echo "Спасибо, ".$_POST["lastname"]." ".$_POST["name"]." ваш Id $id";
    Все замечательно заносится в БД, но я не могу добиться вызвать значение id из MySql.
    У меня получалось даже посчитать количество зарегистрировавшихся мужчин и женщин, путем пересчета столбцов с различными значениями, но вывод одного значения, хоть убей не получается :/

    Нашел функцию mysql_result, но никак не могу с ней разобраться.

    При написании

    PHP:
    1.         $query = "SELECT `id` FROM $userstable WHERE `login`='{$login}'";
    2.         $sql = mysql_query($query) or die(mysql_error());
    3.         $id = mysql_result($sql,1);
    4.         echo "$id";
    Выводится

    HTML:
    1. Warning: mysql_result() [function.mysql-result]: Unable to jump to row 1 on MySQL result index 6 in Z:\home\localhost\www\2\reg.php on line 73

    Хотя если я создаю функцию

    PHP:
    1.     $query = "SELECT $table FROM $userstable WHERE $table ='$choiseM'";
    2.             mysql_select_db($dbName)  or die('Could not select database');
    3.             $res_m = mysql_query($query) or die(mysql_error());
    4.             $numberM = mysql_num_rows($res_m);
    то все считается.

    Подскажите как мне решить проблему с выводом значения из ячейки?
     
  2. runner

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

    С нами с:
    16 апр 2010
    Сообщения:
    343
    Симпатии:
    1
    Адрес:
    Ташкент
    1) Для этого есть функция mysql_insert_id(). Ее нужно вызвать сразу после запроса на вставку новой записи. Она возвращает ID, сгенерированный при последнем INSERT-запросе.
    2) Для получения значения поля примерный код такой:
    PHP:
    1.  
    2. $query = "SELECT `id` FROM $userstable WHERE `login`='{$login}'";
    3. $result= mysql_query($query) or die(mysql_error());
    4. while ($row = mysql_fetch_array($result))
    5. {
    6.      $id=$row[0];
    7. }
    8. echo "$id";
    9.  
     
  3. BoB

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

    С нами с:
    22 мар 2009
    Сообщения:
    19
    Симпатии:
    0
    Спасибо большое!

    То есть чтобы вынуть значение из таблицы, всегда нужно применять цикл??
     
  4. Benjamin

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

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
    Нет.
    Почему ты написал так:
    Код (Text):
    1.  $id = mysql_result($sql,1);
    ?
     
  5. BoB

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

    С нами с:
    22 мар 2009
    Сообщения:
    19
    Симпатии:
    0

    Чтобы перменной id присвоить функцию mysql_result, значения которой будут браться из результата функции sql, и последнее число, как я понял это сдвиг значения по таблице
     
  6. Benjamin

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

    С нами с:
    23 янв 2009
    Сообщения:
    154
    Симпатии:
    0
    Адрес:
    Тула
  7. BoB

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

    С нами с:
    22 мар 2009
    Сообщения:
    19
    Симпатии:
    0
    Да я вроде бы изучал, сейчас еще посмотрел

    Единственное новое что заметил, это что аргументом может быть и имя таблицы через точку.

    А вообще я сделал по примеру

    PHP:
    1. <?php
    2.     $link = mysql_connect("localhost", "mysql_user", "mysql_password")
    3.             or die("Could not connect: " . mysql_error());
    4.  
    5.     $result = mysql_query("SELECT name FROM work.employee")
    6.             or die("Could not query: " . mysql_error());
    7.            
    8.     echo mysql_result($result,2); // outputs third employee's name
    9.    
    10.     mysql_close($link);
    11. ?>