Вэб-разработка
Учим PHP

code9 (off) [479]
24 ноября 2010, 03:35

о емае... Расскажи мне логику запроса, я по человечески составлю. Что тебе нужно там получить. Юзаи mysqli.
-------
code9 (off) [479]
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 (off) [623]
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 [10176]
24 ноября 2010, 22:12

(ot='$l' AND komu='$login') OR (ot='$login' AND komu='$l')
эта конструкция убивавает всю скорость. Нужно думать над логикой.
И проверь есть ли индексы на ot и komu. Без индексов должна быть полная опа.
-------
shpien (off) [623]
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 [10176]
24 ноября 2010, 23:20

А нужно узнавать?
Если нужно узнавать, то делай селект по самому уникальному параметру (-ам).
Или записывай свой id и убери autoincrement.
-------
shpien (off) [623]
25 ноября 2010, 00:50

mysql_insert_id(); показывает последний id
блин, сделал всё-таки , но оно того стоило, проверил, старым способом страница генерировалась 2,4 , сейчас 0,42 , оно того стоило :)
-------
Profi Administrator [10176]
25 ноября 2010, 01:23

shpien, может и так, но всегда сомневался в надёжности mysql_insert_id. Предпочитаю в таких случаях задавать id самостоятельно.
-------
shpien (off) [623]
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 [10176]
25 ноября 2010, 01:53

shpien, я вообще не понимаю для чего нужен этот перебор значений и это явно не оптимальный метод. Определись какой параметр тебе нужен и не мучий базу.
И смысл формировать запрос, а потом вырезать из него последний параметр? Формируй сразу нужный запрос.
-------

Ответить на тему

стр. Пред. 1,2,3 ... 79,80,81 ... 87,88,89 След.

стр.  

Вэб-разработка
Список форумов
На главную

Последние темы

Регистрация
Вход

0.028 сек
SQL: 4