2012-08-17 2 views
2

필자는 한번 보았습니다. 원래 PHP에서 와일드 카드를 사용하는 것에 대한 많은 설명을 보았지만, 사용자 입력이 와일드 카드를 사용하려고 할 때 도움이되지 않았습니다. 나는 PHP와 MySQL에 대해 매우 익숙하다. 어떤 기호를 사용해야합니까?MySQL 폼에서 HTML 폼 - 입력에서 와일드 카드를 사용할 수 있습니까?

기본적으로 사용자는 주어진 등급의 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"); 
?> 

가 사전에 어떤 도움을 주셔서 감사합니다.

+0

[MySQL의 와일드 카드를 지정할 수 있습니다 ] (http://dev.mysql.com/doc/refman/5.0/en/string-comparison-functions.html#operator_like)? –

+0

귀하의 질문에 대답하는 데 도움이되지 않을 수도 있지만 mysql_ * 함수 사용을 중단해야합니다. 그들은 더 이상 사용하지 않을 것입니다. 대신 [PDO] (http://php.net/manual/en/book.pdo.php) (PHP 5.1 이상 지원) 또는 [mysqli] (http://php.net/manual/en/book)를 사용하십시오. mysqli.php) (PHP 4.1부터 지원). 어떤 것을 사용해야하는지 잘 모르겠 으면 [이 기사를 읽으십시오] (http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/). – Matt

+0

나는 그것을 몰랐다. 고마워. 내가 읽을거야. – user1606927

답변

-1

LIKE 명령을 사용하는 것이 좋습니다.

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

routes의 모든 항목을 찾기 위해 SQL을 알려줍니다 곳 $gradeGrade 시작됩니다.

LIKE에 대한 자세한 내용은

-MySQL Reference

+0

당신은 그 길을 '* $ *'경로에서 선택 했습니까? '{$ grade} %' "'? – undone

+0

그래, 왜 문자열 내에서 문자열을 연결했는지 모르겠다. 편집이 완료되었습니다. – Jeremy1026

0

사용 LIKE 당신이뿐만 아니라 $grade을 탈출해야합니다 :

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

그들은 다음 6 또는 6% 또는 6?

관련 문제