1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Вывод данных из MySQL

Тема в разделе "Программирование", создана пользователем Гость, 24.05.08.

  1. Гость

    Гость Гость

    Здравствуйте. Уважаемые програмисты или те кто хоть немного разбирается с php, sql. Помогите пожалуйста вывести данные из таблицы бд.

    Это естественно для конекта к бд.
    =================================================
    mysql_connect("localhost", "root", "") or die (mysql_error());
    mysql_select_db("proba") or die (mysql_error());

    mysql_query("set character_set_client ='cp1251'");
    mysql_query("set character_set_results ='cp1251'");
    mysql_query("set collation_connection ='cp1251_general_ci'");
    ==================================================
    создал таблицу в бд
    ==================================================
    CREATE TABLE `contact` (
    `id` SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(30) NOT NULL DEFAULT '',
    `mail` VARCHAR(20) NOT NULL DEFAULT '',
    `message` TEXT NOT NULL,
    `datestamp` VARCHAR(20) NOT NULL DEFAULT '',
    `ip` VARCHAR(20) NOT NULL DEFAULT '0.0.0.0',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM;
    ==================================================
    так я вношу даныые в бд
    ==================================================
    $query = "INSERT
    INTO `contact`
    SET
    `name`='{$name}',
    `message`='{$mess}',
    `mail`='{$mail}',
    `ip`='{$ip}',
    `datestamp`='{$dt}'";
    $sql = mysql_query($query) or die(mysql_error());
    ==================================================

    А вот собственно вопрос, как вывести внесённые данные из бд?
    ==================================================
    $name = '';
    $query = "SELECT `id`
    FROM `contact`
    WHERE `name`='{$name}'";
    $sql = mysql_query($query) or die(mysql_error());
    $result = mysql_query($query) ;
    echo "$result";
    ==================================================
    вот так он выводит "Resource id #5".

    Как сделать нормальный вывод?
     
  2. хочу_вот_сказать

    хочу_вот_сказать Активный участник

    8.402
    1
    $sql_answer = mysql_query($query) or die(mysql_error());
    $result = mysql_result($sql_answer, 0, 0); // см. mysql_fetch_assoc()

    а вообще

    форматирование захавано. см тут http://pastebin.ru/293954
     
  3. Гость

    Гость Гость


    я так и не понял чё там написанно. но всё же нашёл решение, хоть и не совсем идеальное, но всё же
    =======================================================
    <?
    $hostname = "localhost";
    $username = "root";
    $password = "";
    $dbName = "proba";

    $userstable = "contact";

    mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
    mysql_select_db($dbName) or die(mysql_error());

    $query = "SELECT * FROM $userstable WHERE id";
    $res = mysql_query($query) or die(mysql_error());

    $number = mysql_num_rows($res);

    if ($number == 0) {
    echo "<CENTER><P>Сообщений нет</CENTER>";
    } else {
    echo "<CENTER><P>Количество последних сообщений: $number<BR><BR>";

    while ($row=mysql_fetch_array($res)) {
    echo "Клиент ".$row['name'].".<BR>";
    echo "Его Email: ".$row['mail']."<br>";
    echo "Его сообщение: ".$row['message']."<br>";
    echo "Его дата: ".$row['datestamp']."<br>";
    echo "Его IP: ".$row['ip'];
    echo "<BR><BR>";
    }
    echo "</CENTER>";
    }
    ?>
     
  4. хочу_вот_сказать

    хочу_вот_сказать Активный участник

    8.402
    1
    Гость,
    мля, ЗАБУДЬТЕ про функцию die()! обрабатывайте ошибки своими средствами а не таким образом.

    вот представьте себе ситуацию. сфигачили вы сайтик. на нём несколько таких блоков. один из них перестал работать (например похерилась часть таблиц на серваке в следствие вырубления электроэнергии) и тогда вместо сайта вылезет его часть, генерирующаяся до первого die.

    читайте мануал. про try и throw.

    ps. и про mysql_escape_string тожо.


    pps. а ещё лучше весь мануал прочитать, осознать, а потом писать...

    добавлено через 42 секунды
    и это <center> - deprecated тег.
     
  5. Гость

    Гость Гость

    вот ещё один вопрос, вот это обычный вывод.
    ================================================
    <?
    $hostname = "localhost";
    $username = "root";
    $password = "";
    $dbName = "proba";

    $userstable = "contact";

    mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
    mysql_select_db($dbName) or die(mysql_error());

    $query = "SELECT * FROM $userstable WHERE id";
    $res = mysql_query($query) or die(mysql_error());

    $number = mysql_num_rows($res);

    if ($number == 0) {
    echo "<CENTER><P>Сообщений нет</CENTER>";
    } else {
    echo "<CENTER><P>Количество последних сообщений: $number<BR><BR>";

    while ($row=mysql_fetch_array($res)) {
    echo "Клиент ".$row['name'].".<BR>";
    echo "Его Email: ".$row['mail']."<br>";
    echo "Его сообщение: ".$row['message']."<br>";
    echo "Его дата: ".$row['datestamp']."<br>";
    echo "Его IP: ".$row['ip'];
    echo "<BR><BR>";
    }
    echo "</CENTER>";
    }
    ?>
    ================================================
    а как сделать такой же вывод, только в обратном порядке? ( то есть, свеже добавленная инфа должны отображатся сверху, а не снизу как сейчас!)
     
  6. Гость

    Гость Гость

    я примерно предпологаю как это можно сделать, но что-то не выходит.
    по идее нужно сделать сделать простой вывод инфы № 1 (чёй id=1). потом нужно сделать вывод через цикл "while" тока к "id" прибавить 1 (id+1). и тогда, исходя из моих предположений будет такой вид:
    ==================================================
    строка №1 инфа 1 (id=1)
    ---------------------------------------------------
    строка №2 инфа 2 (id=2)
    строка №3 инфа 3 (id=3)
    и т.д.
    ==================================================
    если это так, пожалуйста, помогите в этом разобратся и правильно сделать вывод.
     
  7. Hermes

    Hermes Активный участник

    11.670
    1
    Гость, вам стоит почитать букварь, имхо. Ответы на вопросы, которые вы задаете, обычно печатают рна первых страницах.
    И phpmanual скачайте. Там куча примеров. Он даже на русском есть.
     
  8. хочу_вот_сказать

    хочу_вот_сказать Активный участник

    8.402
    1
    Hermes, невнимательный вы человек, товарищь преподаватель :d

    Гость,
    http://www.mysql.ru/docs/man/ читай пока над черепной коробкой твоей нимб не появитцо (с 3й главы).
     
  9. Hermes

    Hermes Активный участник

    11.670
    1
    Эт еще почему?
    :)
     
  10. хочу_вот_сказать

    хочу_вот_сказать Активный участник

    8.402
    1


    Hermes, потому что вам следовало бы гостю нужную путёвку выдать, ибо человек вообще не понимает что такое базы данных и для решения каких задач они созданы ;)



    а это уже вас цитирую :biglaugh: топикстартеру ман скурить, конечно, надо, но ещё и надо понимать какие задачи каким образом стоит решать.
     
  11. Hermes

    Hermes Активный участник

    11.670
    1
    хочу_вот_сказать, я не стал писать все что надо почитать по данному вопросу, чтобы человека не испугать совсем. Начать надо с чего-нибудь, потом и до остального дело дойдет. Ман по мускулю вовсе не поможет понять
    .
     
  12. хочу_вот_сказать

    хочу_вот_сказать Активный участник

    8.402
    1
    Hermes,
    ну ман по мускулю хотя бы должен натолкнуть его на эти размышления.