2014-01-07 154 views
0

我想學習「從MySQL數據庫使用PHP搜索元素」。PHP代碼執行,但沒有輸出

爲此,我創建了一個名爲randomdata的數據庫。在隨機數據庫中有一個名爲randomtable的表。在這個表格中有四列:名字,姓氏,電子郵件和性別。

我想通過那裏搜索性別。爲此,我嘗試了下面的查詢。

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

我嘗試了GET和POST函數。但我仍然無法取得輸出。我正在使用這些。

  • 的Windows 8
  • Wampserver
  • 記事本++

    我重新啓動服務器和PC,但什麼都沒有改變。以下是我的完整代碼。

    查找項目:


    <?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']'改爲'$ _POST ['gender']'?在黑暗中拍攝。也許你的'$ gender'參數是空的。 – divaka

+0

@ user3168766是的,你是''性別''在'POST ['$ gender']'你通過POST方法獲得表單的性別是不是一個PHP變量 – Waqas

回答

3

它看起來像問題是與分配POST變量$gender

你目前正在使用

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

請嘗試更改這到

$gender=$_POST['gender']; 

UPDATE

測試你的代碼後似乎isset是問題。從來沒有一個POST['Submit']

要解決這個問題,你需要在提交輸入的name屬性即

<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改變 mysql_connect到mysqli_connect – user1844933

3

mysql_connect應該mysqli_connect

+0

我試過了。沒有輸出。 –

0

是否有在所有沒有輸出?確實很奇怪。

你在發佈什麼?

您確定自己在測試文章中包含「提交」嗎?

如果這沒有幫助,也許有一個更嚴重的錯誤,不允許腳本運行?你能看到PHP或Apache的錯誤日誌?

+0

是的,我包括提交。 –

+0

if(isset($ _ POST ['submit']))你可以看到這個。 –

+0

只需檢查,有時很容易錯過。 如果它不存在,那麼它會解釋爲什麼沒有其他運行。 – tomsowerby

0

我想你打算將「提交」索引分配給$性別變量而不是「性別」索引? 嘗試下面的代碼:

<?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

我沒有收到任何輸出。 –