2

我已经看过了,虽然我已经看到了很多关于在原始 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");
?>

预先感谢您的任何帮助。

4

2 回答 2

0

使用LIKE并确保您也逃脱$grade

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

然后他们可以指定66%6?等。

于 2012-08-17T13:47:51.043 回答
-1

You will want to use the LIKE command.

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

This tells SQL to find all entries in routes where Grade starts with $grade.

For more information on LIKE - MySQL Reference

于 2012-08-17T13:17:44.910 回答