Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Топ: Небольшие вопросы по MySQL
Сообщения
Kuroi

народ каким запросом можно вывести из базы данные отфильтровав их например по названию мира. Допустим есть мир Atom к этому миру еще два мира относятся Atom_2 и Atom_3 вот мне надо чтобы при наборе слова атом вывод фильтровал не только один этот мир но и все миры относящиеся к нему.
$query = mysql_query("SELECT `chat`,`date`,`world` FROM `SpellLogChat` WHERE `world` = 'Atom' ORDER BY `id` DESC") or die(mysql_error());

01 Дек 2012, 19:11
Виктор

Kuroi,
[php:1:30055817c2]$query = mysql_query("SELECT `chat`,`date`,`world` FROM `SpellLogChat` WHERE `world` LIKE 'Atom%' ORDER BY `id` DESC") or die(mysql_error());[/php:1:30055817c2]

01 Дек 2012, 19:15
megavolt

Скажите пожалуйста как вывести мне записи которые были не за прошедшие 7 дней, а за прошлую неделю в настоящий момент это с 19.11.2012 по 25.11.2012

$form = $mysqli->query("SELECT * FROM `".$prefix."zap` WHERE (Что тут написать надо не знаю) ORDER BY `time`");

За ранее большое спасибо.

01 Дек 2012, 23:18
Виктор

megavolt,
[php:1:e70b9b1ad4]<?
$ned=60*60*24*7;
$form = $mysqli->query("SELECT * FROM `".$prefix."zap` WHERE `time`>=".(time()-$ned*2)." AND `time`<=".(time()-$ned)." ORDER BY `time`");
?>[/php:1:e70b9b1ad4]

02 Дек 2012, 7:05
megavolt

Виктор, Нет это совсем не то.
это будут выводится записи сделанные не ранее 14 дней назад и не позднее 7 дней назад. А мне надо именно за прошедшую неделю. То есть от реального времени тут отсчитывать не нужно не чего.

Уточню что за прошлую неделю я имею введу вот так 19.11.2012, 00:00:00 по 25.11.2012 23:59:59


Немного по извращался, но пока больше вариантов не нашел и не придумал. Скажите можно так использовать или все таки можно более легкий способ найти?

if(date("w")==1){$hz=7;}
if(date("w")==2){$hz=8;}
if(date("w")==3){$hz=9;}
if(date("w")==4){$hz=10;}
if(date("w")==5){$hz=11;}
if(date("w")==6){$hz=12;}
if(date("w")==0){$hz=13;}

$nned=mktime(0, 0, 0, date("m"), date("d")-$hz, date("Y"));
$kned=$nned+(60*60*24*7-1);

$form = $mysqli->query("SELECT * FROM `".$prefix."zap` WHERE `time`>=".$nned." AND `time`<=".$kned." ORDER BY `time`");

02 Дек 2012, 11:00
ma3uk

Подскажите как объединить несколько UPDATE запросов.
Пример запросов:
UPDATE `table1` SET`time`=10 WHERE `site`='domain.com';
UPDATE `table2`;
SET`time`=10 WHERE `site`='domain.com'
UPDATE `table3` SET`time`=10 WHERE `site`='domain.com';

Поля идентичны различаются таблицы только названием.

11 Дек 2012, 22:27
wapmorgan

ma3uk, у вас неправильная архитектура, раз есть несколько таблиц с полем time, в которые повторяющиеся записи.

11 Дек 2012, 22:49
ma3uk

wapmorgan, таблицы одинаковы только для примера. На самом деле совпадают только поля site и time.

11 Дек 2012, 23:02
wapmorgan

всё равно неверная архитектура, если данные дублируются. Для этого придумали внешние ключи.

11 Дек 2012, 23:26
Diversant

Помогите, нужна функция для экранирования всей нечести в sql, но которой нужна только строка.
Т.е. mysql_real_escape_string () и т.п. не подходят, так как требуют дескриптор.
А мне нужно формировать дамп sql и есть только строка на вход.

11 Дек 2012, 23:27
Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.