Не показывает строки из БД MYSQL...

THEDECAL

Новичок
Здравсвуйте, я только учусь программировать на PHP и у меня возникла проблема по передаче данных из БД... Я пишу простой сайт заявок для наших сотрудников... Часть кода по добовлению данных работает, а вот по чтению, не работает, то что данные есть в MYSQL я убедился... Колонки с наименованиями показывает,а дальше нет... PHP Версии 5.1.6 MYSQL Версии 14.12 Помогите пожалуйста... Вот мой код:
PHP:
<?php
    echo "<table align='center' border='1' cellpadding='1'>";
    echo "<tr bgcolor='#90EE90'>";
    echo "<td><ST3>№</ST3></td>";
    echo "<td><ST3>Улица:</ST3></td>";
    echo "<td><ST3>Дом:</ST3></td>";
    echo "<td><ST3>Квартира:</ST3></td>";
    echo "<td><ST3>Телефон:</ST3></td>";
    echo "<td><ST3>Приоритет:</ST3></td>";
    echo "<td><ST3>Комментарии:</ST3></td>";
    echo "<td><ST3>Дата:</ST3></td>";
    echo "</tr>";
    include "mysql.php";
    $query = "SELECT * FROM $tbname";
    $show = mysql_query ($query) || die (mysql_error ());
    while ($row = mysql_fetch_array ($show))
        {
            $show_streets = $row ['streets'];
            echo "<tr>";
            echo "<td>"; 
            echo $show_streets;
            echo "</td>";
            echo "</tr>";
        }
    echo "</table>";
?>
А вот mysql.php:
PHP:
<?php
    $dbname = "tickets_tv"; #Имя базы данных
    $user = "tickets_tv_user"; #Пользователь этой базы данных
    $pass = "123456"; #Пароль этого пользователя
    $server = "localhost"; #Адрес сервера
    $tbname = "tickets"; #Имя таблицы заявок в этой базе данных
    mysql_connect ($server, $user, $pass) || die (mysql_error ());
    mysql_select_db ($dbname) || die (mysql_error ());
?>
 

THEDECAL

Новичок
почитай что возвращает mysql_fetch_array и что ты пытаешься из нее достать
Эта функция возвращает массив именуя индексы названиями столбцов, ну вот я и говорю показать данные столбца streets...
Или я не так понял?
 

Фанат

oncle terrible
Команда форума
я бы для начала написал в начале скрипта строчку
PHP:
error_reporting(E_ALL);
и начал раскручивать этот курьёзный случай из того, что скрипт после этого нам напишет...

если все равно ничего не покажет, то добавил бы к ней
PHP:
ini_set('display_errors',1);
 

THEDECAL

Новичок
Да, действительно это мне ни чего не показало...
ini_set('display_errors',1);
А вот это уже показаывает ошибку:
PHP:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/html/index.php on line 40
40 строка - это:
while ($row = mysql_fetch_array ($show, MYSQL_ASSOC))
 

Фанат

oncle terrible
Команда форума
ну вот если supplied argument is not a valid MySQL result resource, то попробуй его вывести и посмотреть:
PHP:
var_dump ($show);
после этого надо будет подумать, почему значение именно такое.
впрочем, задачка это не для начинающего.
 

Фанат

oncle terrible
Команда форума
buck
ты тут очень бурно рвался помогать.
может напишешь, почему в $show лежит true и как это исправить?

ну уж и заодно - что не так с функцией mysql_fetch_array?
 

Фанат

oncle terrible
Команда форума
почему же не поверим, если именно это и было причиной?
скорее поинтересуемся, кто тебе подсказал это сделать.

ну и заодно посоветуем никогда не писать в коде функции mysql_*, а сделать обёртку для более удобного использования
 

THEDECAL

Новичок
А мне ни кто не подсказал, я самоучка читал книгу, а там говорят || и or одно и, то же только || приоритетней ну, а я пользователь linux и мне привычней вводить ||
 

rampa

Новичок
Да, и у меня такой случай кода то был с or. Еще, если будешь писать запросы в БД, не ставь названия полей (столбцов) названиями служебных слов запросов mysql, например: SELECT like, from, desc FROM table Я с этой заморочкой когда-то пару дней промучался, чуть даже windows не начал менять, не работало ничего)
 

Фанат

oncle terrible
Команда форума
я пользователь linux и мне привычней вводить ||
Тут вопрос не в том, кто чей пользователь.
А именно в приоритете.

Поэтому писать надо не "как привычнее", а как требует логика приложения.
Если надо присвоить переменной результат логической операции, то используем логический оператор, приоритет которого выше, чем у оператора присвоения:
PHP:
$allowed = $allow || $deny;
а если надо сначала сделать присвоение, а потом проверить результат, то используем логический оператор, приоритет которого ниже, чем у оператора присвоения:
PHP:
$val = $possible_zero OR $val = 'default';
разглагольствуя про приоритеты, все всегда забывают указать, что речь не о приоритете or относительно ||, а об их отношении к = - у одного ниже, а у другого выше.
 
Сверху