Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Cautare avansata in MySQL folosind PHP (aplicare filtre)
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
Cez



Data înscrierii: 24/Mai/2005
Mesaje: 8
Locație: Constanta

Trimis: Mar Mai 24, 2005 8:24 am    Titlul subiectului: Cautare avansata in MySQL folosind PHP (aplicare filtre)  

Salut,

Sunt nou pe acest forum si... rasfoindu-l putin, am vazut ca raspunsurile sunt foarte rapide si usor de inteles.

Caracteristici:

1.Unde ruleaza scriptul: http://www.softsupplier.com;
2.Ce ma intereseaza: sa aplic un filtru la Search (sa-mi afiseze/caute numai dupa "freeware" sau "shareware");
3.Exemplu (de vazut ca sa fie inteles pentru eventualul "priceput"): http://www.softsupplier.com => in dreapta cauta "lotto" (search in Games) => SEARCH (sau Enter).

// Descriere pe larg

Site-ul este impartit in 2 coloane si anume in partea stanga "Software" / partea dreapta "Games". Dupa ce ai dat click pe SEARCH (nu uita sa selectezi "in Games") o sa-ti apara 3 rezultate care se potrivesc cererilor tale (in cazul nostru "lotto"). Pe primul rand unde apar rezultatele (dupa ce a fost apasata tasta Enter sau a fost dat click pe SEARCH), sus in dreapta este un buton "SWITCH". Eh, dand un click pe SWITCH, apare formularul Advanced Search.

Problema:

Dupa ce completez formularul Advanced search si la filtru bag de exemplu "freeware", rezultatele sunt returnate ca fiind "si shareware si freeware". Desi eu vreau ca filtrul selectat anterior sa aibe efect (evident); in cazul de fata sa mi le afiseze ca fiind "freeware".

// Cod PHP [idee filtru]

# selectie nr filtru (unde acel numar == "Games")

$ss = "select nrcrt from categs where name like '%Games%'";
$sr = mysql_query($ss,$res) or die(mysql_error());
$result = mysql_fetch_object($sr); $games_categ_id = $result->nrcrt;

# filtru software

$filter_software = "";
$filter_soft = $_GET['filter_soft'];
if ($filter_soft == "1") {
$filter = $_GET['filter'];
if ($filter == "all") { $filter_software = "where category like '$games_categ_id-%'"; }
if ($filter == "freeware") { $filter_software = "where license = 'Freeware' and category like '$games_categ_id-%'"; }
if ($filter == "shareware") { $filter_software = "where license != 'Freeware' and category not like '$games_categ_id-%'"; }
$_SESSION['soft_filter'] = $filter_software;
$_SESSION['soft_filter_used'] = $filter;
}

# cauta dupa preferinte

if($_GET['searchin']=="games"){
$category = "where category like '%$games_categ_id%'";
}elseif($_GET['searchin']=="software"){
$category = "where category not like '%$games_categ_id%'";
}elseif($_GET['searchin']=="all"){
$category = "select nrcrt,name,version,filesize,os,shortdescr,license,httpicon,dlcount,category from software ".$_SESSION['soft_filter']." OR name like \"%$trimmed%\" order by name ASC";
}

if($_GET['searchin']=="all"){
$selsoft = $category;
}else{
$selsoft = "select nrcrt,name,version,filesize,os,shortdescr,license,httpicon,dlcount,category from software $category AND name like \"%$trimmed%\" order by name ASC";
}

$ressoft = mysql_query($selsoft) or die(mysql_error());
$numrows=mysql_num_rows($ressoft);

if ($numrows == 0){
print "There's nothing to display in <font color=\"green\">".ucfirst($_GET['searchin'])."</font> for ".$trimmed."<br><br>";
}

...... aici le afisez.

Nu are rost sa mai lungesc codul. Am postat doar unde este de modificat. Astept un raspuns cat mai repede posibil.
Va multumesc anticipat,
Cezar.
Sus  
Cez



Data înscrierii: 24/Mai/2005
Mesaje: 8
Locație: Constanta

Trimis: Sâm Iul 09, 2005 2:33 pm    Titlul subiectului: Got it!  

Am rezolvat-o, multumesc oricum.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community