[RISOLTO]Come generare query dinamica PHP-MYSQL

andreadb91

Nuovo Utente
20 Giu 2013
19
0
1
Salve, ho provato da solo ma non riesco quindi mi affido a voi

Ho questo form

HTML:
<script lang="javascript">
jQuery(document).ready( function (){
filterResults();
});
</script><form id="trova-smartphone" name="filterForm" method="post" action="">

<button name="resetForm" id="resetForm" type="button">Reimposta ricerca</button>

<input type="hidden" name="aziendaProduttrice_mod" value="equal" id="aziendaProduttrice_mod">
<select name="aziendaProduttrice" id="aziendaProduttrice" onchange="filterResults()">
    <option value="0" label="--Seleziona--">--Seleziona--</option>
    <option value="Acer" label="Acer">Acer</option>
    <option value="Apple" label="Apple">Apple</option>
    <option value="Asus" label="Asus">Asus</option>
    <option value="HTC" label="HTC">HTC</option>
    <option value="Huawei" label="Huawei">Huawei</option>
</select>

<input type="hidden" name="gpu_mod" value="equal" id="gpu_mod">
<select name="gpu" id="gpu" onchange="filterResults()">
       <option value="0" label="--Seleziona--">--Seleziona--</option>
       <option value="Adreno 200" label="Adreno 200">Adreno 200</option>
        <option value="Adreno 203" label="Adreno 203">Adreno 203</option>
        <option value="Adreno 205" label="Adreno 205">Adreno 205</option>
        <option value="Adreno 220" label="Adreno 220">Adreno 220</option>
         <option value="Adreno 225 " label="Adreno 225 ">Adreno 225 </option>
        <option value="Adreno 320" label="Adreno 320">Adreno 320</option>
        <option value="PowerVR SGX 543MP2" label="PowerVR SGX 543MP2">PowerVR SGX 543MP2</option>
        <option value="PowerVR SGX 543MP3" label="PowerVR SGX 543MP3">PowerVR SGX 543MP3</option>
        <option value="PowerVR SGX535" label="PowerVR SGX535">PowerVR SGX535</option>
         <option value="PowerVR SGX540" label="PowerVR SGX540">PowerVR SGX540</option>
         <option value="PowerVR SGX543MP4" label="PowerVR SGX543MP4">PowerVR SGX543MP4</option>
         <option value="Tegra 2" label="Tegra 2">Tegra 2</option>
         <option value="Tegra 3" label="Tegra 3">Tegra 3</option>
</select>

<input type="hidden" name="ram_mod" value="equal" id="ram_mod">
<select name="ram" id="ram" onchange="filterResults()">
        <option value="0" label="0">0</option>
        <option value="384" label="384">384</option>
         <option value="512" label="512">512</option>
         <option value="576" label="576">576</option>
        <option value="768" label="768">768</option>
        <option value="1024" label="1024">1024</option>
        <option value="2048" label="2048">2048</option>
</select>

<input type="hidden" name="fotocamera_mod" value="equal" id="fotocamera_mod">
<select name="fotocamera" id="fotocamera" onchange="filterResults()">
         <option value="0" label="0">0</option>
         <option value="3.2" label="3.2">3.2</option>
         <option value="5" label="5">5</option>
         <option value="8" label="8">8</option>
          <option value="13" label="13">13</option>
</select>
</form>
</div>
 <br>
<div id="searchResult" style="margin-left: 3em"><b>SMARTPHONE</b></div>

Queta è la pagina dove è presente lo script filterResult()

HTML:
function load_content(name)
{
       jQuery.ajax({
            url: 'filterResult.php',
            context: document.body,
            type: 'POST',
            data: name,
            success:
               function(data)
		{
	        	jQuery("#searchResult").html(data);
		},
		complete: 
			function()
			{
	        	jQuery('#filterForm').css('height',jQuery('#searchResult').height());
	        	
			}
	});		
}

function filterResults()
{
        var fltr='';
	var choice;
	
	jQuery('select > option:selected').each(function() {
		fltr += jQuery(this).parent().attr('name') + '=' + jQuery(this).val() + '&';
	});
	jQuery('input[type=hidden]').each(function() {
		fltr += jQuery(this).attr('name') + '=' + jQuery(this).val() + '&';
        });

       fltr = fltr.substr(0,fltr.length-1);
       load_content(fltr);
}

function resetSelect(name)
{
	jQuery("select[name="+name+"] option:first-child").attr("selected","selected");
	filterResults();
}

function resetForm()
{
	jQuery('form[name=filterForm]')[0].reset();
	filterResults();
}

jQuery(document).ready( function (){	
	jQuery('body').on('click','#refresh',function (){
		filterResults();
	});
	jQuery('body').on('click','#resetForm',function (){
		resetForm();
	});
	jQuery('body').on('click','a.deleteFilter',function (){
		resetSelect(jQuery(this).attr("name"));
	});
});


Ora non riesco a recuperare tutte le select selezionate per poi metterle nella query
Questa è la pagina filterResult.php

PHP:
<?php
include("../include/connect.php");
$conn=mysql_connect($HOST, $USER, $PASSWORD);
$db_ok=mysql_select_db($DB, $conn);

$name = $_POST['name']; //non credo che vada bene

$i=0;
$ris = mysql_query("SELECT * FROM cellulare WHERE [B][U]non so cosa mettere[/U][/B] ", $conn);
while ($row = mysql_fetch_array($ris)) {
       if($i++%4 == 0)
             { echo "</tr><tr>"; }
             echo "<td class='image'> <img src=immagini/".$row["image"]."><br>";
             echo '<a title="Smartphone" href="/smartphone/public/public/cell/idSmart/'.$row['idSmart'].'">';
               $row['aziendaProduttrice'];' ';echo $row['nome'].'</td></a>';
}
echo "</tr></table>";
mysql_close($conn);
?>
 
Ultima modifica di un moderatore:
ciao
se non ho capito male vorresti fare la query in funzione di quello che selezioni, giusto?
per prima cosa nelle select dove hai l'opzione --Seleziona--
HTML:
<option value="0" label="--Seleziona--">--Seleziona--</option>
è meglio che tu modifichi in
HTML:
<option value="" label="--Seleziona--">--Seleziona--</option>
poi per la query
PHP:
<?php
//....
$wh= " WHERE 1=1 ";
if($_POST['aziendaProduttrice']!=""){
	$wh.="AND azienda='".$_POST['aziendaProduttrice']."' ";//non so come chiami i campi
}
if($_POST['gpu']!=""){
	$wh.="AND gpu='".$_POST['gpu']."' ";
}
if($_POST['ram']!=""){
	$wh.="AND ram='".$_POST['ram']."' ";
}
if($_POST['fotocamera']!=""){
	$wh.="AND fotocamera='".$_POST['fotocamera']."' ";
}
$query="SELECT * FROM cellulare $wh";//ti conviene tenerla divisa per verificarla
$ris = mysql_query($query);
//....
?>

poi abbandona le vecchie istruzioni mysql (tra un po' non funzioneranno più) e passa a mysqli o alla classe pdo
 

Discussioni simili