Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сравнить ip посетителя с ip хранящимися в таблице
 
 автор: Guest11   (04.10.2006 в 16:57)   письмо автору
 
 

Скажите, пожалуйста, можно ли такое сделать? Имеется таблица с полями: id, ip, operator. Нужно сравнить ip посетителя с теми ip, что уже хранятся в таблице, и если такой же ip был найден, вывести на страницу оператора, что находится напротив.
А если в таблице нет такого ip, ничего не выводить.

   
 
 автор: valenok   (04.10.2006 в 17:09)   письмо автору
 
   для: Guest11   (04.10.2006 в 16:57)
 


<?php

echo mysql_result(mysql_query("SELECT `operator` FROM `table` WHERE `ip`='".$_SERVER['REMOTE_ADDR']."'"),0);

   
 
 автор: Guest11   (04.10.2006 в 18:06)   письмо автору
 
   для: valenok   (04.10.2006 в 17:09)
 

Большое спасибо! Но есть одна проблема. Когда у меня ip совпадает с ip в базе, выводится оператор, но если захожу с ip, которого нет в базе, вижу такую ошибку:
Warning: mysql_result() [function.mysql-result]: Unable to jump to row 0 on MySQL result index 4 in /home/...
Как бы избавиться от этой ошибки?

   
 
 автор: Guest11   (04.10.2006 в 19:35)   письмо автору
 
   для: Guest11   (04.10.2006 в 18:06)
 

Если перед mysql_result поставить @ , то ошибка исчезает. Но стоит ли здесь подавлять такую ошибку, или может есть другой способ её устранить?

   
 
 автор: cheops   (04.10.2006 в 21:51)   письмо автору
 
   для: valenok   (04.10.2006 в 17:09)
 

Исправьте запрос следующим образом
"SELECT COUNT(`operator`) FROM `table` WHERE `ip`='".$_SERVER['REMOTE_ADDR']."'"

   
 
 автор: Guest11   (04.10.2006 в 22:38)   письмо автору
 
   для: cheops   (04.10.2006 в 21:51)
 

Теперь, если ip есть в базе - выводит 1, если нет - 0.

   
 
 автор: cheops   (05.10.2006 в 00:45)   письмо автору
 
   для: Guest11   (04.10.2006 в 22:38)
 

Тогда можно использовать конструкцию LIMIT
"SELECT `operator` FROM `table` WHERE `ip`='".$_SERVER['REMOTE_ADDR']."' LIMIT 1"

   
 
 автор: Trianon   (05.10.2006 в 09:26)   письмо автору
 
   для: Guest11   (04.10.2006 в 16:57)
 


<?php 
 $ip 
$_SERVER['REMOTE_ADDR'];
 
$res mysql_query("SELECT `operator` FROM `table` WHERE `ip`='$ip' ");
 if(
$res && mysql_num_rows($res)) 
       echo 
mysql_result($res,0); 
?>

   
 
 автор: Guest11   (05.10.2006 в 13:01)   письмо автору
 
   для: Trianon   (05.10.2006 в 09:26)
 

Большое спасибо!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования