За последние 24 часа нас посетили 17473 программиста и 1561 робот. Сейчас ищут 1915 программистов ...

Не работает SELECT * FROM

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

  1. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Почему то никак не получается вывести из базы данных никакую информацию. Вот код.

    Код (Text):
    1.  <body>
    2. <?php
    3. $db = mysql_connect ("localhost", "real_poz", "sddeee");
    4. mysql_select_db ("real_poz", $db);
    5. if ($db = 0) {echo "Не удалось подключится к серверу";}
    6. else {echo "Соединение создано успешно";}
    7.  
    8. 16 cтрока            $result = mysql_query ("SELECT * FROM `dle_post` WHERE `id`='18' ", $db);
    9. 17 cтрока            $myrow = mysql_fetch_array ($result);
    10. 18 cтрока            echo $myrow ["autor"];
    11. ?>
    12. </body>
    Соединяется с базой успешно. Но ничего не выводит. Пробовал разные варианты, то на одном из них выводил автора статьи и дату, а сейчас выдает ошибку:
    Код (Text):
    1. Соединение создано успешно
    2. Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\localhost\www\php\index.php on line 16
    3. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\php\index.php on line 17
    Вроде все верно написал... Что не так делаю?
     
  2. Volos

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

    С нами с:
    25 июн 2011
    Сообщения:
    6
    Симпатии:
    0
    Адрес:
    Киев
    <body>
    <?php
    $db = mysql_connect ("localhost", "real_poz", "sddeee");
    mysql_select_db ("real_poz", $db);
    if ($db == 'true') {echo "Не удалось подключится к серверу";}
    else {echo "Соединение создано успешно";}

    $result = mysql_query ("SELECT * FROM dle_post WHERE id='18' ", $db);
    $myrow = mysql_fetch_array ($result);
    echo "$myrow ["autor"]";
     
  3. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Поменял на:
    Код (Text):
    1. <?php
    2. $db = mysql_connect ("localhost", "realm461_pozdrav", "Пароль");
    3. mysql_select_db ("realm461_pozdrav", $db);
    4. if ($db == 'true') {echo "Не удалось подключится к серверу";}
    5. else {echo "Соединение создано успешно";}
    6. $result = mysql_query ("SELECT * FROM dle_post WHERE id='18' ", $db);
    7. $myrow = mysql_fetch_array ($result);
    8. echo $myrow ["autor"];
    9. ?>
    Ошибки пропали, но информация из поля автор так и не выводится на странице. Просто написано "Соединение создано успешно". Просматривал саму БД. Строка с id='18' есть, да и id самое менял не однократно, но все равно не выводится ничего :((
     
  4. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Когда убрал
    Код (Text):
    1. WHERE id='18'
    и написал просто

    Код (Text):
    1. $result = mysql_query ("SELECT * FROM dle_post", $db);
    - автор вывелся на странице, а ставлю конкретной новости
    Код (Text):
    1. id='18'
    - ничего не выводится... В чем же проблема?[/quote]
     
  5. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Подсказали дописать часть кода для обработки ошибок:

    Код (Text):
    1. <?php
    2. $db = mysql_connect ("localhost", "realm461_pozdrav", "пароль");
    3. mysql_select_db ("realm461_pozdrav", $db);
    4. if ($db == 'true') {echo "Не удалось подключится к серверу";}
    5. else {echo "Соединение создано успешно";}
    6. $sql = mysql_query ("SELECT * FROM dle_post WHERE id=`5993`", $db);
    7. $result = mysql_query($sql);
    8. echo "<br>";
    9. if(!$result)
    10. {
    11.   echo "Возникла ошибка - ".mysql_error()."<br>";
    12.   echo $sql;
    13.   exit();
    14. }
    15. ?>
    Теперь выводится на странице:
    Код (Text):
    1. Соединение создано успешно
    2. Возникла ошибка - Query was empty
     
  6. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    PHP:
    1. <?php
    2. $sql = "SELECT * FROM dle_post WHERE id=`5993`";
    3. $result = mysql_query($sql, $db);
     
  7. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Поменял:
    Код (Text):
    1. <?php
    2. $db = mysql_connect ("localhost", "realm461_pozdrav", "пароль");
    3. mysql_select_db ("realm461_pozdrav", $db);
    4. if ($db == 'true') {echo "Не удалось подключится к серверу";}
    5. else {echo "Соединение создано успешно";}
    6. $sql = "SELECT * FROM dle_post WHERE id=`18`";
    7. $result = mysql_query($sql, $db);
    8. echo "<br>";
    9. if(!$result)
    10. {
    11.   echo "Возникла ошибка - ".mysql_error()."<br>";
    12.   echo $sql;
    13.   exit();
    14. }
    15. ?>
    Теперь выдает:

    Код (Text):
    1. Соединение создано успешно
    2. Возникла ошибка - Unknown column '18' in 'where clause'
    3. SELECT * FROM dle_post WHERE id=`18`
    Не пойму почему же пишет неизвестный столбец... Почему столбец, ведь из строки должен выбирать и столбца по id...
    В таблице строка с id=`18` - есть, да и менял опять же на разный id....
     
  8. Mamont

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

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    id=`5993`
    id='5993'
     
  9. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Mamont, спасибо, - исправил.
    Код (Text):
    1. $sql = "SELECT * FROM dle_post WHERE id='18'";
    Но теперь обратно ничего не выводится из БД.
    Просто пишется:
    Код (Text):
    1. Соединение создано успешно
    и все и ничего больше не выводится... :(((
     
  10. Mamont

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

    С нами с:
    5 дек 2010
    Сообщения:
    183
    Симпатии:
    0
    про mysql_fetch не забыл?
    PHP:
    1. <?php
    2. $db = mysql_connect ("localhost", "realm461_pozdrav", "пароль");
    3. mysql_select_db ("realm461_pozdrav", $db);
    4. if (!$db) {echo "Не удалось подключится к серверу";}      // !!!!
    5. else {echo "Соединение создано успешно";}
    6. $sql = "SELECT * FROM dle_post WHERE id='18'";
    7. $result = mysql_query($sql, $db);
    8. echo "<br>";
    9. if(!$result)
    10. {
    11.    echo "Возникла ошибка - ".mysql_error()."<br>";
    12.    echo $sql;
    13.    exit();
    14. }
    15.  
    16. $row = mysql_fetch_assoc( $result );
    17. print_r( $row );
    18.  ?>
    зы. Для оформления пхп кода используй тег PHP, а не CODE
     
  11. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Все добавил:
    PHP:
    1. <?php
    2. $db = mysql_connect ("localhost", "realm461_pozdrav", "1111111");
    3. mysql_select_db ("realm461_pozdrav", $db);
    4. if ($db == 'true') {echo "Не удалось подключится к серверу";}
    5. else {echo "Соединение создано успешно";}
    6. $sql = "SELECT * FROM dle_post WHERE id='18'";
    7. $result = mysql_query($sql, $db);
    8. echo "<br>";
    9. if(!$result)
    10. {
    11.   echo "Возникла ошибка - ".mysql_error()."<br>";
    12.   echo $sql;
    13.   exit();
    14. }
    15. $row = mysql_fetch_assoc( $result );
    16. print_r( $row );
    17. ?>
    Но все равно выводится только:
    Код (Text):
    1. Соединение создано успешно
    :(( Что ж за фигня такая?
     
  12. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
  13. Gromo

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

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    realmen80
    а у тебя в таблице есть строка с айди = 18 ?
     
  14. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Gromo - строка с айди = 18 есть, я менял и на другие...
    Elkaz поставил Ваш код:
    PHP:
    1.    1.  <?php
    2.    2.  $Handler = mysql_connect ('localhost', 'realm461_pozdrav', 'password') or die (mysql_error());
    3.    3.  mysql_select_db ('realm461_pozdrav') or die (mysql_error());
    4.    4.  
    5.    5.  $Query = mysql_query ('SELECT * FROM `dle_post` WHERE `id` > 0 LIMIT 1') or die (mysql_error());
    6.    6.  $Row = mysql_fetch_assoc ($Query);
    7.    7.  
    8.    8.  var_dump ($Row);
    Вот что отобразилось на главной:
    Объясните, пожалуйста, синтаксис
    PHP:
    1. WHERE `id` > 0 LIMIT 1
    ? Єто что нужно вывести из таблицы все с полей 0 и 1?
    Меняю цыфры 1 и 0 и пишет - bool(false)...[/b]
     
  15. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    realmen80
    WHERE `id` > 0 замените на WHERE `id` = 18 LIMIT 1
    Нет. Это означает выбрать одну запись (LIMIT 1), где ID > 0
     
  16. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Заменил. Теперь пишет - bool(false)... Почему же false, если в БД строка с айди 18 есть?
     
  17. ckjet

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

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    PHP:
    1. <?php
    2.  $db = mysql_connect ("localhost", "realm461_pozdrav", "1111111");
    3.  mysql_select_db ("realm461_pozdrav", $db);
    4.  if ($db == 'true') {echo "Не удалось подключится к серверу";}
    5.  else {echo "Соединение создано успешно";}
    6.  $sql = "SELECT * FROM dle_post where id=18";
    7.  $result = mysql_query($sql, $db);
    8.  echo "<br>";
    9.  if(!$result)
    10.  {
    11.    echo "Возникла ошибка - ".mysql_error()."<br>";
    12.    echo $sql;
    13.    exit();
    14.  }
    15.  $row = mysql_fetch_array( $result );
    16.  print_r( $row );
    17.  ?>
    Покажите результат
     
  18. ckjet

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

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    Функция mysql_fetch_assoc возвращает только ассоциативный массив. Если вам нужны как ассоциативные, так и численные индексы в массиве, обратитесь к функции mysql_fetch_array(). Думаю проблемма у вас именно в этом, странно что до меня не нашли
     
  19. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    ckjet, вот что отобразилось на главной:


    Только это вывелась какая-то новость движка самого... Я естественно такой новости не добавлял. А своей новости ни одной не получается вывести... :(
     
  20. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    ckjet, я ошибся. То не по вашему коду вывело, а по коду:
    Код (Text):
    1. <?php
    2. $Handler = mysql_connect ('localhost', 'realm461_pozdrav', 'CVlcEm5G') or die (mysql_error());
    3.  mysql_select_db ('realm461_pozdrav') or die (mysql_error());
    4. $Query = mysql_query ('SELECT * FROM `dle_post` WHERE `id` > 0 LIMIT 1') or die (mysql_error());
    5. $Row = mysql_fetch_assoc ($Query);
    6. var_dump ($Row);
    7. ?>
    Вот вставил предложенный Вами и вот что получилось:
    Код (Text):
    1. Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'realm461_pozdrav'@'localhost' (using password: YES) in Z:\home\localhost\www\php\index.php on line 13
    2.  
    3. Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in Z:\home\localhost\www\php\index.php on line 14
    4. Соединение создано успешно
    5. Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in Z:\home\localhost\www\php\index.php on line 18
    6.  
    7. Возникла ошибка - Access denied for user 'realm461_pozdrav'@'localhost' (using password: YES)
    8. SELECT * FROM dle_post where id=18
     
  21. ckjet

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

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    Вы мне покажите содержимое массива $row а не что выводится на главной
     
  22. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    Начинаю только изучать... Как я могу его показать Вам?
     
  23. ckjet

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

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    <?php
    $db = mysql_connect ("localhost", "realm461_pozdrav", "1111111");
    mysql_select_db ("realm461_pozdrav", $db);
    if ($db == 'true') {echo "Не удалось подключится к серверу";}
    else {echo "Соединение создано успешно";}
    $sql = "SELECT * FROM dle_post where id=18";
    $result = mysql_query($sql, $db);
    echo "<br>";
    if(!$result)
    {
    echo "Возникла ошибка - ".mysql_error()."<br>";
    echo $sql;
    exit();
    }
    $row = mysql_fetch_array( $result );
    echo 'Содержимое массива:<pre>';
    print_r( $row );
    echo '</pre>';
    ?>

    Покажите результат чтоб увидеть нужно зайти на страницу в которой этот код
     
  24. realmen80

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

    С нами с:
    30 июн 2011
    Сообщения:
    22
    Симпатии:
    0
    На денвере создана страница index.php
    Код (Text):
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <html>
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    5. <title>Главная страница сайта</title>
    6. <link href="style.css" rel="stylesheet" type="text/css">
    7. </head>
    8.  
    9. <body>
    10. <?php
    11. $db = mysql_connect ("localhost", "realm461_pozdrav", "1111111");
    12. mysql_select_db ("realm461_pozdrav", $db);
    13. if ($db == 'true') {echo "Не удалось подключится к серверу";}
    14. else {echo "Соединение создано успешно";}
    15. $sql = "SELECT * FROM dle_post where id=18";
    16. $result = mysql_query($sql, $db);
    17. echo "<br>";
    18. if(!$result)
    19. {
    20. echo "Возникла ошибка - ".mysql_error()."<br>";
    21. echo $sql;
    22. exit();
    23. }
    24. $row = mysql_fetch_array( $result );
    25. echo 'Содержимое массива:<pre>';
    26. print_r( $row );
    27. echo '</pre>';
    28. ?>
    29. </body>
    30. </html>
    Когда в браузере захожу на страницу index.php, то мне отображается только текст:
    Код (Text):
    1. Соединение создано успешно
    2. Содержимое массива:
    Вот и все. И больше ничего не выводится.... А почему - загадка...
     
  25. ckjet

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

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    PHP:
    1. <?php
    2. $db = mysql_connect ("localhost", "realm461_pozdrav", "1111111");
    3. mysql_select_db ("realm461_pozdrav", $db);
    4. if ($db == 'true') {echo "Не удалось подключится к серверу";}
    5. else {echo "Соединение создано успешно";}
    6. $sql = "SELECT * FROM dle_post";
    7. $result = mysql_query($sql, $db);
    8. echo "<br>";
    9. if(!$result)
    10. {
    11. echo "Возникла ошибка - ".mysql_error()."<br>";
    12. echo $sql;
    13. exit();
    14. }
    15. $row = mysql_fetch_array( $result );
    16. echo 'Содержимое массива:<pre>';
    17. print_r( $row );
    18. echo '</pre>';
    19. ?>
    Покажите результат этого