|
|
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Как написать правильно условие, которое проверяет прошел запрос к базе или нет. if (!mysql_query ("update counters set time='$dates' where ip_adr='$ips'")) можно ли так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:40 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:45 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 12:52 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Так будет работать мой запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:15 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Вот у меня так if (!mysql_query ("update counters set last_time='$dates', counter=counter+1 where ip_adr='$ips'")) {mysql_query("insert into counters values ('','$ips','$dates','1')");} Update проходит. То что в {} не выполняется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 13:32 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Может тогда так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 14:42 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Berkut спасибо за ответ. Как это читается mysql_num_rows(mysql_query()) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 15:00 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Точнее говоря как работает это условие. Почему количество записей не сравнивается с 0? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 15:05 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
http://www.php.net/manual/ru Только для запросов SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query() возвращает указатель на результат запроса, или FALSE если запрос не был выполнен. В остальных случаях, mysql_query() возвращает TRUE в случае успешного запроса и FALSE в случае ошибки. Значение не равное FALSE говорит о том, что запрос был выполнен успешно. Он не говорит о количестве затронутых или возвращённых рядов. Вполне возможна ситуация, когда успешный запрос не затронет ни одного ряда. Попробовал выполнить Ваш пример и понял суть вопроса :) Дело в том, что при выполнении запроса Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 15:06 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
McLighterТочнее говоря как работает это условие. Почему количество записей не сравнивается с 0? Так оно сравнивается, т.к. mysql_num_rows вернет 0 , а условие !0 даст единицу 1 ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 15:08 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Опять то же самое update работает. Стираю из базы свой айпишник - ничего не добавляется. Счетчик не крутится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 15:21 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
McLighterОпять то же самое update работает. Стираю из базы свой айпишник - ничего не добавляется. Счетчик не крутится. Хм-м, не знаю у меня тест работает... Скорее всего у вас глюк. > update работает - он реально вставляет записи в БД или нет; смысл "работает": работает сам запрос update или выполняется условие if ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.03.2005, 17:08 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Пишу весь скрипт. (почему не работает) <?php //счетчик посещений. $dates=date('Y-m-d H:i:s', time()); $ips=$REMOTE_ADDR; $id2=mysql_connect("localhost","root",""); mysql_select_db ("document"); if ( !mysql_num_rows(mysql_query("select count(*) from counters where ip_adr='$ips'")) ) { // то вставляем, новую запись mysql_query("insert into counters values ('','$ips','$dates','1')"); } else { // иначе увеличиваем счетчик mysql_query("update counters set last_time='$dates', counter=counter+1 where ip_adr='$ips'"); } mysql_close($id2); ?> <?php // вывод счетчика $id=mysql_connect("localhost","root",""); mysql_select_db("document"); $t1=mysql_query("select sum(counter) from counters"); $sums=mysql_fetch_row($t1); $t2=mysql_query("select counter from counters where ip_adr='$ips'"); $yoursign=mysql_fetch_row($t2); mysql_close($id); ?> Всего посещений:<?echo $sums[0];?> Ваши посещения:<?echo $yoursign[0];?> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 09:05 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
2 Welly Сори это я ступил... Все правильно. Просто запрос Код: plaintext Поэтому надо ставить Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 10:19 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Да. Теперь все работает. Спасибо. Правда что такое 0 записей это 1 запись я так и не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 12:52 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
McLighterДа. Теперь все работает. Спасибо. Правда что такое 0 записей это 1 запись я так и не понял. Запись - это строка - результат запроса. В этой строке есть поле, в котором подсчитано кол-во записей, удовлетворяющих условию выборки. Так вот это поле будет хранить 0, если не будет найдено ни одной записи. Ясно? Деревянный пример: Есть запись "Записей соответсвующих условию = 0". Эта запись - 1 строка. В ней есть ноль. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 13:05 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
McLighterДа. Теперь все работает. Спасибо. Правда что такое 0 записей это 1 запись я так и не понял. :) ну вот например: Код: plaintext 1. 2. 3. 4. Делаем запросы: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 13:08 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Ну теперь все понял. Осталось только в update добавить условие $dates-last_time > 1часа, тогда все будет просто отлично. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 13:21 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
McLighterНу теперь все понял. Осталось только в update добавить условие $dates-last_time > 1часа, тогда все будет просто отлично. [off] гы-гы..... Сегодня смотрел "Осторожно, Модерн!" Так там прапорщик Задов давал выкуп за сына - ... со словами.... все.. все, что было заработано на квартиру отдать придется.. А вдеь не хватало всего 350 000... Теперь снова все сначало собирать все5 350 117 рублей заново собирать....;))))) [off] Мак, я думал, что тех топиков, что ты по датам насоздавал должно было хватить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 13:32 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
2Berkut для более быстрой выборки надо использовать select count(*) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 13:33 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Я и не прошу готового решения. Я просто сказал чем буду сейчас заниматься. А как сделать это я и так догадываюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 13:34 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Очень извиняюсь, но что всетаки не так: <? $id=mysql_connect("localhost","root",""); mysql_select_db("document"); $dates=date('Y-m-d H:i:s', time()); $mes=mysql_query("SELECT UNIX_TIMESTAMP($dates)-UNIX_TIMESTAMP(last_time) from counters"); while($res=mysql_fetch_row($mes)) {echo $res[0];} mysql_close($id); ?> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 13:56 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Николай aka Motodor2Berkut для более быстрой выборки надо использовать select count(*) Задача-то не стояла в такой формулировке. А насчет select count(*) ..., то не факт. Потому что * - это могут быть совершенно разные поля таблицы, и их может быть несколько, причем не проиндексованные. Если записей в таблице очень много, то select count(*) работает медленно. Но утверждать не буду, т.к. сам тестов не делал :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 14:32 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
McLighterОчень извиняюсь, но что всетаки не так: <? $id=mysql_connect("localhost","root",""); mysql_select_db("document"); $dates=date('Y-m-d H:i:s', time()); $mes=mysql_query("SELECT UNIX_TIMESTAMP($dates)-UNIX_TIMESTAMP(last_time) from counters"); while($res=mysql_fetch_row($mes)) {echo $res[0];} mysql_close($id); ?> И как можно понять на быстрый взгляд, что не так? Может как ругается... Что вообще происходит? И как должен работать скрипт? ЗЫ для удобства читаемости кода на форуме пользуйтесь плиз кнопкой SRC :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 14:36 |
|
||
|
(PHP&MySQL) Условие с запросом.
|
|||
|---|---|---|---|
|
#18+
Поэтому надо добавить в условие запроса mysql_num_rows(). mysql_num_rows() returns the number of rows in a result set. This command is only valid for SELECT statements. To retrieve the number of rows affected by a INSERT, UPDATE or DELETE query, use mysql_affected_rows(). Так что вредные советы даете батенька ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2005, 14:55 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=32955793&tid=1478636]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 247ms |
| total: | 525ms |

| 0 / 0 |
