2014-01-07 3 views
0

Я пытаюсь изучить «поиск элементов из базы данных mysql с помощью php».PHP-код выполняется, но нет вывода

Для этого я создал базу данных с именем randomdata. В базе данных случайных данных есть таблица с именем randomtable. В этой таблице есть четыре столбца: Имя, Фамилия, Электронная почта и Пол.

Я хочу найти людей туда Пол. Для этого я попробовал следующий запрос.

$query="SELECT * FROM randomtable WHERE Gender =' ".$gender . " ' "; 

Я пробовал обе функции GET и POST. Но все же я не могу выводить результаты. Я использую их.

  • Windows 8
  • WampServer
  • Notepad ++

    Я перезагрузил сервер и компьютер, но ничего не изменилось. Ниже мой полный код.

    Поиск в дневнике:
    Мужской
    Женский

    <?php 
    if(isset($_POST['submit'])) 
    { 
        echo $gender=$_POST['$gender']; 
        $connect=mysql_connect("127.0.0.1","root","", "randomdata"); 
        if($connect) 
        { 
        //echo 'I am connected'; 
        $query="SELECT * FROM randomtable WHERE Gender =' ".$gender . " ' "; 
         echo $query; 
         $results=mysqli_query($connect,$query); 
         while($row = mysqli_fetch_array($results)) 
         { 
          echo $row['Name'] . "<br/>" . $row['Surname'] . "<br/>" . $row['Email'] . "<br/>" ; 
         } 
        } 
        else 
        { 
         die(mysql_error()); 
        } 
    } 
    ?> 
    
+0

печати запрос и запустить его в phpmyadmin.than чеку все идет хорошо? –

+0

Возможно изменение '$ _POST ['$ gender']' to '$ _POST ['gender']'? Стрельба в темноте. Возможно, ваш параметр '$ gender' пуст. – divaka

+0

@ user3168766 да, вы помещаете '$ gender' в' POST ['$ gender'] 'пол, который вы получаете через метод POST, не является переменной php – Waqas

ответ

3

Похоже, что вопрос с назначением переменной POST для $gender

В настоящее время вы используете

echo $gender=$_POST['$gender']; 

Пожалуйста, попробуйте изменить до

$gender=$_POST['gender']; 

UPDATE

После проверки кода кажется isset является проблемой. Никогда не бывает POST['Submit'].

Чтобы это исправить, нужно имя атрибута во входном потоке представить т.е.

<input type="submit" Value="Search" name="Submit"/> 

Также в запросе имеются пробелы по обе стороны от переменной $gender. У меня теперь работает код, попробуйте с этим.

<html> 
<body> 
Find Entries: <br> 
<form action="" method="POST"> 
<input type="radio" name="gender" Value="Male"> Male </input> 
<br> 
<input type="radio" name="gender" Value="Female"> Female </input> 
<br> 
<input type="submit" Value="Search"/> 
</form> 

<?php 
if(isset($_POST['gender'])) 
{ 
    //print_r($_POST); 
    $gender=$_POST['gender']; 
    $connect=mysqli_connect("127.0.0.1","root","password", "randomdata"); 
    if($connect) 
    { 
     //echo 'I am connected'; 
     $query="SELECT * FROM randomtable WHERE Gender = '".$gender . "' "; 
     //echo $query; 
     $results=mysqli_query($connect,$query); 
     while($row = mysqli_fetch_array($results)) 
     { 
      echo $row['Name'] . "<br/>" . $row['Surname'] . "<br/>" . $row['Email'] . "<br/>" ; 
     } 
    } 
    else 
    { 
     die(mysql_error()); 
    } 
} 
?> 
+0

Я пробовал это. Ничего не произошло. –

+0

Я могу отправить вам весь код. Если вы хотите увидеть. Это небольшой код, состоящий из 34 строк. –

+0

@ user3168766 Пожалуйста, предоставьте весь код в своем вопросе, а также предоставьте распечатку данных POST, чтобы мы могли гарантировать, что все будет как ожидается. –

1

Попробуйте это ...

$query="SELECT * FROM randomtable WHERE Gender ='".$gender . "'"; 

Удалены лишние пробелы в запросе

+0

Я пробовал это. Ничего не произошло. –

+0

Я скопировал этот отрывок и заменил его предыдущий запрос. Ничего не изменилось. –

+1

да в соответствии с @Tomas change mysql_connect to mysqli_connect – user1844933

3

mysql_connect должен быть mysqli_connect

+0

Я пробовал это. Пока нет выхода. –

0

Нет ли выход на все? Очень странно.

Что вы публикуете?

Вы уверены, что добавляете 'submit' в свой тестовый пост?

Если это не помогает, возможно, существует более серьезная ошибка, которая не позволяет запустить скрипт? Можете ли вы просмотреть журналы ошибок php или apache?

+0

Да, я включаю отправку. –

+0

if (isset ($ _ POST ['submit'])) вы можете это увидеть. –

+0

Просто проверяйте, иногда легко пропустить. Если бы его не было, это объясняло бы, почему ничего не работает. – tomsowerby

0

Я предполагаю, что вы намерены присвоить индекс «submit» переменной $ gender вместо индекса «gender»? Попробуйте код ниже:

<?php 
if(isset($_POST['submit'])) 
{ 
    $gender = $_POST['submit']; 
    $connect = mysql_connect("127.0.0.1", "root", "", "randomdata"); 
    if($connect) 
    { 
    $query = 'SELECT * FROM randomtable WHERE Gender = "' .$gender .'"'; 
     $results = mysqli_query($connect, $query); 
     while($row = mysqli_fetch_array($results)) 
     { 
      echo $row['Name'] . "<br/>" . $row['Surname'] . "<br/>" . $row['Email'] . "<br/>" ; 
     } 
    } 
    else 
    { 
     die(mysql_error()); 
    } 
} 
?> 
+0

Я не получил никакого вывода. –

Смежные вопросы