2014-09-27 100 views
-1

我只是在學習PHP,我跟着這本書到最後的細節,當我去到我創建的本地主機網頁,從數據庫中提取信息時,什麼也沒有顯示網頁。我整晚都在Google上排除故障,並一遍又一遍地閱讀這本書,看看我錯過了什麼。我發佈了我寫的代碼,看看是否有人可以帶領我在正確的領域解決我的問題。在我的數據庫中顯示信息很困難

<html> 
    <head> 
    <title>Pay Scale</title> 
    <style type="text/css"> 
    table { 
     background-color: #FCF; 
    } 

    th { 
     width:150px; 
     text-align: left; 
    } 
    </style> 
</head> 
<body> 
<h1>Pay Scale</h1> 

<form method= "post" action= "Payscale.php" 
<input type="hidden" name="submitted" value="true" /> 
<label> Search Category: 
<select name="category"> 
    <option value="Id">ID</option> 
    <option value="First Name">First Name</option> 
    <option value="Last_Name">Last_Name</option> 
</select> 
</label> <label>Search Criteria: 
<input type="text" name="criteria" /> 
</label> 
<input type="submit" /> 
</form> 

<?php 
if (isset($_POST['submitted'])){ 

    include('payconnect.php'); 

    $category = $_POST['category']; 
    $criteria = $_POST['criteria']; 
    $query = "SELECT * FROM employee pay range WHERE $category = '$criteria'"; 
    $result = mysqli_query($dbcon, $query) or die('error getting data'); 

    echo "<table>"; 
    echo "<tr> <th>ID</th> <th>First Name</th> <th>Last_Name</th> <th>Pay_Range</th> </tr>"; 

    While($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 

     echo "<tr><td>"; 
     echo $row['ID']; 
     echo "</td><td>"; 
     echo $row['First Name']; 
     echo "</td><td>"; 
     echo $row['Last_Name']; 
     echo "</td><td>"; 
     echo $row['Pay_Range']; 
     echo "</td><tr>"; 
    } 
    echo "<table>"; 
} 
?> 
</body> 
</html> 
+1

你可能想通過一個HTML驗證運行代碼。你在'

'。 – 2014-09-27 13:14:52

+1

你需要獲得一個語法高亮的IDE(即使這個網站有這個功能)。這將使編碼更容易。 – 2014-09-27 13:24:00

+0

MC皇帝我正在使用記事本++,我已經看到其他人使用它的突出顯示,我會發現如何讓它爲我工作。再次感謝您的建議。 – 2014-09-27 13:35:22

回答

1

頁面的html代碼有幾個問題。最明顯的是,form標籤上沒有關閉>,所以瀏覽器徘徊在下一行,認爲它是form標籤的一部分。由於該行設置您的PHP腳本正在查找的變量$_POST['submitted'],因此該值不會被設置,腳本也不會運行。

要解決這個問題,只需添加一個>form聲明:

<form method="post" action="Payscale.php"> 

也有在HTML一些其他的問題,可以固定在同一時間:

在頁面頂部:

<html> 
    <head> 

文檔應該以DOCTYPE聲明開頭,以便瀏覽器知道如何解釋頁面。對於HTML5,這是因爲添加一行到文件的開頭一樣簡單:

<!DOCTYPE html> 
<html> 
<head> 

還有在創建表的代碼中的錯誤:

echo $row['Last_Name']; 
    echo "</td><td>";   
    echo $row['Pay_Range']; 
    echo "</td><tr>";  # A 
} 
echo "<table>";    # B 

的線標有A和B分別創建新元素 - 表格行和新表格。你應該關閉這些元素 - 即。使用</tr></table>

0

看起來您的開始標記未關閉(一個小的語法錯誤)。

嘗試從這個改變它:

<form method= "post" action= "Payscale.php" 

這樣:

<form method="post" action="Payscale.php"> 

,看看是否能解決問題。

+1

在這種情況下,一種主要的語法錯誤,因爲它阻止了表單的功能! – 2014-09-27 13:44:09

+0

我站好了。 – 2014-09-30 05:10:39

0

試試這個它的工作:

<html> 
     <head> 
     <title>Pay Scale</title> 
     <style type="text/css"> 
     table { 
      background-color: #FCF; 
     } 

     th { 
      width:150px; 
      text-align: left; 
     } 
     </style> 
    </head> 
    <body> 
    <h1>Pay Scale</h1> 

    <form method= "post" action="Payscale.php"> 
    <input type="hidden" name="submit" value="true"/> 
    <label> Search Category: 
    <select name="category"> 
     <option value="Id">ID</option> 
     <option value="First Name">First Name</option> 
     <option value="Last_Name">Last_Name</option> 
    </select> 
    </label> <label>Search Criteria: 
    <input type="text" name="criteria" /> 
    </label> 
    <input type="submit" value="submit" name="submitted"/> 
    </form> 
    </body> 
</html> 

Payscale.php

<?php 
if (isset($_POST['submitted'])){ 

    include('payconnect.php'); 

    $category = $_POST['category']; 
    $criteria = $_POST['criteria']; 
    $query = "SELECT * FROM employee pay range WHERE $category = '$criteria'"; 
    $result = mysqli_query($dbcon, $query) or die('error getting data'); 

    echo "<table>"; 
    echo "<tr> <th>ID</th> <th>First Name</th> <th>Last_Name</th> <th>Pay_Range</th> </tr>"; 

    While($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { 

     echo "<tr><td>"; 
     echo $row['ID']; 
     echo "</td><td>"; 
     echo $row['First Name']; 
     echo "</td><td>"; 
     echo $row['Last_Name']; 
     echo "</td><td>"; 
     echo $row['Pay_Range']; 
     echo "</td><tr>"; 
    } 
    echo "<table>"; 
} 
?> 
相關問題