Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте, сделал у себя на сайте систему регистрации и т.д...дошел до "Мои гости"...Всё работает, но если один и тот же человек посетил меня 10 раз за день, то из базы он и выводиться на странице 10 раз...например в 12 дня, в час, в два и т.д...а я бы хотел что б этот гость выводился только 1 раз из базы...то есть его последний визит...как вот сделать? ...Я уже голову сломал над этим...что только не пробовал...в mysql слабоват(
У меня на данный момент имеется всего 1 таблица users которая хранит в себе guest, id_guest, id_user и date где guest - это гость, id_user - это его id и date - это год,месяц,день: часы, минуты, секунды. Будьте добры, помогите пожалуйста мне именно с этими данными. Мне просто суть сейчас важна. А то у меня 1 таблица и я сейчас совсем растерялся,как мне быть(
Я даже пробовал просто сначало INSERT потом else и UPDATE где дата равно этому году, но все равно не выходит... Наверника так нельзя с mysql
Неактивен
Я так понял, есть таблица users, в которой имеются поля date и id_user.
Если нужно выбрать самое позднее посещение конкретного пользователя, то оно реализуется таким запросом:
SELECT max(`date`) FROM `users` WHERE `user_id`=ID_НУЖНОГО_ЮЗЕРА
или
SELECT `date` FROM `users` WHERE `user_id`=ID_НУЖНОГО_ЮЗЕРА ORDER BY `date` DESC LIMIT 1;
Неактивен
Я воспользовался 2ым вариантом, теперь гость выводиться только 1 раз, но если гостей было несколько, к примеру 6-7 то выведется только последний...а я хотел добиться именно то, что бы эти гости...если их 7 было за день...то что бы они выводились все...при этом только 1 раз...как в mail(e)...зашел юзер ко мне в гости в 2 часа дня, потом зашел в 8 вечера, то что визит был в 2 он удаляется, а тот что последний - остается и выводиться...как вот сделать...(
Неактивен
Неактивен
Благодарю вас, вы мне очень помогли. Всё дело было в GROUP BY ... без него бы вообще никак...
Спасибо еще раз за подробный ответ! Успехов!!!
Неактивен
Доброе время суток deadka, у меня к вам такой вопрос. Создал приватную переписку на своем сайте,в БД в поле full_date `datetime` попадает дата и время, а в поле id `auto_increment` идет нумерация всех сообщений. Так вот есть дивный блок с классом text где отображается вся переписка, но есть одна проблема. Есть автор и есть получатель. Так вот авторы видят всегда свои сообщения вверху...потому что я сделал: ORDER BY full_date DESC но они же накапливаются...и выходит что получатель свои сообщения хоть и видит вверху, то полученные видит внизу, потому что они опусаются из за отправленных сообщений...( Соответственно в дивном блоке text появляется аватарка, логин и т.д... потому что я сделал 2 таблицы. 1ая для авторов, 2ая для получателя. И вот хоть я и поставил обоим таблицам по ORDER BY full_date DESC все равно выводяться они не так....Мне надо что б шла обычная привычная глазу переписка, что б в любом случае сообщения что полученные что отправленные появлялись вверху...а вся переписка уходила вниз...Я голову ломал долго...вот решил снова вам написать...
вы наверное спросите зачем 2 таблицы вывожу...к 1ой я сделал выборку из бд по автору....а к 2ой сделал выборку информации по получателю. Может я логически не так рассуждаю...я не знаю уже(...поэтому сюда вам написал. Не могу сообразить( Буду рад услышать от вас такой же подробный ответ.
Неактивен
Воспользуйтесь union. Идея такая:
mysql> create table t_5639_1(id int); Query OK, 0 rows affected (0.03 sec) mysql> create table t_5639_2(id int); Query OK, 0 rows affected (0.00 sec) mysql> insert into t_5639_1 values(5),(1),(3); Query OK, 3 rows affected (0.01 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> insert into t_5639_2 values(4),(2),(6); Query OK, 3 rows affected (0.00 sec) Records: 3 Duplicates: 0 Warnings: 0 mysql> select * from t_5639_1 union select * from t_5639_2; +------+ | id | +------+ | 5 | | 1 | | 3 | | 4 | | 2 | | 6 | +------+ 6 rows in set (0.00 sec) mysql> select * from t_5639_1 union select * from t_5639_2 order by id; +------+ | id | +------+ | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | +------+ 6 rows in set (0.00 sec) mysql> select * from t_5639_1 union select * from t_5639_2 order by id desc; +------+ | id | +------+ | 6 | | 5 | | 4 | | 3 | | 2 | | 1 | +------+ 6 rows in set (0.00 sec)
Неактивен
Я лучше переспрошу, что бы не напортачить. Как я понял, вы создали 2 таблицы в БД с названиямиt_5639_1 и t_5639_2
mysql> create table t_5639_1(id int);
Query OK, 0 rows affected (0.03 sec)
mysql> create table t_5639_2(id int);
Query OK, 0 rows affected (0.00 sec)
Далее вижу вы вносите в первую эти значения, но тут я теряюсь, смотрите... Потому что первый раз вижу запись такого рода: Records: 3 Duplicates: 0 Warnings: 0 что это? Или это вы так назвали поля, куда потом летят значения (5),(1),(3); или же наоборот? ...Простите конечно, но ... расшифруйте так сказать ^^... Хочется понять очень.
mysql> insert into t_5639_1 values(5),(1),(3);
Query OK, 3 rows affected (0.01 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> insert into t_5639_2 values(4),(2),(6);
Query OK, 3 rows affected (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 0
Неактивен
insert into t_5639_1 values(5),(1),(3); - это означает вставить в таблицу три строки. Три записи, при этом ни одного дубля и ни одного предупреждения - одним словом, все в порядке .
Что касается полей - в каждой из таблиц всего одно поле - id.
После вставки вот такие значения:
mysql> SELECT * FROM t_5639_1; +------+ | id | +------+ | 5 | | 1 | | 3 | +------+ 3 rows in set (0.00 sec)
mysql> SELECT * FROM t_5639_2; +------+ | id | +------+ | 4 | | 2 | | 6 | +------+ 3 rows in set (0.00 sec)
Следующий шаг - объединить таблицы через union:
mysql> SELECT * FROM t_5639_1 UNION SELECT * FROM t_5639_2; +------+ | id | +------+ | 5 | | 1 | | 3 | | 4 | | 2 | | 6 | +------+ 6 rows in set (0.00 sec)
Все бы ничего, но данные не отсортированы. Сортируем по убыванию:
mysql> SELECT * FROM t_5639_1 UNION SELECT * FROM t_5639_2 ORDER BY id DESC; +------+ | id | +------+ | 6 | | 5 | | 4 | | 3 | | 2 | | 1 | +------+ 6 rows in set (0.00 sec)
Неактивен
Хм, вот оно в чем дело) Класс, не знал что можно соединять 2 таблицы. Это бы решило много моих проблем, которые встречались ранее... Теперь на сколько я понимаю, исчезнет проблема потому что на странице теперь у меня будет не 2 таблицы (которые мешали друг другу) а 1 в которой выборка будет вот таким образом: SELECT * FROM t_5639_1 UNION SELECT * FROM t_5639_2 ORDER BY id DESC; и все благодаря UNION. Правильно понял? Если так то пойду неприменно пробовать ^^
Неактивен
Как я понимаю это легкое соединение 2ух таблиц: SELECT * FROM t_5639_1 UNION SELECT * FROM t_5639_2 ORDER BY id DESC;
а что если у меня по сложней :SELECT * FROM messages WHERE poluchatel='Я' and author='Друг' ORDER BY id DESC UNION SELECT * FROM messages2 WHERE poluchatel='Наоборот уже Друг' and author='Наоборот уже Я' ORDER BY id DESC
Или же правильней будет так? SELECT * FROM messages WHERE poluchatel='Я' and author='Друг' UNION SELECT * FROM messages2 WHERE poluchatel='Наоборот уже Друг' and author='Наоборот уже Я' ORDER BY id DESC , так же правельней? Будет ли запрос работать? Или он слишком сложен для UNION (а) ? Попробовал...что то не получается..
Неактивен
deadka, жду ответа от вас
Неактивен
Всё разобрался, почитал документацию.
Неактивен
Здравствуйте, сегодня столкнулся с такой проблемой: На готовящемся мной сайте начал писать блок админа, дошел до РЕДАКТИРОВАНИЯ. В форму текст из базы вытаскивает (но с некоторыми дефектами - не об этом сейчас) а из формы после редактирования выдает условие "не все поля заполнены". Помогите выяснить в чём ошибка, буду очень признателен.
if (isset($img) && isset($fam) && isset ($name) && isset ($otch) && isset ($date) && isset ($meta_d) && isset ($meta_k) && isset ($text))
{
/*Здесь пишем что можно заносить информацию в базу*/
$result = mysql_query ("UPDATE biograf SET img='$img', fam='$fam', name='$name', otch='$otch', date='$date', meta_d='$meta_d', meta_k='$meta_k', description='$description', text='$text' WHERE id='$id'");
if ($result == 'true') {echo "<p class='text_title_green'>Биография успешно обновлена</p>";}
else {echo "<p class='pod_zag'>Биография не обновлена!</p>";}
}
else
{
echo "<p class='text_title_yelow'>Вы ввели не всю информацию в форму, потому биография вашего писателя не может быть обновлена</p>";
}
Неактивен
Вопрос, который Вы задали не имеет к MySQL отношения. Вопросы по php можно задать в соотв. разделе на webew.ru
Неактивен