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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Проблема (не извлекаются данные из базы)

Сообщения:  [1-9] 

 
 автор: cheops   (07.01.2005 в 12:53)   письмо автору
 
   для: maDMo3r   (07.01.2005 в 03:14)
 

А ну в принципе у нас так и есть... я просто забыл переделать блок if? Если что-то не заладится пишите...

   
 
 автор: maDMo3r   (07.01.2005 в 03:14)   письмо автору
 
   для: cheops   (07.01.2005 в 01:12)
 

наоборот :) если нету а если есть то не добавлятся

   
 
 автор: cheops   (07.01.2005 в 01:12)   письмо автору
 
   для: maDMo3r   (06.01.2005 в 22:56)
 

Т.е. данные должны добавляться только в том случае, если такой IP-адрес уже имеется в таблице?
<?php 
  //Подключаемся к базе данныз 
  $db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd); 
  mysql_select_db($dbname,$db_connect); 
  $query = "select * from stat where id_ip='".$id_ip."'"; 
  $result = mysql_query($query,$db_connect); 
  if(!$result) exit("Ошибка в синтаксисе SQL-запроса"); 
  if(mysql_num_rows($result)>0) echo "Такой IP-адрес в базе есть"; 
  else
  {   
    echo "Такого IP-адреса в базе нет"; 
   $num = mysql_query("insert into stat values (0,'$ip','$port','$agent', NOW())"); 
   if(!$num) 
   { 
     echo "Ваши данные не добавлены"; 
     exit (mysql_error()); 
   } 
   else 
   { 
     echo "Ваши данные добавлены"; 
   } 
 }
?>

   
 
 автор: maDMo3r   (06.01.2005 в 22:56)   письмо автору
 
   для: maDMo3r   (06.01.2005 в 22:36)
 

Отлично пашет только вот оно постоянно добавляет в базу данных .. а мне нужно только тогда когда $result = false :)

Вот весб код


<?
 //Подключаемся к базе данныз
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db_connect);
  $query = "select * from stat where id_ip='".$id_ip."'";
  $result = mysql_query($query,$db_connect);
  if(!$result) exit("Ошибка в синтаксисе SQL-запроса");
  if(mysql_num_rows($result)>0) echo "Такой IP-адрес в базе есть";
  else  
  echo "Такого IP-адреса в базе нет";
  $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
            
if (!$dbcnx)
{
    echo ("<p>Невозможно подключится к базе данных </p>");
    exit();
}
    if(!@mysql_select_db($dbname,$dbcnx))
        {
            echo ("<p>база данных не отвечает </p>");
            exit();
            }
        $num = mysql_query("insert into stat values (0,'$ip','$port','$agent', NOW())");
if(!$num)
{
echo "Ваши данные не добавлены";
exit (mysql_error());
}
else
{
echo "Ваши данные добавлены";
                }
?>

   
 
 автор: maDMo3r   (06.01.2005 в 22:36)   письмо автору
 
   для: cheops   (06.01.2005 в 22:20)
 

извените работает :)

   
 
 автор: cheops   (06.01.2005 в 22:20)   письмо автору
 
   для: maDMo3r   (06.01.2005 в 22:11)
 

Для этого следует реализовать примерно следующий код:
<?php
  $query = "select * from stat where id_ip='".$id_ip."'"; 
  $result = mysql_query($query,$db_connect); 
  if(!$result) exit("Ошибка в синтаксисе SQL-запроса");
  if(mysql_num_rows($result)>0) echo "Такой IP-адрес в базе есть";
  else  echo "Такого IP-адреса в базе нет";
?>

   
 
 автор: maDMo3r   (06.01.2005 в 22:11)   письмо автору
 
   для: cheops   (06.01.2005 в 21:08)
 

А вот как мне сделать сравнение ? :)

   
 
 автор: cheops   (06.01.2005 в 21:08)   письмо автору
 
   для: maDMo3r   (06.01.2005 в 14:48)
 

Хм... а где загвоздка... т.е. где сбоит скрипт? Пока из текста видно, то что он должен заносить новую запись при каждом новом обращении к базе данных, не зависимо от сравнения с уже существующим IP-адресом, так как результаты первой выборки нигде не используются...

   
 
 автор: maDMo3r   (06.01.2005 в 14:48)   письмо автору
 
 

Незнаю в чем у меня проблема не вытаскивается из Базы данных



<?
include "sql.php";
if(empty($_SERVER['REMOTE_ADDR']))
die("<b>Ваш IP адрес не определён!</b>");
$agent = $_SERVER['HTTP_USER_AGENT'];
$port = $_SERVER['SERVER_PORT'];
$ip = $_SERVER['REMOTE_ADDR'];
?> 
<?
// Если ip-адрес определен
if(isset($_SERVER['REMOTE_ADDR']))
 {
$ip_set = $_SESSION['ip'] = "$ip";
}
else
 {
 //Подключаемся к базе данныз
$db_connect = mysql_connect($dblocation,$dbuser,$dbpasswd);
mysql_select_db($dbname,$db_connect);
$query = "select * from stat where id_ip='".$id_ip."'";
$result = mysql_query($query,$db_connect);
}
//Если подключение к базе было успешно
if(!$result)
 {
        echo "$id_ip";
        }
        else
        {
            echo "Произошли ошибки";
            }        
if($id_ip)
 {
            $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
            
if (!$dbcnx)
 {
     echo ("<p>Невозможно подключится к базе данных </p>");
    exit();
}
    if(!@mysql_select_db($dbname,$dbcnx))
        {
            echo ("<p>база данных не отвечает </p>");
            exit();
            }
        $num = mysql_query("insert into stat values (0,'$ip','$port','$agent', NOW())");
if(!$num)
{
echo "Ваши данные не добавлены";
exit (mysql_error());
}
else
{
echo "Ваши данные добавлены";
} 
            }
?>
?>


Общий смысл этого скрипта ( Я хочу чтобы когда пользователь заходит на страницу и сразу идет запрос на базу данных и если в базе данных есть ип оно сравнивает ип с ип\ом пользователя и если они не совпадают ! то информация записывается в базу данных!

база данных вот если нужна

id_stat int(6) not null auto_increment,
id_ip text,
port text,
stats text,
time datetime default null,
PRIMARY KEY (id_stat)
) TYPE=MyISAM;

   

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime