Попытка получить таблицу базы данных в соответствии с выбранным параметром

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

Я получаю эту ошибку:

Примечание. Неопределенная переменная: sql в C:\xampp\htdocs\PBWS\searchi.php в строке 37.

Предупреждение: mysqli_query(): пустой запрос в C:\xampp\htdocs\PBWS\searchi.php в строке 37

Предупреждение: mysqli_fetch_array() ожидает, что параметр 1 будет mysqli_result, логическим значением, заданным в C:\xampp\htdocs\PBWS\searchi.php в строке 39.

<?php

include_once('database.php');

    if(isset($_GET['file_name']))
    $name = $_GET['file_name'];
    if ($_GET['value'] == 'bond_100'){

    $sql = "SELECT * FROM `bond_100` WHERE `file_name` = $name ";
}

    elseif ($_GET['value'] == 'bond_200'){

    $sql = "SELECT * FROM `bond_200` WHERE `file_name` = $name";
}

    elseif ($_GET['value'] == 'bond_1500'){

    $sql = "SELECT * FROM `bond_1500` WHERE `file_name` = $name ";
}
    elseif ($_GET['value'] == 'bond_15000'){

    $sql = "SELECT * FROM `bond_15000` WHERE `file_name` = $name ";
}
    elseif ($_GET['value'] == 'bond_750'){

    $sql = "SELECT * FROM `bond_750` WHERE `file_name` = $name "; 
}   
    elseif ($_GET['value'] == 'bond_7500'){

    $sql = "SELECT * FROM `bond_7500` WHERE `file_name` = $name ";
}
    elseif ($_GET['value'] == 'bond_40000'){

    $sql = "SELECT * FROM `bond_40000` WHERE `file_name` = $name ";

}   $result = mysqli_query($conn,$sql);

    $row = mysqli_fetch_array($result);

     if($row>0){
        echo $row["file_name"];
    } else{
        echo "nothing found";
}

person Ahsan Ahsan Mughal    schedule 24.08.2017    source источник
comment
iainn - нет, не знает. с php.net - смешанный mysqli_query ( mysqli $link , string $query [, int $resultmode = MYSQLI_STORE_RESULT ] )   -  person delboy1978uk    schedule 24.08.2017


Ответы (2)


Вы должны попробовать добавить эти строки:

echo 'Value : ', $_GET['value'];
die();

Поскольку за вашим потоком блоков else if не следует блок else для обработки случая, когда ни один из них не выполняется, ваш скрипт, получающий неверное значение для $_GET['value'] или вообще не получающий никакого значения, приведет к тому, что $sql не будет существовать, когда вы попытаетесь выполнить свой запрос. , что объясняет обе ошибки, которые вы получаете.

person ksjohn    schedule 24.08.2017

Ни одно из ваших утверждений if или else if никогда не бывает истинным! Поэтому $sql никогда не определяется!

Узнайте почему! var_dump($_GET); и посмотрите, что у вас получится!

person delboy1978uk    schedule 24.08.2017