簡體   English   中英

使用Ajax和mysql檢索數據

[英]retrieve data using Ajax and mysql

我正在嘗試從多個表中檢索數據。 因此,當用戶單擊並選擇一個項目php文件以從相應表中檢索數據時。

這是我第一次嘗試使用w3學校代碼在Ajax上進行嘗試並進行修改,如果條件是問題,我想我使用的方式是? 在嘗試使用多表之前,它已經開始工作。

我的劇本

 <script>
function showUser(str) {
if (str == "") {
    document.getElementById("txtHint").innerHTML = "Please Select type of users to view";
    return;
} else { 
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else {
        // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
        }
    }
    xmlhttp.open("GET","get_users.php?q="+str,true);
    xmlhttp.send();
  }
}
</script>

我的表格

<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Staff</option>
<option value="2">Admin</option>
<option value="3">Customers</option>
</select>
</form>

我的PHP頁面

<?php
$q = intval($_GET['q']);

$con = mysqli_connect('localhost','X','X','X');
if (!$con) {
die('Could not connect: ' . mysqli_error($con));
}

mysqli_select_db($con);

if ($q='Admin')
{

$sql="SELECT * FROM admin";
$result = mysqli_query($con,$sql);

echo "<table>
<tr>
<th>Email</th>
<th>Name</th>
<th>Mobile</th>
<th>Address</th>
<th>Password</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['email'] . "</td>";
echo "<td>" . $row['name'] . "</td>";
echo "<td>" . $row['mobile'] . "</td>";
echo "<td>" . $row['address'] . "</td>";
echo "<td>" . $row['password'] . "</td>";
echo "</tr>";
}
echo "</table>";

else if ($q='Staff')
 {
echo "This is from Database B
}

else
{
echo "This is from database C";
}

mysqli_close($con);
?>

您正在使用$q = intval($_GET['q']); 與您的分配的字符串值。

intval() “獲取變量的整數值”

<option value="1">Staff</option>
<option value="2">Admin</option>
<option value="3">Customers</option>

並且對if ($q='Admin')else if ($q='Staff')都為字符串而不是整數的情況,使用賦值而不是比較

if ($q=='2')else if ($q=='1') ,它應讀為並帶有2個等號,以匹配您選擇的數值選項。

或者,用您的選項相應地更改它們,以在值中讀取為StaffAdmin (和Customers ),同時從GET數組中刪除intval() 這是你的選擇。

您也不需要mysqli_select_db($con); 因為您已經在初始連接中聲明了4個參數,但由於其他原因會失敗; 從技術上講,您沒有為此選擇數據庫。

您還缺少引號和分號(解析語法錯誤)

echo "This is from Database B

應該讀成

echo "This is from Database B";

腳注:

我相信您所基於的頁面似乎是http://www.w3schools.com/php/php_ajax_database.asp

如果是這樣,那么我建議您完全遵循他們的示例,並慢慢進行修改以適應您的需求。 我本人(在遙遠的過去)曾經使用過該演示程序,然后才獲得成功。

他們的示例也使用WHERE子句。

$sql="SELECT * FROM user WHERE id = '".$q."'";

編輯:僅作記錄,這種情況下缺少大括號:

if ($q='Admin')
{

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM