Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: как сделать вчерашнюю дату

Сообщения:  [1-10]    [11-20]  [21-23] 

 
 автор: Trianon   (27.06.2008 в 22:41)   письмо автору
294.9 Кб
 
   для: Trianon   (26.06.2008 в 18:49)
 

Дамп в кодировке cp1251 с соответствующим содержимым я на всякий случай прикрепил к сообщению.

   
 
 автор: Trianon   (26.06.2008 в 18:49)   письмо автору
 
   для: Stasycat   (26.06.2008 в 11:05)
 

Насколько я понимаю, у Вас кодировка, декларированная в БД и в таблицах, не соответствует фактической кодировке, в которой хранится в полях текст.
phpMyAdmin в них показывает форменную галиматью.
Конечно же WHERE, сравнивающие текстовые поля со строками, пропускать записи не будут.
Что вовсе не означает что WHERE не работают вообще.
Сравнение id с числом выполняется замечательно.

Вероятно, ранее Вы работали с серверами версии ниже 4.1 - там кодировки вообще никак не специфицируются.

   
 
 автор: Stasycat   (26.06.2008 в 11:05)   письмо автору
321.7 Кб
 
   для: Trianon   (25.06.2008 в 11:11)
 

Вот арив экспортированный из моего phpMyAdmin - 2.9.0-rc1

Если чем-то можете помочь, буду рада :-)
А то я прошлый сайт делала с выборкой всё работало, а здесь не хочет.
Но делала на другом сервере. Может в этом дело?

   
 
 автор: mihdan   (25.06.2008 в 16:54)   письмо автору
 
   для: Stasycat   (25.06.2008 в 10:50)
 

<?
$query 
"UPDATE `zayavki` SET `tsena`='$cost'  WHERE `id_zayavki`=$id";
?>

   
 
 автор: Trianon   (25.06.2008 в 11:11)   письмо автору
 
   для: Stasycat   (25.06.2008 в 10:50)
 

И в phpMyAdmin тоже не проходят такие запросы?

Если бы Вы прикрепили архив с дампом таблицы (в phpMyAdmin его можно получить из вкладки Экспорт) , можно было бы попытаться выяснить, что за беда настигла Вашу базу.

   
 
 автор: Stasycat   (25.06.2008 в 10:50)   письмо автору
 
   для: Trianon   (25.06.2008 в 10:23)
 

Я же написала КРОМЕ ВЫБОРКИ SELECT ... WHERE ...
дело в том, что у меня не работает выборка с where, также как и UPDATE ... SET ...
Я перепробовала уже все варианты. Я не знаю, что за версия у меня такая странная. Не работает. Пишу
$query = "UPDATE zayavki SET tsena='$cost'  WHERE id_zayavki='$id'";
$result = mysql_query($query) or die("Запрос ошибочный");
$query_t = "select * from zayavki WHERE id_zayavki='$id'";
$result_t = mysql_query($query_t) or die("Запрос ошибочный");


Не отбирает по where, как только я не меняла кавычки и скобки. Поэтому я не могу сделать короче. Ведь сама не глупая, понимаю, что так легче и проще. Но не пашет так (аж слёзы наворачиваются). Приходится выкручиваться циклами всякими.
Может, Вы сталкивались с такой же проблемой?

   
 
 автор: Trianon   (25.06.2008 в 10:23)   письмо автору
 
   для: Stasycat   (25.06.2008 в 09:12)
 

скрипт выдает данные за позавчера.
Поменяете -2 на -1 - станет выдавать за вчера.
поменяете на 0 - станет выдавать за сегодня.

Вывод сделан в результате анализа скрипта.
Скрипт этот сапрашивает у SQL-сервера все записи из таблицы vnutr_zayavki, в то время как нужны ему лишь записи за определенный день. И потом на уровне php пропускает большую часть запрошенного.
Для каждой из оставшихся записей, он формирует отдельные запросы к SQL, причем запросы совершенно одинаковые - на всю таблицу, а не на конкретный id_obekta . И получая (на каждом цикле!) полную таблицу данных, опять таки пропускает большую их часть.

Вместо всего этого безобразия почти наверняка достаточно одного запроса, что-то вроде

SELECT vz.*, o.* 
   FROM vnutr_zayavki AS vz
    JOIN      obekty  AS o 
      ON      vz.id_obekta = o.id_obekta
  WHERE   DATE(`data_vnutr_zayavki`) = DATE(NOW() - INTERVAL 1 DAY)
      AND vz.n_vnutr_zayavki <> $n_vnutr_zayavki_vyvod

   
 
 автор: Stasycat   (25.06.2008 в 09:12)   письмо автору
 
   для: Trianon   (24.06.2008 в 17:57)
 

2-ухдневная давность мне не нужна. Мне ВЧЕРАШНИЕ нужны, а не за вчера и сегодня.

[поправлено модератором]

   
 
 автор: Trianon   (24.06.2008 в 17:57)   письмо автору
 
   для: Stasycat   (24.06.2008 в 17:31)
 

Если Вам абсолютно всё равно, как будет достигнут результат ( а автору этого скрипта именно так и было), то проще всего добавить зависимость от дня - так:
Вот эту строку $data_now = date("Y-m-d"); поменять на
$days  = -2; 
$data_now = date("Y-m-d", time() + $days * 24 * 3600);

в данном случае -2 будет означать запрос заявок двухсуточной давности.

[поправлено модератором]

   
 
 автор: Stasycat   (24.06.2008 в 17:33)   письмо автору
 
   для: Trianon   (24.06.2008 в 17:29)
 

Выводятся заявки, которые составили сегодня, вернее ссылки на эти заявки.

   

Сообщения:  [1-10]    [11-20]  [21-23] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования