|
|
 294.9 Кб |
|
|
для: Trianon
(26.06.2008 в 18:49)
| | Дамп в кодировке cp1251 с соответствующим содержимым я на всякий случай прикрепил к сообщению. | |
|
|
|
|
|
|
|
для: Stasycat
(26.06.2008 в 11:05)
| | Насколько я понимаю, у Вас кодировка, декларированная в БД и в таблицах, не соответствует фактической кодировке, в которой хранится в полях текст.
phpMyAdmin в них показывает форменную галиматью.
Конечно же WHERE, сравнивающие текстовые поля со строками, пропускать записи не будут.
Что вовсе не означает что WHERE не работают вообще.
Сравнение id с числом выполняется замечательно.
Вероятно, ранее Вы работали с серверами версии ниже 4.1 - там кодировки вообще никак не специфицируются. | |
|
|
|
|
 321.7 Кб |
|
|
для: Trianon
(25.06.2008 в 11:11)
| | Вот арив экспортированный из моего phpMyAdmin - 2.9.0-rc1
Если чем-то можете помочь, буду рада :-)
А то я прошлый сайт делала с выборкой всё работало, а здесь не хочет.
Но делала на другом сервере. Может в этом дело? | |
|
|
|
|
|
|
|
для: Stasycat
(25.06.2008 в 10:50)
| |
<?
$query = "UPDATE `zayavki` SET `tsena`='$cost' WHERE `id_zayavki`=$id";
?>
|
| |
|
|
|
|
|
|
|
для: Stasycat
(25.06.2008 в 10:50)
| | И в phpMyAdmin тоже не проходят такие запросы?
Если бы Вы прикрепили архив с дампом таблицы (в phpMyAdmin его можно получить из вкладки Экспорт) , можно было бы попытаться выяснить, что за беда настигла Вашу базу. | |
|
|
|
|
|
|
|
для: 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, как только я не меняла кавычки и скобки. Поэтому я не могу сделать короче. Ведь сама не глупая, понимаю, что так легче и проще. Но не пашет так (аж слёзы наворачиваются). Приходится выкручиваться циклами всякими.
Может, Вы сталкивались с такой же проблемой? | |
|
|
|
|
|
|
|
для: 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
|
| |
|
|
|
|
|
|
|
для: Trianon
(24.06.2008 в 17:57)
| | 2-ухдневная давность мне не нужна. Мне ВЧЕРАШНИЕ нужны, а не за вчера и сегодня.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: 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 будет означать запрос заявок двухсуточной давности.
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Trianon
(24.06.2008 в 17:29)
| | Выводятся заявки, которые составили сегодня, вернее ссылки на эти заявки. | |
|
|
|
|