簡體   English   中英

HTML形式的MySQL查詢-輸入可以使用通配符嗎?

[英]MySQL Query from HTML form - can an input use wildcards?

我已經看過了,雖然我看到了很多在原始PHP中使用通配符的解釋,但是當用戶輸入要使用通配符時,我發現沒有什么可以幫助我的。 我對PHP和MYSQL非常陌生。 應該使用哪個符號?

基本上,用戶從MYSQL數據庫請求給定等級的數據,可以是簡單數字或數字后跟字母或加號。 我希望他們能夠特別要求6a(工作正常)或6,然后再使用通配符來返回6a,6a +,6b等(我不知道該怎么做)。

有關更多詳細信息:

我有以下表格:

<form name="gradereturn" method="POST" action="gradequery.php">
<input type="text" name="Grade" value="Grade">
<input type="submit" name="Submit1" value="Retrieve">

和PHP:

<?php
$grade = $_POST['Grade'];
if (isset($_POST['Submit1'])) {
    mysql_connect("localhost", "**details**", "**details**") or die(mysql_error());
    mysql_select_db("**details**") or die(mysql_error());
    $result = mysql_query("SELECT * FROM routes WHERE Grade='$grade'") or die(mysql_error());  
    $row = mysql_fetch_array( $result );
    echo "Line - Colour - Grade<br />";
    while($row = mysql_fetch_array($result)){
        echo $row['Line']. " - ". $row['Colour']. " - ". $row['Grade'];
        echo "<br />";
    }
}
else print ("Please enter your required grade above");
?>

預先感謝您的任何幫助。

使用LIKE並確保您也逃脫了$grade

$grade = mysql_real_escape_string($grade);
$sql = "SELECT * FROM routes WHERE Grade LIKE '{$grade}'";
$result = mysql_query($sql);

然后,他們可以指定66%還是6? 等等

您將要使用LIKE命令。

$result = mysql_query("SELECT * FROM routes WHERE Grade LIKE '$grade%'")

這告訴SQL在以$grade開頭Grade routes中查找所有條目。

有關LIKE更多信息-MySQL參考

暫無
暫無

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

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