Нещо като проста търсачка ?

DirectX

Registered
ето това ми е "кода" ама нещо не се получава ... :D
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$query = mysql_query("SELECT * FROM `blanka` where type = '%_GET['type']'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}}
?>
 
Опитай така:
PHP:
$query = mysql_query("SELECT * FROM `blanka` where type = '%".$_GET['type']."%'") or die(mysql_error()."<br />грешка на ред: ".__LINE__);

Съветвам те обаче първо да обезопасиш стринга за търсене защото така както си го направил ще те инжектират.
Примерно нещо такова:
PHP:
$search = mysql_real_escape_string(strip_tags($_GET['type']));
$query = mysql_query("SELECT * FROM `blanka` where type = '%".$search."%'") or die(mysql_error()."<br />грешка на ред: ".__LINE__);



DirectX каза:
ето това ми е "кода" ама нещо не се получава ... :D
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$query = mysql_query("SELECT * FROM `blanka` where type = '%_GET['type']'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}}
?>
 
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = $_GET['type'];
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
}
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
?>
 
tedo96 каза:
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = $_GET['type'];
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
}
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
?>
има грешка на 14 ред .. :/
 
Ако ти дава някаква грешка е добре да я paste-неш. Нали се сещаш че нямаме твоята база под ръка, за да тестваме :)

Присвои си първо заявката на променлива и преди да я изпълниш направи едно echo и дай да я видим как изглежда:

$q = "SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'";
echo $q;
$query = mysql_query($q) or die(mysql_error()."<br />грешка на ред: ".__LINE__);
 
Извинявам се че забравих да постна грешката .. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\VertrigoServ\www\search.php on line 14
 
DirectX каза:
Извинявам се че забравих да постна грешката .. Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\VertrigoServ\www\search.php on line 14
Не ти е валидна заяката, някои от зададените параметри не са валидни..
 
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = $_GET['type'];
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
}
?>
 
tedo96 каза:
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = $_GET['type'];
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
}
?>
Няма да е лошо да му сложиш едни htmlspecialchars и addslashes, защото след 5 минути пак ще пусне тема: "Дава ми грешка" :?:
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = htmlspecialchars(addslashes($_GET['type']));
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
}
?>
 
Я опитай така да видим:

PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_GET['type'])){
$type = $_GET['type'];
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
}
?>
 
Ev0luti0N каза:
tedo96 каза:
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = $_GET['type'];
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
}
?>
Няма да е лошо да му сложиш едни htmlspecialchars и addslashes, защото след 5 минути пак ще пусне тема: "Дава ми грешка" :?:
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = htmlspecialchars(addslashes($_GET['type']));
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
}
?>

:) според мен не е проблема в стринга, защото щеше да сработи die и нямаше да стигне до 14-ти ред, а иначе си прав - направих опит по-горе, ама не слуша!
 
PHP:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\VertrigoServ\www\search.php on line 14
Тази грешка не е от mysql_query, а от mysql_fetch_assoc ако сложи mysql_error() ще му изведе грешката на mysql_query.. :shock:
 
PHP:
<form name="form1" method="post" action="">
<select name="search" id="type">
    <option>Music</option>
    <option>Fun video</option>
  </select>
<input name="Submit" type="submit" id="button" value="Search !" />
</form>
<?php
include "config.php";
if(isset($_POST['submit'])){
$type = htmlspecialchars(addslashes($_GET['search']));
$query = mysql_query("SELECT * FROM `blanka` WHERE `type` LIKE '%$type%'")or die(mysql_error()."<br />грешка на ред: ".__LINE__); 
while($row = mysql_fetch_array($query)){ 
$desc = $row['desc'];
$type = $row['type']; 
echo "$desc - $type <br /a>";
}
}
?>
 
Да - големи сме слепоци. Промени си кода ей така:
HTML:
<select name="search" id="type">
    <option value="Music">Music</option>
    <option value="Fun video">Fun video</option>
  </select>
<input name="submit" type="submit" id="button" value="Search !" />
</form>

Заявката ти не се е изпълнявала защото проверяваш за $_POST['submit'], а си дефинирал $_POST['Submit'].

За да достъпиш стойност от падащ списък трябва да си дефинираш value на всеки option.

В кода промени и $_GET с $_POST - събмитваш си формата с POST (method=POST, значи всички променливи ги търси в POST).

PHP:
$type = htmlspecialchars(addslashes($_POST['search']));

И за напред внимавай с малки/големи букви като дефинираш имена.
 
Браааааааааааааааааааааааааааааааааааааааат не знам как да те черпа 1 бира !!! :Д получи сеее :P
 

Back
Горе