2013-03-19 67 views
-1

網址:結果沒有顯示GET ID在MySQL PHP

empdetail.php?id=1 

我在我的MySQL數據庫的兩個表。我想合併兩個表格,我想我已經完成了。可能在$ _GET['id']或其他代碼中存在一些問題。當我點擊empdetail.php?id=1時,結果顯示完美。當我點擊empdetail.php?id=2empdetail.php?id=3等,沒有結果顯示。我不知道爲什麼它沒有顯示任何結果。

<? 
    //////Displaying Data///////////// 

     //connect to database 

     mysql_connect('localhost','root',''); 
     mysql_select_db('cdcol'); 

    $id=$_GET['id']; // Collecting data from query string 
    if(!is_numeric($id)){ // Checking data it is a number or not 
     echo "Data Error"; 
     exit; 
    } 

    $result = mysql_query("SET NAMES utf8"); //the main trick 

    $query = "SELECT ospos_employees.person_id, ospos_people.first_name ". 
    "FROM ospos_employees, ospos_people ". 
     "WHERE ospos_employees.person_id = ospos_people.person_id='$id'"; 

    $result = mysql_query($query) or die(mysql_error()); 


    // Print out the contents of each row into a table 
    while($row = mysql_fetch_array($result)){ 
     echo $row['person_id']. " - ". $row['first_name']; 
     echo "<br />"; 
    } 




    ?> 
+0

學習PDO http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers。 mysql_ *堆棧已折舊。 – Alex 2013-03-19 16:09:25

回答

1
$query = "SELECT ospos_employees.person_id, ospos_people.first_name ". 
    "FROM ospos_employees, ospos_people ". 
     "WHERE ospos_employees.person_id = ospos_people.person_id AND ospos_people.person_id =".$id; 

我有一個問題:爲什麼您的查詢從2個表中選擇。那麼

$query = "SELECT ospos_people.person_id, ospos_people.first_name ". 
     "FROM ospos_people ". 
      "WHERE ospos_people.person_id =".$id; 
+0

注意:PHP使用雙引號評估變量,因此連接字符串不是問題。建議:指出變化,讓人們能夠理解答案 – UnholyRanger 2013-03-19 16:15:58

+0

好的,我是新來的。感謝您的建議:) – 2013-03-19 16:19:51

+0

感謝工作正常 – user1833487 2013-03-19 18:08:45

0

首先,你的SQL語句是錯誤的。轉換爲直接SQL:

SELECT 
    ospos_employees.person_id, ospos_people.first_name 
FROM 
    ospos_employees, ospos_people 
WHERE 
    ospos_employees.person_id = ospos_people.person_id= '$id' 

你會看到你的WHERE聲明是錯誤的。你需要修復它。或者:

ospos_employees.person_id = '$id' 

ospos_people.person_id= '$id' 

或(如擬):

ospos_employees.person_id = '$id' AND ospos_people.person_id= '$id' 
            ^^^ 

另外要注意的是SQL(int)的值並不需要它周圍的抽動。

注意:不要使用MySQL_ *函數,因爲它們從PHP 5.5開始已被棄用。改用MySQLi_ *或PDO。

0

這是我完整的答案:

<? 
    //////Displaying Data///////////// 

     //connect to database 

     mysql_connect('localhost','root',''); 
     mysql_select_db('cdcol'); 

    $id=$_GET['id']; // Collecting data from query string 
    if(!is_numeric($id)){ // Checking data it is a number or not 
    echo "Data Error"; 
    exit; 
    } 

    $result = mysql_query("SET NAMES utf8"); //the main trick 

    $query = "SELECT ospos_employees.person_id, ospos_people.first_name 
      FROM ospos_employees 
      inner join ospos_people on(ospos_employees.person_id = ospos_people.person_id) 
      where ospos_employees.person_id = $id"; 

    $result = mysql_query($query) or die(mysql_error()); 


    // Print out the contents of each row into a table 
    while($row = mysql_fetch_array($result)){ 
     echo $row['person_id']. " - ". $row['first_name']; 
     echo "<br />"; 
    } 




    ?> 

基本上您的查詢是錯誤的,我希望這有助於。

Saludos;)