Търсачка

Black

Registered
Трябва ми ето тъкава търсачка това е само пример:
Код:
<form action="search.php" method="post" name="search" id="search">
<tr>
<td colspan=1 align="center" width="125">Търсачка</td>
</tr>
<tr>
<td width="50%" valign="top"> Първо:<br> 
<select name="search" id="select">
<option value="all">Всички категории</option>
<option value="едно">1 категория</option>
<option value="две">2 категория</option>
<option value="три">3 категория</option>
<option value="четири">4 категория</option></select>
</td>
</tr>
<tr>
<td width="50%" valign="top"> Второ:<br> 
<select name="search" id="search">
<option value="all">Всички категории</option>
<option value="бяло">Бяло</option>
<option value="зелено">Зелено</option>
<option value="червено">Червено</option>
</select>
</td>
</tr>
<td height="50" colspan="2">
<div align="center">
<input type="submit" name="Submit" value="Search">
<input name="search" type="hidden" id="search" value="go"></div>
</td>
</tr>
</table>
</td>
</tr>
</form>
 
Ем баце, с няколко проверки става.

search.php
Код:
<?php 


$hostname = "host";
$username = "potr";
$password = "parola";
$db = "baza danni";

mysql_connect($host,$name,$pass) or die("Не мога да създам връзка ");

mysql_select_db("$db") or die("Не мога да избера базата данни "); 


$category = $_POST['category'];
$category2 = $_POST['category2'];

if($category == "all") {
$cat = ""; } else {
$cat = "WHERE cat='$category'"; }
if($category2 == "all") {
$cat2 = ""; } else {
$cat2 = "AND cat2='$category2'"; }

$result = mysql_query("SELECT * FROM tablica $cat $cat2");

while($row = mysql_fetch_array($result)){

echo "$row['name']";
echo "<br/>"; }
?>


search.html


Код:
<form action="search.php" method="post" name="search" id="search">
<tr>
<td colspan=1 align="center" width="125">Търсачка</td>
</tr>
<tr>
<td width="50%" valign="top"> Първо:<br> 
<select name="category" id="select">
<option value="all">Всички категории</option>
<option value="едно">1 категория</option>
<option value="две">2 категория</option>
<option value="три">3 категория</option>
<option value="четири">4 категория</option></select>
</td>
</tr>
<tr>
<td width="50%" valign="top"> Второ:<br> 
<select name="category2" id="search">
<option value="all">Всички категории</option>
<option value="бяло">Бяло</option>
<option value="зелено">Зелено</option>
<option value="червено">Червено</option>
</select>
</td>
</tr>
<td height="50" colspan="2">
<div align="center">
<input type="submit" name="Submit" value="Search">
<input name="search" type="hidden" id="search" value="go"></div>
</td>
</tr>
</table>
</td>
</tr>
</form>

И value-то на option-а ще играе името на категорията. Тоест ако си избрал "Червено" в category2, ще изкара всички записи, на които колоната cat2 е "червено". Ако плюс това си избрал и "4 категория" в category, ще изкара всички записи чиито колони cat и cat2 са съответно "червено" и "4 категория".
Надявам се да си схванал смисъла.

Успех! :?:
 
Във search.php ми дава грешка на този код: echo "$row['name']";
:roll:

А по този начин по който аз пробвах не ми искарва нищичко искам да искарам от таблица model и mark ето какво правя:

<?php
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "дб-то";
$conn = mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error());
mysql_select_db($dbname, $conn)or die(mysql_error());

$category = $_POST['category'];
$category2 = $_POST['category2'];

if($category == "all") {
$model = ""; } else {
$model = "WHERE model='$category'"; }
if($category2 == "all") {
$mark = ""; } else {
$mark = "AND mark='$category2'"; }

$result = mysql_query("SELECT * FROM carss $model $mark");

while($row = mysql_fetch_array($result)){

echo "$model $mark";
echo "<br/>"; }
?>
 
Код:
<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpass = ""; 
$dbname = "дб-то"; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error()); 
mysql_select_db($dbname, $conn)or die(mysql_error()); 

$category = $_POST['category']; 
$category2 = $_POST['category2']; 

if($category == "all") { 
$model = ""; } else { 
$model = "WHERE model='$category'"; } 
if($category2 == "all") { 
$mark = ""; } else { 
$mark = "AND mark='$category2'"; } 

$result = mysql_query("SELECT * FROM carss $model $mark"); 

while($row = mysql_fetch_array($result)){ 

echo "$model $mark"; 
echo "<br/>"; } 
?>
Пробвай така
Код:
<?php 
$dbhost = "localhost"; 
$dbuser = "root"; 
$dbpass = ""; 
$dbname = "дб-то"; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error()); 
mysql_select_db($dbname, $conn)or die(mysql_error()); 

$category = $_POST['category']; 
$category2 = $_POST['category2']; 

if($category == "all") { 
$model = ""; } else { 
$model = "WHERE model='$category'"; } 
if($category2 == "all") { 
$mark = ""; } else { 
$mark = "AND mark='$category2'"; } 

[color=red]$result = mysql_query("SELECT * FROM carss WHETE model=$model AND mark=$mark"); 

while($row = mysql_fetch_array($result)){ 
extract($row);
echo "$model $mark"; [/color]
echo "<br/>"; } 
?>
 
Като му дам да търси ми искарва примерно:
WHERE model='бяло' AND mark='1категория'

примерно... а не ми показва резултати :roll:
 
дай си БД - то за да ти кажа, ама попринцип, там където е
echo "$model $mark";
трябва да се напише echo "$id $car $model $mark"; - примерно за да изкара колите, които са с такъв model и mark, а може да се наложи да смениш горе имената на променливите, за да може долу да изкараш $model $mark, а ти си ги записал тези променливи горе.
 
Код:
 <?php
$host = "localhost";
$name = "root";
$pass = "";
$db = "baza danni";

$connection = mysql_connect($host, $name, $pass)or die("Немога да се свържа с mysql");
mysql_select_db($db, $connection)or die(mysql_error());

$category = $_POST['category'];
$category2 = $_POST['category2'];

if($category == "all") {
$model = ""; } else {
$model = "WHERE model='$category'"; }
if($category2 == "all") {
$mark = ""; } else {
$mark = "AND mark='$category2'"; }

$result = mysql_query("SELECT * FROM cars $model $mark");

while($row = mysql_fetch_array($result)) {
echo "Модел - $row['model'] <br/> Марка - $row['marka']"; 
echo "<hr/>"; 
}
?>
TESTED
 

Back
Горе