<?php
$button=$_GET['submit'];
$search=$_GET['search'];
if(!$search)
echo "you did not enter a HAWB.";
else
{
if(strlen($search)<=2)
echo "Search term too short";
else
echo "You searched for <b> $search </b> <hr size='1'>";
mysql_connect("localhost","root","") or die ("cannot connect");
mysql_select_db("trip");
$search_exploded=explode("",$search);
$x=0;
$construct="";
foreach($search_exploded as $search_each)
{
$x++;
if ($x==1)
$construct="keywords LIKE '%search_each%'";
else
$construct="OR keywords LIKE '%search_each%'";
}
$construct="Select * from trip where $construct";
$run=mysql_query($construct);
$foundnum=mysql_num_rows($run);
if($foundnum==0)
` echo "No results found";
else
{
echo "$foundnum results found.<p>";
while ($runrows=mysql_fetch_assoc($run);
{
echo "<table border='1'>
<tr>
<th>TYPE</th>
<th>HAWB</th>
<th>DATE</th>
<th>TIME</th>
<th>PLATE NO.</th>
<th>NO. OF PIECES</th>
<th>CARGO MARSHAL</th>
<th>BY</th>
<th>REMARKS 1</th>
<th>REMARKS 2</th>
</tr>";
echo "<tr>";
echo "<td>" . $row['Type'] . "</td>";
echo "<td>" . $row['HAWB'] . "</td>";
echo "<td>" . $row['Date'] . "</td>";
echo "<td>" . $row['Time'] . "</td>";
echo "<td>" . $row['Plate_no'] . "</td>";
echo "<td>" . $row['Pcs'] . "</td>";
echo "<td>" . $row['Cargo_Marshal'] . "</td>";
echo "<td>" . $row['By'] . "</td>";
echo "<td>" . $row['Remarks1'] . "</td>";
echo "<td>" . $row['Remarks2'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
}
}
?> //code formatted
ответ
foreach($search_exploded as $search_each)
{
$x++;
if ($x==1)
$construct="keywords LIKE '%search_each%'";
else
$construct="OR keywords LIKE '%search_each%'";
}
Вы забыли $
знак на search_each
foreach($search_exploded as $search_each)
{
$x++;
if ($x==1)
$construct="keywords LIKE '%$search_each%'"; //you might have to escape the statement
else
$construct="OR keywords LIKE '%$search_each%'";
}
Кроме того, пожалуйста, помните о вашем горизонтальном правило, чтобы закрыть тег. <hr />
не <hr>
Если это новый скрипт, который вы пишете, я настоятельно рекомендую перейти на MySQLi вместо MySQL, поскольку он теперь устарел!
Ваш код крайне неряшлив! Уделите больше времени при написании кода и использовании достойной среды IDE!
Начнём здесь
$construct="";
foreach($search_exploded as $search_each)
{
$x++;
if ($x==1) {
$construct="keywords LIKE '%search_each%'";
}
else {
$construct="OR keywords LIKE '%search_each%'";
}
}
$construct="SELECT * FROM trip WHERE $construct";
Почему вы определении $ построить утратившим затем сразу же делать если/другое? Вы также сделать запрос для чтения в вашем остальное как SELECT * FROM trip WHERE OR keywords LIKE..
лично я понятия не имею, что вы пытаетесь достичь там
%search_each%
Должен ли быть
%$search_each%
И лично если/другое переменные не должны быть $construct
, но что-то вроде $condition
в строке 33 вы имеете бездомную `
while ($runrows=mysql_fetch_assoc($run);
{
НЕ должен иметь ;
Вы открываете таблицу ВНУТРИ, а потом закрыть его за пределами Это должно быть
{
echo "$foundnum results found.<p>";
echo "<table border='1'>
<tr>
<th>TYPE</th>
<th>HAWB</th>
<th>DATE</th>
<th>TIME</th>
<th>PLATE NO.</th>
<th>NO. OF PIECES</th>
<th>CARGO MARSHAL</th>
<th>BY</th>
<th>REMARKS 1</th>
<th>REMARKS 2</th>
</tr>";
while ($runrows=mysql_fetch_assoc($run)
{
echo "<tr>";
echo "<td>" . $row['Type'] . "</td>";
echo "<td>" . $row['HAWB'] . "</td>";
echo "<td>" . $row['Date'] . "</td>";
echo "<td>" . $row['Time'] . "</td>";
echo "<td>" . $row['Plate_no'] . "</td>";
echo "<td>" . $row['Pcs'] . "</td>";
echo "<td>" . $row['Cargo_Marshal'] . "</td>";
echo "<td>" . $row['By'] . "</td>";
echo "<td>" . $row['Remarks1'] . "</td>";
echo "<td>" . $row['Remarks2'] . "</td>";
echo "</tr>";
}
echo "</table>";
}
У вас также есть множество недостающих { }
брекетов!
Первоначально я собирался переписать в mysqli, но я думаю, что это то, чему вам нужно учиться, делая сами.
EDIT !!!: Вы должны очистить (strip html/tags) НИЧЕГО, вы получаете от введенной пользователем формы!
добавление некоторого текста в тело вашего вопроса, объяснение кода и представление фактического сообщения об ошибке вызовет у вас вопрос с более высоким рейтингом. Поскольку это стоит, это плохо структурированный вопрос. – mdoran3844
Это не читаемо. Используйте тег кода – Casey
Используйте достойную ** IDE ** с подсветкой синтаксиса и сделайте слово лучше. –