1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

[PHP] Как реализовать?

Тема в разделе "Оффтопик", создана пользователем Fiks, 26 июн 2015.

  1. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Как грамотно реализовать вывод информации за счет IF.

    PHP:
    session_start();
    $username $_SESSION["session_username"];
    $table='usertbl';
    include(
    "includes/connection.php");
    $activ mysql_query("SELECT `ags` FROM `usertbl` WHERE `username`='$username'");
    if(
    $activ 1) {
         echo 
    "ВЕРНО";
    } else {
                 echo 
    "НЕВЕРНО";
             }

    По какой -то причине, он не влияет на данные из БД. В столбце "ags", я меняю значение на 0, но он все равно пишет "ВЕРНО"... В чем проблема или запрос неверен? Помогите.
     
  2. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    PHP:
    $activ mysql_query("SELECT `ags` FROM `usertbl` WHERE `username`='$username'");
    Ужас. Почитайте лучше про MySQL PDO. Заодно от проблем с SQL-инъекциями избавитесь.
     
  3. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Половина уже написана на MySQL, а переписывать не хочу. А PDO я и вовсе не знаю, а так же ее механика.

    Нет, "Тождественно равно" ничего не изменило.
     
  4. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Когда взломают, думаю точно задумаешься о переписывании. Хотя там переписывать немного...
     
  5. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Потом перепишу, сейчас хочу понять как сделать на MySQL, после буду переделывать на PDO и изучать его.
    Так можете сказать мою ошибку и как ее разрешить?
     
  6. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    На счет сессий, все работает, имеется успешный вывод баланса пользователя по nickname.
     
  7. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    Ошибка в том, что ты даже с mysql_* функциями не умеешь правильно работать. Это древнейшее API, которое вскоре будет выпилено. Переходи на PDO пока не поздно.
     
  8. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Переход я буду выполнять позже, так на счет проблемы, мне нужно использовать "mysql_result"?
    Напишите пожалуйста, как можно сделать правильно и грамотно.
    UP. Помогите!
     
  9. Reality_SC

    Reality_SC Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    Reality_SC
    Конечно нужно, я же тебе уже писал, что да; функция mysql_query возвращает именно его.
    http://php.net/manual/ru/function.mysql-query.php
    Как с ним работать, читай тут:
    http://php.net/manual/ru/function.mysql-result.php

    По поводу перехода с mysql, советую немедленно перейти с mysql на mysqli, по синтаксису практически одинаковы, а PDO это можно и попозже.
     
  10. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    PHP:
    session_start();
    $db = new PDO('mysql:host=localhost;port=3306;dbname=','user','pass');
    $table 'usertbl';
    $stmt $db->prepare('SELECT * FROM '.$table.' WHERE username=:user');
    $stmt->execute(['user'=>$_SESSION['session_username']]);
    $result $stmt->fetch(PDO::FETCH_ASSOC);
    if (!empty(
    $result)) {
        echo 
    'Верно';
    } else echo 
    'Неверно';
     
  11. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Большое спасибо, я смотрю PDO сильно не отличается)
     
  12. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    И он защищает от sql инъекций.
     
  13. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    А кодировку соединения указать?
     
  14. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Да, если можно. )
     
  15. saharin94

    saharin94 Старожил Пользователь Заблокирован

    Баллы:
    173
    PHP:
    new PDO('mysql:host=localhost;port=3306;dbname=minecraft;charset=utf8','user','pass');
     
  16. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Спасибо.
     
  17. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    Есть 2 варианта.
    PHP:
    $db = new PDO('mysql:host=localhost;port=3306;charset=utf8;dbname=','user','pass');
    И 2 вариант с указанием аргументов, советую его и его аргументы.
    PHP:
    $db = new PDO('mysql:host=localhost;port=3306;dbname=','user','pass',[
        
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
        
    PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true,
        
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
        
    PDO::ATTR_EMULATE_PREPARES => false,
    ]);
     
  18. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Что это за аргументы? Что они делают? (в PDO)
     
  19. Vladlen_198

    Vladlen_198 Старожил Пользователь

    Баллы:
    108
    Skype:
    ultrashock98
    Имя в Minecraft:
    UltraShock
    Скажу какие аргументы я написал,
    1. Указывает кодировку
    2. Включает буферизацию запросов
    3. Указывает тип вывода ошибок
    4. Отключает эмуляцию запросов
     
  20. Автор темы
    Fiks

    Fiks Активный участник

    Баллы:
    61
    Имя в Minecraft:
    Fiks
    Спасибо.
     

Поделиться этой страницей