![](/img/trans.png)
[英]My query is slow when ever I select inside concat or group_concat and I want to return them in form of JSON. how can I make it faster?
[英]How can I make my form input not return any results when it is inputted with an empty query?
我希望我的表單輸入不要對空搜索進行操作。
我不希望它甚至轉到結果頁面並顯示錯誤消息。
所以
如何點擊提交/按下輸入或按空格鍵然后輸入?
可以用javascript完成嗎?
HTML:
<form action="search.php" method="post">
Search: <input type="text" name="term" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
PHP:
<?php
$conn = mysql_connect("", "", "")
or die (mysql_error());
mysql_select_db("testable");
if (!$conn) {
echo "Unable to connect to DB: " . mysql_error();
exit;
}
$term = addcslashes($term,'%_');
$term = "%" . $_POST["term"] . "%";
if (!mysql_select_db("weezycouk_641290_db2")) {
echo "Unable to select mydbname: " . mysql_error();
exit;
}
**if (isset($_POST['term']) && ($_POST['term'] !== '')) {
$term = $_POST['term'];
$safe_term = mysql_real_escape_string($term);
$sql = "SELECT FName,LName,Phone
FROM testable
WHERE FName LIKE '%". mysql_real_escape_string($term) ."%'";
$result = mysql_query($sql);
}**
if (!$result) {
echo "Could not successfully run query ($sql) from DB: " . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo "No rows found, nothing to print so am exiting";
exit;
}
while ($row = mysql_fetch_assoc($result)) {
echo '<br><br><div class="data1">';
echo htmlentities($row["FName"]);
echo '</div><br><div class="data2">';
echo htmlentities($row["LName"]);
echo '</div><br><div class="data3">';
echo htmlentities($row["Phone"]);
echo '</div>';
}
mysql_free_result($result);
?>
防止通過JS提交表單是一個快速解決方案,但您仍然需要處理某人可能仍然提交空白搜索的可能性:
if (isset($_POST['term']) && ($_POST['term'] !== '')) {
$term = $_POST['term'];
$safe_term = mysql_real_escape_string($term);
$sql = "...."
blah blah blah
}
注意使用mysql_real_escape_string()。 它是在MySQL查詢字符串安全的方法。 addslashes是一個可怕的廢話,絕不應該用於SQL注入預防。
您可以在JS中檢查長度並中止它是空白的
是的,你可以使用javascript做到這一點。 添加一個javascript函數來處理提交按鈕的單擊事件。
<input type="submit" name="submit" value="Submit" onclick="submitForm(event)" />
在javascript函數中,檢查文本框是否為空
function submitForm(event){
var val = document.getElementsByName('term')[0].value;
if (val==null || val.trim()==""){
//document.getElementsByTagName('form')[0].submit();
event.preventDefault();
return false;
}
else {
return true;
}
}
如果為空,則阻止默認事件並返回false =>如果不為空則阻止提交,返回true =>提交表單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.