query($query)){ die('There was an error"> query($query)){ die('There was an error"> query($query)){ die('There was an error" />

Не удается получить информацию из базы данных с помощью urldecode

Я использовал urldecode для получения идентификатора участника с предыдущего сайта. В URL-адресе отображается правильный идентификатор, но я не могу получить информацию из базы данных.

members.php:

   <?php


$query = "SELECT name, memberID FROM members";

if(!$result = $db->query($query)){
    die('There was an error running your query[' . $db->error . ']');
}

while($row = $result->fetch_assoc()){
  printf ('
  • ' . $row['name'] . '
  • '); } ?>

    profiles.php:

      <?php
    
    $id = isset($_GET['memberID']);
    
    $query = "SELECT * FROM members WHERE memberID = '".$id."'";
    
    if ($result = $db->query($query)) {
    
    while ($row = $result->fetch_assoc()){
        printf("%s (%s)\n", $row["memberID"], $row['name']);
    }
    }
     var_dump($query);
    ?>
    

    Все, что я получаю, это пустой экран.

    0
    nl ja de
    memberID ! = memberId
    добавлено автор nice ass, источник
    @sachleen. Вы должны использовать IE. У Opera есть опция match case для этого: :)
    добавлено автор nice ass, источник
    var_dump ($ query) в profiles.php перед его выполнением.
    добавлено автор sachleen, источник
    @OneTrickPony сообщение, что в качестве ответа. Я искал опечатки с помощью Ctrl-Fing для переменной, но игнорировал случай!
    добавлено автор sachleen, источник
    @OneTrickPony Chrome на самом деле.
    добавлено автор sachleen, источник
    Каков результат echo $ query в profiles.php?
    добавлено автор Achrome, источник
    var_dump ($ query) дает мне string (39) "SELECT * FROM members WHERE memberID =" "
    добавлено автор P A Hemingstam, источник

    4 ответы

    Убедитесь, что вы используете правильную капитализацию memberId vs. memberID . Это очень важно.

    Do not передавать значения, полученные из GET/POST через urldecode . Они уже есть .

    1
    добавлено
    @PAHemingstam обычно предпочитает использовать $ id = isset ($ _ GET ['memberID'])? trim ($ _ GET ['memberID']): null . У вас нет magic_quotes_gpc , который включен?
    добавлено автор Explosion Pills, источник
    Что показывает var_dump ($ _ GET) ?
    добавлено автор Barmar, источник
    Спасибо :). Так что это должно быть просто $ id = $ _GET ['memberID']; ?
    добавлено автор P A Hemingstam, источник
    Нет, у меня нет :). Хм ... все еще не может заставить его работать.
    добавлено автор P A Hemingstam, источник
    array (1) {["memberId"] => string (1) "2"}
    добавлено автор P A Hemingstam, источник
    Интересно. Из того, что я вижу, я написал в коде код memberID
    добавлено автор P A Hemingstam, источник
    Виноват. Он говорит, что array (1) {["memberID"] => string (1) "2"}
    добавлено автор P A Hemingstam, источник

    Является ли memberID внутренним полем в базе данных или поле строки? Если это поле int, удалите одинарные кавычки в запросе на profiles.php.

    1
    добавлено
    MySQL будет автоматически преобразовывать строки в целые числа, если это необходимо, этот ответ неверен.
    добавлено автор Barmar, источник
    Пожалуйста, поместите это (как видно на php.net/manual/en/function.in-set.php) в начале страницы и сообщите нам, если что-то новое появится: ini_set ('display_errors', '1');
    добавлено автор Anthony Tietjen, источник
    Или поместите инструкцию эха после каждой переменной и после цикла while, а затем посмотрите, сколько отображаемых выражений эха отображается.
    добавлено автор Anthony Tietjen, источник
    Он говорит 1 (имя участника)
    добавлено автор P A Hemingstam, источник
    Спасибо! Удалены, но все еще не работают: - /
    добавлено автор P A Hemingstam, источник

    Я обнаружил пару проблем в коде:

    <Сильный> members.php

    while($row = $result->fetch_assoc()){
      printf ('
  • ' . $row['name'] . '
  • '); }

    Здесь вы используете функцию printf , которая имеет 1-й аргумент для строки . Исправьте это с помощью инструкции echo , как показано ниже:

    while($row = $result->fetch_assoc()){
      echo '
  • ' . $row['name'] . '
  • '; }

    <Сильный> profiles.php

    $id = isset($_GET['memberID']);
    

    Здесь вы устанавливаете значение $ id с возвращаемым значением функции isset (). Вместо этого вы должны установить значение из параметра GET, как показано ниже:

    if(isset($_GET['memberID']))    $id = $_GET['memberID'];
    

    Смотрите, если он работает.

    1
    добавлено
    Оно работает! Спасибо!! :-)
    добавлено автор P A Hemingstam, источник

    Попробуйте следующее на основе вашего кода и сообщите нам результаты:

    <?php
    $id = isset($_GET['memberID']) ? $_GET['memberID'] : 0;
    if($id > 0){
        $query = "SELECT * FROM members WHERE memberID = '".$id."'";
        $result = $db->query($query);
        if($result){
            echo "Rows found: " + $result->num_rows;
        } else {
            echo "No rows found";
        }
    } else {
        echo "memberID is 0";
    }
    ?>
    
    0
    добавлено
    phpGeeks
    phpGeeks
    3 620 участник(ов)

    Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

    DBA - русскоговорящее сообщество
    DBA - русскоговорящее сообщество
    1 345 участник(ов)

    Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

    PHP
    PHP
    1 309 участник(ов)

    Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

    PHP — вакансии, поиск работы и аналитика
    PHP — вакансии, поиск работы и аналитика
    1 251 участник(ов)

    Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

    MySQL
    MySQL
    995 участник(ов)

    The group is about MySQL. For code use hastebin.com. Admin: @smlkw

    phpGeeksJunior
    phpGeeksJunior
    980 участник(ов)

    Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

    phpclub.ru
    phpclub.ru
    872 участник(ов)

    Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

    Devall | PHP
    Devall | PHP
    272 участник(ов)

    Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp