Mysql пошук табліцы ж/PHP і вяртаць вынікі

Я спрабую зрабіць мой пошук погляд у маёй базе дадзеных за $ SearchText дзе $ SelectedItem ўяўляе COLUMB гэта пошук. Im атрыманне сінтаксічных памылак вакол апошняй часткі кода

мой form-

<form name="search" id="search" method="POST" action="">
    <input type="text" name="searchterm" id="searchterm">
    

</div></td>
<td> </td>
<td><input type="submit" name="search" value="search"></td>

My PHP for this-

if (isset($_POST['search']))
{
    $columbname = $_POST['selectitem'];
    $searchterm  = $_POST['searchterm'];
    $query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND WHERE '$columbname' = '$searchterm'";
    $result = mysql_query ($query) or die(mysql_error());
}
else
3
Вам не трэба AND WHERE , вы павінны проста выкарыстоўваць І
дададзена аўтар billyonecan, крыніца
не выкарыстоўваць mysql_ пашырэнне гэтага састарэлыя. Выкарыстоўвайце MySQLi або PDO замест гэтага.
дададзена аўтар 6339, крыніца
Ваш код PHP з'яўляецца няпоўным. Акрамя таго, вы адкрыты для SQL ін'екцый. Чытайце аб падрыхтаваных заяў.
дададзена аўтар Leri, крыніца
Непазбежнае Пропаведзь: карыстацкі ўвод Санируйте, не выкарыстоўваюць матрыцы (mysql_error ()) на вытворчай сістэме.
дададзена аўтар MarioP, крыніца

8 адказы

У мяне замяніць ваш PHP код, і цяпер ён працуе добра

if (isset($_POST['search']))
{
$columbname = $_POST['selectitem'];
$searchterm  = $_POST['searchterm'];
$query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' && 'columbname' = '$searchterm'";
$result = mysql_query ($query) or die(mysql_error());
}
else
5
дададзена
  1. Remove second WHERE
  2. Remove quotes around the column name that you get from $columbname variable.

змена

$query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND WHERE '$columbname' = '$searchterm'";

у

$query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND $columbname = '$searchterm'";

On a side note: your code is vulnerable у sql-injections. Switch у mysqli or PDO and use prepared statements.

5
дададзена
Гэта дазваляе пазбавіцца ад памылак, але зараз пошук не працуе: /
дададзена аўтар A.R, крыніца
if (isset($_POST['search']))
{
$columbname = $_POST['selectitem'];
$searchterm  = $_POST['searchterm'];
$query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND $columbname = '$searchterm'";
$result = mysql_query ($query) or die(mysql_error());
}
5
дададзена

Калі ласка, заменіце AND WHERE толькі на і у вашым SQL запыце.

4
дададзена

Выкарыстоўвайце гэтую функцыю (Выключыць другой дзе):

$query="SELECT * FROM transactions 
WHERE agentclient  = '$agentclient' 
AND '$columbname' = '$searchterm'";
3
дададзена

you should replace the AND WHERE by AND in you SELECT query and no need of ' in $columbname

if (isset($_POST['search']))
{
 $columbname  = $_POST['selectitem'];
 $searchterm  = $_POST['searchterm'];
 $query       = "SELECT * FROM transactions WHERE (agentclient  = '$agentclient' AND $columbname = '$searchterm')";
 $result = mysql_query ($query) or die(mysql_error());
}
<�Р> Заўвага: не выкарыстоўвайце mysql_ пашырэнне гэта састарэлае. Выкарыстоўвайце MySQLi   або PDO замест гэтага.
3
дададзена

Замацаваць запыт. Выкарыстоўвайце гэта:

$query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND '$columbname' = '$searchterm'"

Замест:

$query="SELECT * FROM transactions WHERE agentclient  = '$agentclient' AND WHERE '$columbname' = '$searchterm'"

(У вас ёсць адзін занадта шмат WHERE )

3
дададзена

Змяніць запыт:

$query = "SELECT * FROM transactions 
          WHERE agentclient  = '$agentclient' 
          AND $columbname = '$searchterm'";
0
дададзена