Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не выводятся данные на экран / MySQL - ошибка PHP, обработать запрос и вывести результаты 
:(
    Опции темы
McDoc
Дата 24.6.2014, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



Не могу вывести результат запроса из MYSQL.

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="refresh" content="60">
        
<?php

$username = 'root';
$password = '';
$mydb = 'task_db';

$db = new mysqli('localhost', $username, $password, $mydb) or die ("Unable to connect to MySQL");

// echo"Great connection"; // Test connection

$sql = "SELECT `description`, DATE_FORMAT( current_date, \'%d %b %y\' ), `start_time`\n"
    . "FROM tasks\n"
    . "WHERE `code` LIKE \'daily\'\n"
    . "AND `start_time` > current_time\n"
    . "AND `exp_day` >= current_date\n"
    . "ORDER BY `start_time` ";
    
    echo"Tasks in HETG";
    
     $result = mysql_query($sql);
            echo "<table width=100><tr>";
                echo "<td>HETG Task</td>";
                echo "<td>Date</td>";
                echo "<td>Time</td>";
            while($row = mssql_fetch_array($result)) 
            {            
                echo "<tr>";
                echo "<td>".$row['description']."</td>";
                echo "<td>".$row['current_date']."</td>";
                echo "<td>".$row['start_time']."</td>";
                echo "</tr>";
            }
            echo "</table><br/>";

mysqli_close($db);
?>


Простенькая табличка с тремя колонками. 

Ошибка:

Fatal error: Call to undefined function mssql_fetch_array() in C:\xampp\htdocs\Inform_dash\index.php on line 29

user posted image

Где ошибка?

Это сообщение отредактировал(а) McDoc - 24.6.2014, 16:12
PM MAIL WWW ICQ Skype   Вверх
AVA12
Дата 24.6.2014, 17:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: нет
Всего: 4



Я сначала хотел посоветовать прочитать сообщение об ошибке. Но, думаю, лучше будет найти какого-нибудь программиста и доверить написание кода ему.
PM ICQ Jabber   Вверх
McDoc
Дата 24.6.2014, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



Еще раз пересмотрел код, нашел опечатку. 
Ошибка изменилась....

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="refresh" content="60">
        
<?php

$username = 'root';
$password = '';
$mydb = 'task_db';

$db = new mysqli('localhost', $username, $password, $mydb) or die ("Unable to connect to MySQL");

// echo"Great connection"; // Test connection

$sql = "SELECT `description`, DATE_FORMAT( current_date, \'%d %b %y\' ), `start_time`\n"
    . "FROM tasks\n"
    . "WHERE `code` LIKE \'daily\'\n"
    . "AND `start_time` > current_time\n"
    . "AND `exp_day` >= current_date\n"
    . "ORDER BY `start_time` ";
    
    echo"Tasks in HETG";
    
     $result = mysql_query($sql);
            echo "<table width=100><tr>";
                echo "<td>HETG Task</td>";
                echo "<td>Date</td>";
                echo "<td>Time</td>";
            while($row = mysql_fetch_array($result)) 
            {            
                echo "<tr>";
                echo "<td>".$row['description']."</td>";
                echo "<td>".$row['DATE_FORMAT']."</td>";
                echo "<td>".$row['start_time']."</td>";
                echo "</tr>";
            }
            echo "</table><br/>";

mysqli_close($db);
?>


Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\Inform_dash\index.php on line 29

Добавлено через 9 минут и 52 секунды
Что бы читать ошибки, добавил пару строк:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="refresh" content="60">
        
<?php

            ini_set('display_errors','On');
            error_reporting(E_ALL|E_STRICT);

$username = 'root';
$password = '';
$mydb = 'task_db';

$db = new mysqli('localhost', $username, $password, $mydb) or die ("Unable to connect to MySQL");

// echo"Great connection"; // Test connection

$sql = "SELECT `description`, DATE_FORMAT( current_date, \'%d %b %y\' ), `start_time`\n"
    . "FROM tasks\n"
    . "WHERE `code` LIKE \'daily\'\n"
    . "AND `start_time` > current_time\n"
    . "AND `exp_day` >= current_date\n"
    . "ORDER BY `start_time` ";
    
    echo"Tasks in HETG";
    
     $result = mysql_query($sql);
            echo "<table width=100><tr>";
                echo "<td>HETG Task</td>";
                echo "<td>Date</td>";
                echo "<td>Time</td>";
                
                if($result === FALSE) {
             die(mysql_error()); // TODO: better error handling
}    
                
            while($row = mysql_fetch_array($result)) 
            {            
                echo "<tr>";
                echo "<td>".$row['description']."</td>";
                echo "<td>".$row['DATE_FORMAT']."</td>";
                echo "<td>".$row['start_time']."</td>";
                echo "</tr>";
            }
            echo "</table><br/>";

mysqli_close($db);
?>


Deprecated: mysql_query(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in C:\xampp\htdocs\Inform_dash\index.php on line 27
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'%d %b %y\' ), `start_time` FROM tasks WHERE `code` LIKE \'daily\' AND `start_t' at line 1

Вот теперь чуть понятней... хотя.. не совсем. Этот код скомпелировал в РНР XAMPP...
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 24.6.2014, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



1. первая ошибка вам говорит, что вы используете устарелые функции mysql_*, нужно перейти на PDO или mysqli_*
2. вторая ошибка вам говорит, что у вас собственно синтаксическая ошибка в запросе
3. mysqli_close ?
PM MAIL WWW ICQ Skype   Вверх
McDoc
Дата 24.6.2014, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



Цитата(Aliance @ 24.6.2014,  17:56)
1. первая ошибка вам говорит, что вы используете устарелые функции mysql_*, нужно перейти на PDO или mysqli_*
2. вторая ошибка вам говорит, что у вас собственно синтаксическая ошибка в запросе
3. mysqli_close ?

Да я действительно над этим работаю. Кое что устранил.... сейчас вот что:

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="refresh" content="60">
        
<?php
            ini_set('display_errors','On');
            error_reporting(E_ALL|E_STRICT);

$mydb = 'task_db';

$db = new mysqli('localhost', 'root', '', $mydb) or die ("Unable to connect to MySQL");

        echo "Great connection"; // Test connection
        
$sql = "SELECT `description`, current_date, `start_time`\n"
    . "FROM tasks\n"
    . "WHERE `code` LIKE \'daily\'\n"
    . "AND `start_time` > current_time\n"
    . "AND `exp_day` >= current_date\n"
    . "ORDER BY `start_time` ";
    
    echo"<br></br>";
    echo"Tasks in HETG";
    
     $result = mysqli_query($sql, $db);
            echo "<table width=100 border=1 cellspacing=0 cellpadding=10><tr>";
                echo "<td>HETG Task</td>";
                echo "<td>Date</td>";
                echo "<td>Time</td>";
                
                if($result === FALSE) {
             die(mysql_error()); // TODO: better error handling
}    
                
            while($row = mysqli_fetch_array($result)) 
            {            
                echo "<tr>";
                echo "<td>".$row['description']."</td>";
                echo "<td>".$row['DATE_FORMAT']."</td>";
                echo "<td>".$row['start_time']."</td>";
                echo "</tr>";
            }
            echo "</table><br/>";

mysqli_close($db);
?>


ну и ошибки

Warning: mysqli_query() expects parameter 1 to be mysqli, string given in C:\xampp\htdocs\Inform_dash\index.php on line 25
HETG Task Date Time 
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\Inform_dash\index.php on line 35

Добавлено через 12 минут и 27 секунд
.............................................................................
Есть ли где готовый рабочий пример????
PM MAIL WWW ICQ Skype   Вверх
McDoc
Дата 24.6.2014, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



.....................................................................
ну что, сделал по примеру - http://www.w3schools.com/php/func_mysqli_query.asp

Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"    "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="refresh" content="60">
        
<?php
        ini_set('display_errors','On');
        error_reporting(E_ALL|E_STRICT);

        $con=mysqli_connect('localhost', 'root', '', 'task_db');

        if (mysqli_connect_errno())
          {
             echo "Failed to connect to MySQL: " . mysqli_connect_error();
          }
        
    mysqli_query($con, "SELECT `description`, current_date, `start_time`\n"
    . "FROM tasks\n"
    . "WHERE `code` LIKE \'daily\'\n"
    . "AND `start_time` > current_time\n"
    . "AND `exp_day` >= current_date\n"
    . "ORDER BY `start_time` ");
    
    echo"<br></br>";
    echo"Tasks in HETG";
    
             echo "<table width=100 border=1 cellspacing=0 cellpadding=10><tr>";
                echo "<td>HETG Task</td>";
                echo "<td>Date</td>";
                echo "<td>Time</td>";
                                
            while($row = mysqli_use_result($con)) // or mysqli_store_result
            {            
                echo "<tr>";
                echo "<td>".$row['description']."</td>";
                echo "<td>".$row['DATE_FORMAT']."</td>";
                echo "<td>".$row['start_time']."</td>";
                echo "</tr>";
            }
            echo "</table><br/>";

mysqli_close($con);
?>


Результат правда НОЛЬ:

user posted image
PM MAIL WWW ICQ Skype   Вверх
Aliance
Дата 25.6.2014, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



McDoc, внешне все окей, выполните запрос в phpmyadmin и проверьте - он вообще что-то возвращает. может быть в нем ошибка.
PM MAIL WWW ICQ Skype   Вверх
McDoc
Дата 25.6.2014, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



Идем в MyphpAdmin
Вставляем запрос:

SELECT  `description` AS  'Task', DATE_FORMAT(current_date,  '%d %b %y') AS  'Current date',  `start_time` AS  'Time'
FROM tasks
WHERE  `code` LIKE  'daily'
AND  `start_time` > current_time
AND  `exp_day` >= current_date
ORDER BY  `start_time` 

Получаем

user posted image

Далее жмем  на :

Create PHP code

И Полчаем :

$sql = "SELECT `description` AS \'Task\', DATE_FORMAT(current_date, \'%d %b %y\') AS \'Current date\', `start_time` AS \'Time\'\n"
    . "FROM tasks\n"
    . "WHERE `code` LIKE \'daily\'\n"
    . "AND `start_time` > current_time\n"
    . "AND `exp_day` >= current_date\n"
    . "ORDER BY `start_time` ";

Вставлем в страницу и ничего не получаем.

Вставил echo - про проверки где загвоздка. 
 echo"Tasks in HETG";
    
             echo "<table width=100 border=1 cellspacing=0 cellpadding=10><tr>";
                echo "<td>HETG Task</td>";
                echo "<td>Date</td>";
                echo "<td>Time</td>";
                echo "Test # 5"; // OK
            
            while($row = mysqli_use_result($con)) // or mysqli_store_result
            {        
                echo "Test # 6";    // False
                echo "<tr>";
                echo "<td>".$row['description']."</td>";
                echo "<td>".$row['current_date']."</td>";
                echo "<td>".$row['start_time']."</td>";
                echo "</tr>";
                echo "Test # 7";    // False
            }
            echo "</table><br/>";

Проблема внутри while loop.....

user posted image

Добавлено через 2 минуты и 43 секунды
Да...
Вставлял в страницу "чистый" запрос (не как для РНР) тоже самое ничего не выводит.
PM MAIL WWW ICQ Skype   Вверх
baldina
Дата 25.6.2014, 12:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



Код

if ($result = mysqli_use_result($con)) {
  while ($row = mysqli_fetch_row($result)) {
    ...
  }
  $result->close();
}

PM MAIL   Вверх
McDoc
Дата 25.6.2014, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



Спасибо! 
Не работает ((((

Код

    echo"Tasks in HETG";
    
             echo "<table width=100 border=1 cellspacing=0 cellpadding=10><tr>";
                echo "<td>HETG Task</td>";
                echo "<td>Date</td>";
                echo "<td>Time</td>";
                echo "Test # 5"; // OK

            if ($result = mysqli_use_result($con)) {
                
            while($row = mysqli_fetch_row($result))
            {        
                echo "Test # 6";    // False
                echo "<tr>";
                echo "<td>".$row['description']."</td>";
                echo "<td>".$row['current_date']."</td>";
                echo "<td>".$row['start_time']."</td>";
                echo "</tr>";
                echo "Test # 7";    // False
            }
                $result->close();
            }

PM MAIL WWW ICQ Skype   Вверх
baldina
Дата 25.6.2014, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



Код

var_dump($row);

PM MAIL   Вверх
Aliance
Дата 25.6.2014, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 3
Всего: 137



Запрос же один, зачем использовать mysqli_use_result? Почему бы не использовать просто mysqli_fetch_row:
Код

<?php
$mysqli = new mysqli(...);

if (mysqli_connect_errno()) {
    exit();
}

$query = "SELECT ...";

if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) {
        var_dump($row);
    }
    $result->close();
}

$mysqli->close();
?>

PM MAIL WWW ICQ Skype   Вверх
baldina
Дата 25.6.2014, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



да. но у него другая проблема, хочет ассоциативный массив
PM MAIL   Вверх
McDoc
Дата 25.6.2014, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



Это толко первый запрос.
Будут так же еще и другие.

Идея - раз в сутки на экране появляются задачи с описнаие и временем исполнения. Исполнил, рядом с задачей нажал кнопку исполнено и задание исчезло. 

Мне хотя бы вывести в на экран мой запрос, дальше буду колдовать....
PM MAIL WWW ICQ Skype   Вверх
baldina
Дата 25.6.2014, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 2
Всего: 101



McDoc, вы бы почитали документацию, там есть обсуждение и примеры... мы ничего кроме того что там можно прочесть вам не сказали
PM MAIL   Вверх
McDoc
Дата 25.6.2014, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 30
Регистрация: 23.11.2011
Где: Dublin

Репутация: нет
Всего: нет



baldina
Не поверите, сейчас разбираюсь именно с этой документацией )))
PM MAIL WWW ICQ Skype   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Базы Данных | Следующая тема »


 




[ Время генерации скрипта: 0.1159 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.