Pagina 1 din 1
metoda cautare avansata pe categorii
Scris: Sâm Iun 16, 2012
de duvibv
Salutare useri marplo,
Nu vreau sa cer scriptul complet dar as vrea sfaturi cum sa incep sa fac o cautare avansata.
As dori ceva ca pe tocmai.ro (cautare+categorie+judet) si sa tina cont de valorile din fiecare!
Ex. cautare:masina categorie:auto judet:Brasov
Bineinteles categoriile, judetul etc luate din bd!
Niste sfaturi de inceput ar fi utile!
Va multumesc
metoda cautare avansata pe categorii
Scris: Sâm Iun 16, 2012
de MarPlo
Salut
In principiu se preia cu $_POST valoarea din formularul transmis si se adauga ca egalitate la coloana asociata ei, pentru includere in conditia WHERE din comanda SELECT.
Uite un exemplu din care sa te inspiri:
Cod: Selectaţi tot
$categ = isset($_POST['categorie']) ? "AND `categorie`='". $_POST['categorie']. "'" : '';
$judet = isset($_POST['judet']) ? "AND `judet`='". $_POST['judet']. "'" : '';
$sql = "SELECT * from `nume_tabel` WHERE `cautare`='masina' $categ $judet";
- Daca sunt si alte variante, cine cunoaste sa le scrie aici.
metoda cautare avansata pe categorii
Scris: Mie Iun 20, 2012
de duvibv
Am facut scriptul sa functioneze, cu ajutorul explicatiilor date de marplo in postul lui.
Multumesc foarte mult .
Acesta e scriptul:
Cod: Selectaţi tot
<?php
include "includes/header.html";
include "includes/menu_stanga.html";
include "includes/menu_dreapta.html";
$term = isset($_GET['term']) ? $_GET['term']. "" : '';
$judet = isset($_GET['search_judet']) ? $_GET['search_judet']. "" : '';
$categ = isset($_GET['search_category']) ?$_GET['search_category']. "" : '';
?>
<div id="content">
<?php
// conecteaza la baza de date
$conn = new mysqli('localhost', 'root', '', 'db');
// verifica conexiunea
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
if($judet==0){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND categorie=$categ";
}
elseif($categ==0){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet=$judet";
}
else{
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet=$judet AND categorie=$categ";
}
// executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
// Parcurge si afiseaza randurile gasite
while($row = $result->fetch_assoc()) {
?>
<a href=/proiect_final/anunt.php?id=<?php echo $row['id'];?>
<?php
echo '<br />'. $row['titlu']. ' - '. $row['continut']. ' - '. $row['judet'];
echo '<hr>';
echo '</a>';
}
}
else {
echo '0 rezultate';
}
$conn->close();
?>
</div>
<?php
include "includes/footer.html";
?>
Explicatiile sunt in script. Daca ai nelamuriri poti intreba fara probleme.
Numai bine.
metoda cautare avansata pe categorii
Scris: Vin Iun 22, 2012
de adymdc86
Am pus codul dat de tine intr-o pagina caut.php si am facut modificarile la campuri cum am eu in baza, categ cu categorie, respectiv continut cu descriere. In rest campurile conincid.
M-am impotmolit insa aici:
Cod: Selectaţi tot
<a href=/proiect_final/anunt.php?id=<?php echo $row['id']; ?>
nu inteleg cum anume trebuie.
Daca ai putea sa fi putin mai explicit in limita timpului, sunt cam la inceput in php...
metoda cautare avansata pe categorii
Scris: Vin Iun 22, 2012
de Viruzzz
Schimba /proiect_final/anunt.php cu caut.php
metoda cautare avansata pe categorii
Scris: Vin Iun 22, 2012
de adymdc86
Am pus: <a href=/caut.php?id=<?php echo $row['id']; ?>
Insa nu inteleg cum functioneaza, adica daca accesez pagina numedomeniu.com/caut.php imi spune 0 rezultate...
metoda cautare avansata pe categorii
Scris: Vin Iun 22, 2012
de Viruzzz
trebuie sa'ti faci form de cautare ca sa cauti, ce este mai sus nu are nici un form:)
de ex:
Cod: Selectaţi tot
<form method="post" action="caut.php">
<input type="text" name="search" />
<input name="submit" value="Search" />
</form>
e luat de la mine de pe site, dar modificat pt acesta
metoda cautare avansata pe categorii
Scris: Vin Iun 22, 2012
de adymdc86
am creat o pagina find.php in care am pus urmatorul cod:
Cod: Selectaţi tot
<?php
include("include/db.php");
require_once("include/header.php");
require_once("include/content.php");
require_once("include/footer.php");
?>
<form action="caut.php" method="post" name="frm" >
<input class="custom" type="text" maxlength="30" name="search" size="26" />
<select name="judet">
<option value="selecteaza">Selecteaza judetul</option>
<option value="Alba">Alba</option><option value="Arad">Arad</option>
<option value="Arges">Arges</option>
<option value="Bacau">Bacau</option>
<option value="Bihor">Bihor</option>
<option value="Bistrita-Nasaud">Bistrita-Nasaud</option>
<option value="Botosani">Botosani</option>
<option value="Brasov">Brasov</option>
<option value="Braila">Braila</option>
<option value="Bucuresti">Bucuresti</option>
<option value="Buzau">Buzau</option>
<option value="Caras-Severin">Caras-Severin</option>
<option value="Calarasi">Calarasi</option>
<option value="Cluj">Cluj</option>
<option value="Constanta">Constanta</option>
<option value="Covasna">Covasna</option>
<option value="Dambovita">Dambovita</option>
<option value="Dolj">Dolj</option>
<option value="Galati">Galati</option>
<option value="Giurgiu">Giurgiu</option>
<option value="Gorj">Gorj</option>
<option value="Harghita">Harghita</option>
<option value="Hunedoara">Hunedoara</option>
<option value="Ialomita">Ialomita</option>
<option value="Iasi">Iasi</option>
<option value="Ilfov">Ilfov</option>
<option value="Maramures">Maramures</option>
<option value="Mehedinti">Mehedinti</option>
<option value="Mures">Mures</option>
<option value="Neamt">Neamt</option>
<option value="Olt">Olt</option>
<option value="Prahova">Prahova</option>
<option value="Satu-Mare">Satu-Mare</option>
<option value="Salaj">Salaj</option>
<option value="Sibiu">Sibiu</option>
<option value="Suceava">Suceava</option>
<option value="Teleorman">Teleorman</option>
<option value="Timis">Timis</option>
<option value="Tulcea">Tulcea</option>
<option value="Vaslui">Vaslui</option>
<option value="Valcea">Valcea</option>
<option value="Vrancea">Vrancea</option>
</select>
<select name="categorie">
<option value='selecteaza'>Selecteaza categoria</option>
<option value="Afaceri">Afaceri</option>
<option value="Agricole">Agricole</option>
<option value="Animale de casa">Animale de casa</option>
<option value="Calculatoare">Calculatoare</option>
<option value="Carti/Reviste">Carti/Reviste</option>
<option value="Constructii">Constructii</option>
<option value="Diverse">Diverse</option>
<option value="Donatii">Donatii</option>
<option value="Hobby">Hobby</option>
<option value="Imobiliare">Imobiliare</option>
<option value="Locuri de munca">Locuri de munca</option>
<option value="Masini">Masini</option>
<option value="Matrimoniale">Matrimoniale</option>
<option value="Medicale">Medicale</option>
<option value="Mobilier">Mobilier</option>
<option value="Muzica">Muzica</option>
<option value="Obiecte de arta">Obiecte de arta</option>
<option value="Pierderi/Gasiri">Pierderi/Gasiri</option>
<option value="Prestari servicii">Prestari servicii</option>
<option value="Sport/Foro">Sport/Foro</option>
<option value="Telefoane">Telefoane</option>
<input type="submit" size="20" value="" class="search" />
</form>
insa cand dau cautare imi afiseaza 0 rezultate, desi exista acel cuvant.
metoda cautare avansata pe categorii
Scris: Sâm Iun 23, 2012
de MarPlo
Salut
Trebuie sa corelezi datele din Formular cu cele in care scriptul PHP le preia.
De exemplu, daca in php sunt preluate cu $_GET , in <form> trebuie:
method="get" .
La fel si la numele campurilor, daca in php e:
$_GET['search_judet'] , campul respectiv din formular trebuie sa aibe:
name="search_judet" .
Deci, formularul ar fi cam asa (sau poti corecta dupa cum ai tu codul):
Cod: Selectaţi tot
<form action="caut.php" method="get" name="frm" >
<input class="custom" type="text" maxlength="30" name="term" size="26" />
<select name="search_judet">
<option value="selecteaza">Selecteaza judetul</option>
...
</select>
<input type="submit" size="20" value="" class="search" />
</form>
- Despre formulare, adresa URL si PHP poti invata in lectia:
Utilizare formulare.
metoda cautare avansata pe categorii
Scris: Sâm Iun 23, 2012
de adymdc86
Am pus codul de mai jos in pagina caut.php
Cod: Selectaţi tot
<?php
include("include/db.php");
require_once("include/header.php");
require_once("include/content.php");
require_once("include/footer.php");
date_default_timezone_set('Europa/Bucharest');
$data = date("Y-m-d");
$up = mysql_query("update anunturi set expirat='1' where expirat='0' and dataexp='$data'");
$up1 = mysql_query("update utilizatori set ban='0' where ban='1' and data_unban='$data'");
if(isset($_COOKIE['login'])){
$utilizator = $_COOKIE['login'];
$sel = mysql_num_rows(mysql_query("select id from utilizatori where ban='1' and utilizator = '$utilizator'"));
if($sel == 1){
header( 'Location: logout.php' ) ;
}
}
$term = isset($_GET['term']) ? $_GET['term']. "" : '';
$judet = isset($_GET['search_judet']) ? $_GET['search_judet']. "" : '';
$categorie = isset($_GET['search_category']) ?$_GET['search_category']. "" : '';
?>
<div id="content">
<?php
// conecteaza la baza de date
$conn = new mysqli('localhost', 'elwzovnu_testts', 'Ir}_br=TRmb_', 'elwzovnu_testtt');
// verifica conexiunea
if (mysqli_connect_errno()) {
exit('Connect failed: '. mysqli_connect_error());
}
if($judet==0){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND categorie=$categorie";
}
elseif($categorie==0){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet=$judet";
}
else{
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet=$judet AND categorie=$categorie";
}
// executa interogarea si retine datele returnate
$result = $conn->query($sql);
// daca $result contine cel putin un rand
if ($result->num_rows > 0) {
// Parcurge si afiseaza randurile gasite
while($row = $result->fetch_assoc()) {
?>
<a href=/caut.php?id=<?php echo $row['id'];?>
<?php
echo '<br />'. $row['titlu']. ' - '. $row['descriere']. ' - '. $row['judet'];
echo '<hr>';
echo '</a>';
}
}
else {
echo '0 rezultate';
}
$conn->close();
?>
</div>
iar in alta pagina find am pus
Cod: Selectaţi tot
<?php
include("include/db.php");
require_once("include/header.php");
require_once("include/content.php");
require_once("include/footer.php");
?>
<form action="caut.php" method="get" name="frm" >
<input class="custom" type="text" maxlength="30" name="term" size="26" />
<select name="search_judet">
<option value="selecteaza">Selecteaza judetul</option>
<option value="Timis">Timis</option>
</select>
<select name="search_category">
<option value="selecteaza">Selecteaza CATEGORIA</option>
<option value="Calculatoare">Calculatoare</option>
</select>
<input type="submit" size="20" value="Cauta" class="search" />
</form>
insa tot nu imi gaseste nici un rezultat. linkul de sus din browser dupa ce dau cauta este urmatorul.
Cod: Selectaţi tot
numesite.com/caut.php?term=manager&search_judet=Timis&search_category=Calculatoare
iar tabela anunturi are urmatoarele campuri
Cod: Selectaţi tot
id
email
categorie
judet
titlu
descriere
expirat
activat
vizualizari
telefon
Imi puteti spune unde ar putea fi problema?
metoda cautare avansata pe categorii
Scris: Dum Iun 24, 2012
de MarPlo
Incearca sa inlocuiesti in scriptul tau, partea asta de cod:
Cod: Selectaţi tot
if($judet==0){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND categorie=$categorie";
}
elseif($categorie==0){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet=$judet";
}
else{
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet=$judet AND categorie=$categorie";
}
Cu aceasta:
Cod: Selectaţi tot
if($judet==''){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND categorie='$categorie'";
}
elseif($categorie==''){
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet='$judet'";
}
else{
$sql = "SELECT * FROM `anunturi` WHERE `titlu` LIKE '%$term%' AND judet='$judet' AND categorie='$categorie'";
}