[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запрос с параметрами
ussama
Уважаемые, нужна помощь, я в пхп абсолютный 0.

Есть у меня уже на страничке два поля для дат, допустим, хранятся в $d1 и $d2. Надо вывести результат запроса с этими параметрами.

например,
//подключение к базе выше

<?php
$query = "";
$res ="";
$query = "SELECT count(user_id) FROM vision_tests where TestDate => " & $d1 & "TestDate <= " & $d2;
$res = mysql_query($query);
echo $res
?>

Результатом будет одно число, мне даже строк не надо. Поправьте меня?
пока пишет "Resource id #31"

Рисую практически в блакноте, приложение пока взять негде. Помогите, плиз. Потом можете закидать меня помидорами wink.gif



Спустя 1 час, 9 минут, 42 секунды (25.09.2008 - 12:06) waldicom написал(а):
Необходимо выводите не $res, а использовать функцию mysql_fetch_row() или mysql_fetch_assoc()
Там же есть примеры использования

Спустя 39 минут, 36 секунд (25.09.2008 - 12:45) sergeiss написал(а):
У меня есть подозрение, что и величины $id1 и $id2 тоже неправильно берутся. И знак & я не понял, зачем введен.

Спустя 15 часов, 59 минут, 51 секунда (26.09.2008 - 04:45) ussama написал(а):
Цитата(waldicom @ 25.9.2008, 16:06) [snapback]49241[/snapback]
Необходимо выводите не $res, а использовать функцию mysql_fetch_row() или mysql_fetch_assoc()
Там же есть примеры использования


Спасибо большое!

Цитата(sergeiss @ 25.9.2008, 16:45) [snapback]49245[/snapback]
У меня есть подозрение, что и величины $id1 и $id2 тоже неправильно берутся. И знак & я не понял, зачем введен.

У меня тоже, я пока без where пробую. В книжках, которые у меня есть нет запросов с параметрами. Поправьте, если не трудно, эту строку? Сами переменные правильные, я их по одному выводила.

Спустя 47 минут, 39 секунд (26.09.2008 - 05:33) ussama написал(а):
Спасибо вам за помощь.

Я сделала вот так:

Код
<?php
$query = "";
$result ="";
$query = "SELECT count(user_id) as all_test FROM vision_tests where testDate >= $sv1_testDate";
//echo $sv1_testDate;
//$res = mysql_query($query);

$result = mysql_query($query);

    if (!$result) {
        echo "Could not successfully run query ($sql) from DB: " . mysql_error();
        exit;
    }
    
    if (mysql_num_rows($result) == 0) {
        echo "No rows found, nothing to print so am exiting";
        exit;
    }
    while ($row = mysql_fetch_assoc($result)) {
        echo $row["all_test"];
        //echo $row["fullname"];
        //echo $row["userstatus"];
    }
        mysql_free_result($result);
?>


Только вот по дате фильтровать не хочет. Но это уже, видимо, проблема с MySql.

Спустя 2 часа, 44 минуты, 5 секунд (26.09.2008 - 08:17) sergeiss написал(а):
Что значит "не хочет фильтровать по дате"?
Вообще, если мы какие-то строки или даты используем в запросе в символьном виде, то они обязаны быть в апострофах. Иначе ошибка будет.

Спустя 18 минут, 20 секунд (26.09.2008 - 08:35) ussama написал(а):
Я нашла - у меня дата пользователем вводится в формате дд/мм/гггг, а сравнивать в запросе надо гггг/мм/дд.

Накопала функцию explode. Ей местами цифры переставляю. Вроде бы правильно всё работает )

И спасибо за апострофы - я их сначала не ставила.

Спустя 1 час, 38 минут, 54 секунды (26.09.2008 - 10:14) sergeiss написал(а):
Может я и не прав... Но дата должна пониматься в разных форматах. Попробуй без перестановки цифр, но с апострофами.

Спустя 2 дня, 18 часов, 20 минут, 5 секунд (29.09.2008 - 04:34) ussama написал(а):
Цитата(sergeiss @ 26.9.2008, 14:14) [snapback]49351[/snapback]
Может я и не прав... Но дата должна пониматься в разных форматах. Попробуй без перестановки цифр, но с апострофами.


Я пробовала с апострофами - вываливает все записи без фильтра.

Спустя 5 часов, 33 минуты, 52 секунды (29.09.2008 - 10:08) sergeiss написал(а):
Цитата(ussama @ 29.9.2008, 5:34) [snapback]49534[/snapback]
Цитата(sergeiss @ 26.9.2008, 14:14) [snapback]49351[/snapback]
Может я и не прав... Но дата должна пониматься в разных форматах. Попробуй без перестановки цифр, но с апострофами.


Я пробовала с апострофами - вываливает все записи без фильтра.

Плз smile.gif Выложите сюда запрос. С кратким описанием, что именно хотите получить. Чтобы не гадать, а "живьем" его увидеть. Не может такого быть, чтобы не фильтровалось!

Спустя 21 час, 14 минут, 2 секунды (30.09.2008 - 07:22) ussama написал(а):
Вот так 36 записей:
Код
SELECT * FROM vision_tests  where testDate between '2008/03/21' and '2008/03/21 23:59:59'

Вот так ни одной:
Код
SELECT * FROM vision_tests  where testDate between '21/03/2008' and '22/03/2008'

и пишет "Truncated incorrect datetime value: '22/03/2008'"

Запросы запускаю в MySql Query Browser. Раньше (где все записи вываливает) запускала в PHP Report Maker'e 2.
Может я что-то не то делаю, запрос то пустяшный.

Ещё оказалось, что дата в базе хранится со временем. Приходится время добавлять. Но вот так, как в первом варианте всё работает, так что в этом вопросе не стоит беспокойства )) спасибо rolleyes.gif


_____________
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.