之間比較列值,所以我在這裏創造一個小東西:兩個表
http://sqlfiddle.com/#!2/d7a76/1
它做什麼,我想在那裏,但是當應用到我的實際PHP不起作用。加載時,HTML頁面將顯示所有電纜號碼,它們位於「bundle_lanes」SQL數據庫中的下拉列表中。但是最近我的客戶現在希望電纜數字如果已經存在於數據庫的「電纜類型」中就會消失。所以我需要一些方法告訴SQL查找確切的電纜號匹配,並且如果它們存在於兩個表中,則不顯示它們。我究竟做錯了什麼?它在sqlfiddle中工作。當我運行cableNumbers.php和一個空的下拉框時,沒有錯誤,只是空白的結果。
HTML(的index.php)
<body onload="cable_numbers(); company_name();">
<select id="cable_no" onchange="update_section_no();" return false;>
<option value="">Cable Number</option>
</select>
</body>
JAVASCRIPT
//Set Cable Numbers in DropDown
function cable_numbers() {
$.ajax({
url: './php/cableNumbers.php',
dataType: 'json',
success: function(mydata) {
var combo = document.getElementById("cable_no");
while (combo.firstChild) {
combo.removeChild(combo.firstChild);
};
var option = document.createElement("option");
for (var i = 0; i < mydata.length; i++) {
option = document.createElement("option");
option.text = mydata[i]['cable_no'];
option.value = mydata[i]['cable_no'];
try {
combo.add(option, null); //Standard
} catch (error) {
combo.add(option); // IE only
}
};
section_numbers();
}
});
};
PHP cableNumbers.php(其中SQL查詢住)
$sql = "SELECT DISTINCT cable_no FROM bundle_lanes
WHERE (cable_no) NOT IN (SELECT cable_no FROM cabletypes)
ORDER BY cable_no ASC";
$result = mysql_query($sql) or die ('Error'.mysql_error());
// If DB query successful then send data to calling routine.
if (mysql_num_rows($result) >= 1)
{
while ($row = mysql_fetch_array($result)) {
$array[] = $row;
}
print json_encode($array);
}
當你說'它不工作',你的意思是返回的查詢不正確或php顯示不正確的結果嗎?我會先在你的數據庫上運行查詢,然後從那裏開始。 –
它在你的代碼中不起作用?它是否根本不填充組合框?你有錯誤嗎? – Scotch
對不起,它只是返回一個沒有任何值的空白下拉菜單。沒有錯誤,沒有任何內容填充在下拉列表中。 – jflay