ПравилаРегистрацияВход
НАВИГАЦИЯ

Учим PHP

Модераторы: нет
Список форумов » Вэб-разработкаНа страницу  1, 2, 3 ... 79, 80, 81 ... 86, 87, 88 
АВТОРСООБЩЕНИЕ
code9
Avatar
Сейчас нет на сайте
Репутация: 0
Регистрация: 5.03.2009
Всего сообщений: 480
24 ноября 2010, 03:35
о емае... Расскажи мне логику запроса, я по человечески составлю. Что тебе нужно там получить. Юзаи mysqli.
code9
Avatar
Сейчас нет на сайте
Репутация: 0
Регистрация: 5.03.2009
Всего сообщений: 480
24 ноября 2010, 03:38
вместо
f o r ( $ i = 0 ; $ i < m y s q l _ n u
m _ r o w s ( $ r e s ) ; $ i + + ) {
$ a = m y s q l _ f e t c h _ a r r a y
( $ r e s ) ;

это
while($mas = mysql_fetch_array($res)) {
print_r($mas);
}
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
24 ноября 2010, 19:33
code9, так это одно и то же, что с for , что с while да и к базе они не имеют никакого отношения
в таблице поиск ведётся От кого и Кому по логинам.
<?php $res=mysql_query("SELECT *,DATE_FORMAT(date, '%d.%m.%y %H:%i') AS date  FROM messages WHERE (ot='$l' AND komu='$login') OR (ot='$login' AND komu='$l') ORDER BY id DESC LIMIT $n,$mesonpage"); 

Довольно долго ищет таким обрзом сообщения.Если найти сообщение просто по id ,скорость выше в десятки раз. Вот я и хочу придумать, чтобы сообщения искались по id
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
24 ноября 2010, 22:12
(ot='$l' AND komu='$login') OR (ot='$login' AND komu='$l')
эта конструкция убивавает всю скорость. Нужно думать над логикой.
И проверь есть ли индексы на ot и komu. Без индексов должна быть полная опа.
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
24 ноября 2010, 22:47
Profi, сделал чтобы id сообщений первой страницы записывался в таблицу контактов.
почти всё готово, только вопрос
<?php mysql_query("INSERT INTO messages(komu, ot, body, new, date) VALUES('$l', '$login', '$body', '1', CURRENT_TIMESTAMP())"); 

как узнать id этой новой строки?
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
24 ноября 2010, 23:20
А нужно узнавать?
Если нужно узнавать, то делай селект по самому уникальному параметру (-ам).
Или записывай свой id и убери autoincrement.
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
25 ноября 2010, 00:50
mysql_insert_id(); показывает последний id
блин, сделал всё-таки , но оно того стоило, проверил, старым способом страница генерировалась 2,4 , сейчас 0,42 , оно того стоило :)
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
25 ноября 2010, 01:23
shpien, может и так, но всегда сомневался в надёжности mysql_insert_id. Предпочитаю в таких случаях задавать id самостоятельно.
shpien
Avatar
Имя: Руслан
Сейчас нет на сайте
Репутация: 3
Регистрация: 23.12.2008
Всего сообщений: 434
Откуда: Северо-Запад
25 ноября 2010, 01:33
загвоздка получилась.Сообщения накапливаются на одной странице.
стока id=223 OR id=223 OR id=222 OR id=221 OR id=220 OR id=219 OR id=218
как из неё убрать последнее OR id=218 ?
мне кажется, что с помощью preg_match , но в нём я так и не разобрался :(
Profi
Administrator
Avatar
Репутация: 98
Регистрация: 25.04.2006
Всего сообщений: 7072
Откуда: Уфа РБ
25 ноября 2010, 01:53
shpien, я вообще не понимаю для чего нужен этот перебор значений и это явно не оптимальный метод. Определись какой параметр тебе нужен и не мучий базу.
И смысл формировать запрос, а потом вырезать из него последний параметр? Формируй сразу нужный запрос.
Список форумов » Вэб-разработкаНа страницу Пред. 1, 2, 3 ... 79, 80, 81 ... 86, 87, 88 След.
 
стр.  
Страница 80 из 88
Часовой пояс: GMT + 4
Мобильный портал, Profi © 2005-2016
Время генерации страницы: 0.022 сек
Общая загрузка процессора: 4%
SQL-запросов: 4
Rambler's Top100