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

Форум MySQL

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

 

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

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

тема: Проблема (не извлекаются данные из базы)
 
 автор: 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;

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

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

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

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

   
 
 автор: 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:36)   письмо автору
 
   для: cheops   (06.01.2005 в 22:20)
 

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

   
 
 автор: 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 
"Ваши данные добавлены";
                }
?>

   
 
 автор: 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   (07.01.2005 в 03:14)   письмо автору
 
   для: cheops   (07.01.2005 в 01:12)
 

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

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

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

   
Rambler's Top100
вверх

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