Помощ с търсачка и опции

stoqnski

Registered
Здравейте ползвам си този код :

Код:
 <form action="search.php" method="post">
			Търсене: <input type="text" name="word" size="40" class="search-pole" />  <input type="submit"  name="submit" id="search-btn"   value="търси" />
			</form>
		<p><ul class="ul-style01 box">
			 <?php
if ($_POST['submit']) {
$word = $_POST['word'];
include "conf.php";
if (strlen($word) < 3) {
echo "<p><b>Възникна грешка:</b> <br /><font color='#FF3333'><b>Трябва да въведете повече от 2 символа.<b></font></p>";
}
else {
$sql = "SELECT * from news WHERE nowina LIKE '%$word%' OR `ime` LIKE '%$word%' OR `awtor` LIKE '%$word%'";  
$result = mysql_query($sql) or die (mysql_error());
$broi = mysql_num_rows($result);
$row = mysql_fetch_assoc($result);
if  ($broi == 0) {
echo "<b>Резултати от търсенето:</b> <br /><p><b>Няма намерени резултати.</b></p>";
}
else  {

echo "<b>Резултати от търсенето:</b> <br /> <li><a href='novini.php#$row[id]'>$row[ime]</a></li>
 <br /> 	";
			
}
}
}
?>

Но искам до input полето да има select меню с options нали и съответно да отговарят на 3-те полета т.е. "По име,по съдържание,по автор" и съответно да търсат при избрано "По име" само в поле `ime` какъв е метода или някой може ли набързо да го напише ?
 
<select name="tip">
<option value="1">По име</option>
<option value="2">По съдържание</option>
<option value="3">По автор</option>
</select>

<?php
$tip = $_POST['tip'];
if($tip == 1) $where = 'WHERE nowina LIKE "%$word%"';
elseif($tip == 2) $where = 'WHERE ime LIKE "%$word%"';
elseif($tip == 3) $where = 'WHERE awtor LIKE "%$word%"';
else $where = '';

$sql = 'SELECT * FROM news '. $where;
...
?>

Пробвай така :)

Само си промени имената на таблиците да съвпадат с опциите, че не знам как са при теб.
 
Ето ти един вариант
<form action="search.php" method="post">
Търсене: <input type="text" name="word" size="40" class="search-pole" />
<select name="category"> <option value="">За всички</option> <option value="1">Дума</option> <option value="2">Име</option> <option value="3"> Автор </option> </select>
<input type="submit" name="submit" id="search-btn" value="търси" />
</form>
<p><ul class="ul-style01 box">
<?php
if ($_POST['submit']) {
$word = $_POST['word'];
include "conf.php";
if (strlen($word) < 3) {
echo "<p><b>Възникна грешка:</b> <br /><font color='#FF3333'><b>Трябва да въведете повече от 2 символа.<b></font></p>";
}
else {
switch ($_POST['category']) {
case '3' : $where = "WHERE `awtor` LIKE '%$word%'"; break;
case '2' : $where = "WHERE `ime` LIKE '%$word%'"; break;
case '1' : $where = "WHERE `nowina` LIKE '%$word%'"; break;
default : $where = "`nowina` LIKE '%$word%' OR `ime` LIKE '%$word%' OR `awtor` LIKE '%$word%'";
}
$sql = "SELECT * from news WHERE ".$where;
$result = mysql_query($sql) or die (mysql_error());
$broi = mysql_num_rows($result);
$row = mysql_fetch_assoc($result);
if ($broi == 0) {
echo "<b>Резултати от търсенето:</b> <br /><p><b>Няма намерени резултати.</b></p>";
}
else {

echo "<b>Резултати от търсенето:</b> <br /> <li><a href='novini.php#$row[id]'>$row[ime]</a></li>
<br /> ";

}
}
}
?>
 
Replace каза:
Ето ти един вариант
<form action="search.php" method="post">
Търсене: <input type="text" name="word" size="40" class="search-pole" />
<select name="category"> <option value="">За всички</option> <option value="1">Дума</option> <option value="2">Име</option> <option value="3"> Автор </option> </select>
<input type="submit" name="submit" id="search-btn" value="търси" />
</form>
<p><ul class="ul-style01 box">
<?php
if ($_POST['submit']) {
$word = $_POST['word'];
include "conf.php";
if (strlen($word) < 3) {
echo "<p><b>Възникна грешка:</b> <br /><font color='#FF3333'><b>Трябва да въведете повече от 2 символа.<b></font></p>";
}
else {
switch ($_POST['category']) {
case '3' : $where = "WHERE `awtor` LIKE '%$word%'"; break;
case '2' : $where = "WHERE `ime` LIKE '%$word%'"; break;
case '1' : $where = "WHERE `nowina` LIKE '%$word%'"; break;
default : $where = "`nowina` LIKE '%$word%' OR `ime` LIKE '%$word%' OR `awtor` LIKE '%$word%'";
}
$sql = "SELECT * from news WHERE ".$where;
$result = mysql_query($sql) or die (mysql_error());
$broi = mysql_num_rows($result);
$row = mysql_fetch_assoc($result);
if ($broi == 0) {
echo "<b>Резултати от търсенето:</b> <br /><p><b>Няма намерени резултати.</b></p>";
}
else {

echo "<b>Резултати от търсенето:</b> <br /> <li><a href='novini.php#$row[id]'>$row[ime]</a></li>
<br /> ";

}
}
}
?>

При Опшъните Дума , Име ,Автор даваш грешка

Демо: http://sliven-bg.eu/search.php
 
Пфф, че съм заспал нещо ;)
$sql = "SELECT * from news WHERE ".$where;
просто изтрий оцветеното в червено WHERE, че в момента става WHERE WHERE ...
 
Replace каза:
Пфф, че съм заспал нещо ;)
$sql = "SELECT * from news WHERE ".$where;
просто изтрий оцветеното в червено WHERE, че в момента става WHERE WHERE ...

сега стана $sql = "SELECT * from news ".$where; , но пък на демото виж ко става пък на defaut : "за всички" не работи а на останалите работи :D

Тестови думи: за автор: Стоян , за име: Какво , за дума: текст
 
Там, понеже направо ти копирах заявката съм забравил да сложа отпред WHERE
:oops:
 
Replace каза:
Там, понеже направо ти копирах заявката съм забравил да сложа отпред WHERE
:oops:

Да , разбрах те :) . Мерси ,че ми разкри метода , всичко е перфектно сега :) . +1
 
Използвах тази търсачка с категорий ,но като дам търсене ми изписва това

Код:
Unknown column 'Movies/Documentaries' in 'where clause'

къде греша в кода
ето го инего
Код:
<form action="search.php" method="post"> 
Търсене: <input type="text" name="word" size="40" class="search-pole" /> 
<select name="category"> 
<option value="1">Movies/XviD</option> 
<option value="2">Movies/DVD-R</option> 
<option value="3">Movies/HDTV</option> 
<option value="4">Movies/x264</option> 
<option value="5">Movies/TV-episodes</option> 
<option value="6">Movies/Anime</option> 
<option value="7">Movies/Documentaries</option> 
</select> 
<input type="submit" name="submit" id="search-btn" value="търси" /> 
</form> 
<p><ul class="ul-style01 box"> 
<?php 
if ($_POST['submit']) { 
$word = $_POST['word']; 
include "config.php"; 
if (strlen($word) < 3) { 
echo "<p><b>Възникна грешка:</b> <br /><font color='#FF3333'><b>Трябва да въведете повече от 2 символа.<b></font></p>"; 
} 
else { 
switch ($_POST['category']) {
case '7' : $where = "WHERE `Movies/Documentaries` LIKE '%$word%'"; break;
case '6' : $where = "WHERE `Movies/Anime` LIKE '%$word%'"; break;
case '5' : $where = "WHERE `Movies/TV-episodes` LIKE '%$word%'"; break; 
case '4' : $where = "WHERE `Movies/x264` LIKE '%$word%'"; break;
case '3' : $where = "WHERE `Movies/HDTV` LIKE '%$word%'"; break; 
case '2' : $where = "WHERE `Movies/DVD-R` LIKE '%$word%'"; break; 
case '1' : $where = "WHERE `Movies/XviD` LIKE '%$word%'"; break; 
default : $where = "`klipove` LIKE '%$word%' OR `Movies/XviD` LIKE '%$word%' OR `Movies/DVD-R` LIKE '%$word%' OR `Movies/HDTV` LIKE '%$word%' OR `Movies/x264` LIKE '%$word%' OR `Movies/TV-episodes` LIKE '%$word%' OR `Movies/Anime` LIKE '%$word%' OR `Movies/Documentaries` LIKE '%$word%'"; 
} 
$sql = "SELECT * from klipove ".$where; 
$result = mysql_query($sql) or die (mysql_error()); 
$broi = mysql_num_rows($result); 
$row = mysql_fetch_assoc($result); 
if ($broi == 0) { 
echo "<b>Резултати от търсенето:</b> <br /><p><b>Няма намерени резултати.</b></p>"; 
} 
else { 

echo "<tr> 
<td style='border: 5px solid #999; background: #ccc; font-weight: bold;'>Заглавие: $row[title]</td>
</tr>
<tr>
<td style='border: 5px solid #999;'><img src='pictures/$pic' width='240px' height='320px' /></td>
</tr>
<tr>
<td><p>Описание:<hr width='200px' style=' border:5px solid red; margin-top:-10px; margin-left:-85px;' /><h3 style=' margin-left: 250px; margin-top:-5px;'>$row[opisanie]</h3></p></td>
</tr>
<tr>
<td align='right' style='border: 5px solid #999;'><a href='video/vij.php?video=$row[id]' style='text-decoration: none'>PLAY</a>
</td></tr>";
} 
} 
}  
?>
 

Back
Горе