ФорумРазработкаБазы данных → Запрос: максимальное значение

Запрос: максимальное значение

  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 18 декабря 2008 г. 15:54

    Всем привет. Я в php начил шарится не так уж давно, отсюда и получился может быть совсем нелепый вопрос, но будте добры объясните пожалуйста в чем длео :)


    <?php
    $ip_c = $_SERVER["REMOTE_ADDR"];
    $timedate = date("H:i:s d.m.Y");
    //echo "$ip_c";

    $connect = mysql_connect("localhost", "root", "12345")
    or die("Не могу подключиться" ); // сделать test текущей базой данных
    mysql_select_db('db', $link) or die ('Не могу выбрать БД');

    $q = mysql_query("select count(*) from counter where IP='$ip_c'");
    $ROW = mysql_fetch_array($q);
    if ($ROW[0]>0)
    {$maxid = "SELECT MAX(id) FROM counter"; echo "$maxid";}
    else { $query = "INSERT INTO counter VALUES(NULL,'$ip_c', '$timedate')";}

    $result = mysql_query($query);

    echo "<a class=rer href='./count_show'>Посетители</a>";

    mysql_close($link);
    ?>



    вот код скрипта, почему же вместо значения $maxid на странице появляете именно надпись "SELECT MAX(id) FROM counter"?
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 18 декабря 2008 г. 15:57, спустя 2 минуты 57 секунд

    это кстати счетчик посещений по ip адресам :)
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 18 декабря 2008 г. 15:57, спустя 10 секунд

    сначала надо выполнить запрос к БД
    $q = mysql_query("select MAX(`id`) AS `maxid` from counter where IP='$ip_c'");

    потом профетчить результат
    $max = mysql_fetch_assoc($q);

    и оно будет в
    $max['maxid'];


    а нафиг оно надо max id?
    все умрут, а я изумруд
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 18 декабря 2008 г. 16:01, спустя 3 минуты 17 секунд

    спасибо, щас попробую
    max id надо что бы это цыфра выступала в роли количества посетителей :)
  • NRG

    Сообщения: 4761 Репутация: N Группа: в ухо

    Spritz 18 декабря 2008 г. 16:03, спустя 2 минуты 8 секунд


    спасибо, щас попробую
    max id надо что бы это цыфра выступала в роли количества посетителей :)
    это не есть корректно, юзай лучше COUNT
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 18 декабря 2008 г. 16:25, спустя 22 минуты 19 секунд

    блин, что то я вообще запутался
    если можно напишите плз
    такой алгоритм
    проверка в базе данных есть ли там значение переменной $ip_c
    если есть то echo максимальное значение поля id
    если нет то добавить в базу $ip_c, и echo максимальное значение поля id
  • md5

    Сообщения: 11960 Репутация: N Группа: в ухо

    Spritz 18 декабря 2008 г. 16:26, спустя 36 секунд

    в чем запутался?
    как делаешь?
    все умрут, а я изумруд
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 18 декабря 2008 г. 16:28, спустя 2 минуты 20 секунд

    вот как я сделал

    <?php 
    $ip_c = $_SERVER["REMOTE_ADDR"];
    $timedate = date("H:i:s d.m.Y");


    $connect = mysql_connect("localhost", "root", "12345")
    or die("Не могу подключиться" ); // сделать test текущей базой данных
    mysql_select_db('db', $link) or die ('Не могу выбрать БД');

    $q = mysql_query("select count(*) from counter where IP='$ip_c'");
    $q1 = mysql_query("select MAX(`id`) AS `maxid` from counter where IP='$ip_c'");

    $max = mysql_fetch_assoc($q1);
    $max['maxid'];
    if ($max[0]>0)
    { $query = "INSERT INTO counter VALUES(NULL,'$ip_c', '$timedate')"; echo "$max";}
    else {echo "$max";}
    $result = mysql_query($query);


    mysql_close($link);
    ?>
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 18 декабря 2008 г. 16:31, спустя 3 минуты 28 секунд

    http://teleos.ru/

    норм отжали за проект?
    Сапожник без сапог
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 18 декабря 2008 г. 16:35, спустя 3 минуты 31 секунду

    опа, ну вот и пароли придется менять
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 18 декабря 2008 г. 16:36, спустя 1 минуту 3 секунды

    <?php 
    $ip_c = $_SERVER["REMOTE_ADDR"];
    $timedate = date("H:i:s d.m.Y");


    $connect = mysql_connect("localhost", "длол_ru", "ро_ru")
    or die("Не могу подключиться" ); // сделать test текущей базой данных
    mysql_select_db('teleos_ru', $link) or die ('Не могу выбрать БД');

    if(!mysql_result(mysql_query("select exists (SELECT * FROM counter WHERE IP='$ip_c' LIMIT 1)"),0,0))
    {
    mysql_query("INSERT INTO counter VALUES(NULL,'$ip_c', '$timedate')");
    }
    $max = mysql_result(mysql_query("select MAX(`id`) AS `maxid` from counter where IP='$ip_c'"),0,0);
    echo $max;
    Сапожник без сапог
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 18 декабря 2008 г. 16:37, спустя 44 секунды


    опа, ну вот и пароли придется менять
    к локалхосту врядли я подсоединюсь :) так что можете не менять) да и я не кулхацкер. кулхацкер у нас тут НРГ (НеРыГать вроде так))
    Сапожник без сапог
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 18 декабря 2008 г. 16:43, спустя 6 минут 9 секунд

    работает, теперь попробую разобраться в этом коде :)
  • Tureg

    Сообщения: 55 Репутация: N Группа: Кто попало

    Spritz 19 декабря 2008 г. 5:03, спустя 12 часов 20 минут 1 секунду

    блин, не работает, этот код выводит не максимальное значение поля id, а самое первое в таблице :( help
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 19 декабря 2008 г. 10:28, спустя 5 часов 25 минут 16 секунд


    блин, не работает, этот код выводит не максимальное значение поля id, а самое первое в таблице :( help
    ложь и провокация! может быть вас интересует МАКСИМАЛЬНЫЙ? а не МАКСИМАЛЬНЫЙ ДЛЯ ЭТОГО IP ?
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!