query con mysql, checkbox e php

danpippo

Utente Attivo
17 Mar 2006
31
0
0
ciao a tutti
ho un problema con uno script che ho trovato in rete che mi permette di selezionare dei dati attraverso dei checkbox e poi mi restituisce tutti i dati corrispondendti dal db. Fin qui tutto bene ma se vado a cambiare la query e ci inserisco ad esempio "order by prezzo", la query me la svolge ma non mi permette più di selezionare dalle checkbox e mi dice che non può eseguire la query, mentre io vorrei cambiarla.
di seguito il codice

PHP:
<?php
$nomeDB = "*****";
$connessione=@mysql_connect("","","")
or die ("Connessione al Server non possibile.");
@mysql_select_db($nomeDB,$connessione)
or die ("Connessione al DB non possibile.");

echo "<B>Elenco</B><br><br>";
echo "<i>Tipo Quantità Prezzo Genere</i><br><br>";
$q = "SELECT * FROM catalogo";
$condizione = "";
if ($_POST['c1'] == "colla")
{
if ( $condizione == "" )
{
}
else
{
$condizione = $condizione." OR ";
}
$condizione = $condizione." genere = 'colla' ";
}

//qui di seguito tutti gli "if" per ogni relativo checkbox, e poi

if ( $condizione <> "" )
{
$q = $q." WHERE ".$condizione;
}


$id_ris=@mysql_query($q)
or die ("Non è possibile eseguire la query!");
$num_libri=mysql_num_rows($id_ris);
// Si sposta sul primo record
mysql_data_seek($id_ris,0);
for( $i=0; $i<$num_libri; $i++ )
{
$record=mysql_fetch_array($id_ris);
//echo $i;
//echo ",";
//echo $record[0];
//echo ",";
//echo "&nbsp &nbsp";
echo "<b>$record[1]";
echo ",";
echo "&nbsp &nbsp";
echo $record[2];
echo ",";
echo "&nbsp &nbsp";
echo $record[3];
echo ",";
echo "&nbsp &nbsp";
echo $record[4];
echo "<br>";
}
?>

ho pensato che il problema possa essere

PHP:
if ( $condizione <> "" )
{
$q = $q." WHERE ".$condizione;
}

spero qualcuno possa aiutarmi, grazie
 
Ultima modifica di un moderatore:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
se credi che il problema sia li correggi in
PHP:
//........
if ( $condizione != "" )
{
//....
!= vuol dire: diverso da

p.s.
quando posti del codive racchiudilo tra gli appositi tag (nella barra di formattazione II° riga a dx)
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
riguardando meglio c'è qualcosa che non mi quadra tra questi if, inoltre dove valorizzi $condizione a parte =""?
PHP:
<?php
//...
$condizione = "";//metti a vuoto la variabile
if ($_POST['c1'] == "colla"){
	if ( $condizione == "" ){//se la variabile $condizione è vuota
	//cosa fai ? qui cosa c'è?
	}else{//questo else è relativo al secondo if?
		//ma se condizione non viene in qualche maniera riempita di qui non passi mai
		$condizione = $condizione." OR ";
	}//questa è la graffa di chiusura del secondo if con else?
	$condizione = $condizione." genere = 'colla' ";//non avendo riempito condizione $condizione diventa == " genere = 'colla' "
}//questa è la graffa di chiusura del primo if?
//qui di seguito tutti gli "if" per ogni relativo checkbox, e poi

if ( $condizione != "" ){//da quello che hai scritto sopra (ti sei dimenticato qualcosa nella tastiera?) $condizione non sarà mai diversa da vuota
	$q = $q." WHERE ".$condizione;
}
//...
?>

p.s.
inndentate il codice
 

danpippo

Utente Attivo
17 Mar 2006
31
0
0
grazie per avermi risposto
purtroppo mi sto imbarcamenando per cercare un modo x collegare un form con delle checkbox ad un db e visualizzare solo ciò che viene spuntato. Ho trovato in rete questo script che sembrava ottimo, ma non mi permette di modificare la query. Io mi intendo di db ma no di php e non so come fare.
Non è che mi proporresti un modo, anche perchè cercando nel forum e in rete non sono riuscito a trovare ciò che mi serviva. Grazie mille
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
dimmi se ho capito bene:
hai diverse check C1, C2, C3 ecc...
a cui ciascuna corrisponde un valore es.
C1 -> colla
C2 -> mastice
C3 -> hattac
in funzione del check selezionato vuoi che il WHERE della query divenga
es. selzionato C1 e C3
.... WHERE genere ='colla' OR genere ='hattac'
con tutte le combinazioni possibili, è così?
 

danpippo

Utente Attivo
17 Mar 2006
31
0
0
perfettamente!
questo è il codice
PHP:
<input name="c1" value="colla" type="checkbox">colla
però vorrei avere la possibilità di modificare la mia query, inserendo order by prezzo ad esempio o limit 1 per visualizzare solo un campo alla volta, anche perchè se il codice lo lascio così com'è mi fa vedere a video tutti i campi che io spunto, ma non mi permette di modificare in nessum modo la query perchè mi da errore.
perciò se io lascio la query così
PHP:
$q = "SELECT * FROM catalogo";
funziona e mi fa vedere solo ciò che spunto, ma se la modifico
PHP:
$q = "SELECT * FROM catalogo order by prezzo";
mi va in errore.
grazie mille
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
per prima cosa, sei sicuro di avere nella tabella il campo chiamato 'prezzo', verifica che non si chiamo (es.) 'Prezzo', la query è semplicissima e non dovrebbe darti errore.
se poi hai pazienza fra un po' ti posto come dovresti fare per il where
 

danpippo

Utente Attivo
17 Mar 2006
31
0
0
grazie di tutto!
non vorrei approfittare della tua pazienza ma visto che si avvicna natale e siamo tutti piu buoni..., avrei anche bisogno (me ne sono accorto ora...) che devo filtrare i risultati della query tra piu tabelle. Queste tabelle hanno gli stessi medesimi campi ma si chiamano in maniere differenti. Per intenderci: i campi sono uguali x tutti e sono tipo, quantità, prezzo e genere ma le tabelle si chiameranno tabella1, tabella2 ecc...
è possibile visualizzare i dati raccolti da ogni tabella in modo tale che mi faccia vedere a video i risultati per ogni tabella?
cioè
tabella1 : tipo, quantità, prezzo e genere
tabella 2:tipo, quantità, prezzo e genere
grazie ancora...
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
ti metto tutto insieme anche per la seconda domanda.
io farei nel form di ricerca una select con cui selezioni la tabella chi ti interessa
PHP:
<?php
//.....
$tabella=" tabella_1 ";//comunque selezioni una

if(isset($_POST['tabella'])){//è stato selezionato c1
	$tabella= $_POST['tabella'];
}
$condizione = " WHERE 1=1 ";//in pretica se tutti i check vuoti la condizione E' SEMPRE SODDISFATTA quindi presenta tutti
if(isset($_POST['c1'])){//è stato selezionato c1
	$condizione .=" OR genere='".$_POST['c1']."' ";
}
if(isset($_POST['c2'])){//è stato selezionato c2
	$condizione .=" OR genere='".$_POST['c2']."' ";
}
//ecc.... per i vari check
/*
in funzione di qule check ha selezionato la variabile $condizione potra assumere i valori
" WHERE 1=1 " nesseuna selezione
" WHERE 1=1 OR genere='colla' "
" WHERE 1=1 OR genere='colla' OR genere='mastice'"
con tutte le combinazioni possibili
per cui la query diventa
*/
$q="SELECT * FROM $tabella $condizione ORDER BY prezzo";
//....
?>
se invece devi selezionare su tutte le tabelle devi passare all join (ma forse devi studiare un altro po')

p.s.
guarda che il codice è un'idea schematica quindi perfettibile
ps al p.s.
la prossima volta: un problema => un post
 
Discussioni simili
Autore Titolo Forum Risposte Data
V [MySQL] problema query con date su server MySQL 5
P Query Mysql con Join PHP 2
D [MySQL] Tabelle "molti a molti", SELECT con troppe QUERY MySQL 7
P [MYSQL] Query su tabelle con clausola "essenziale" MySQL 10
A Query mssql su mysql con linked server Database 0
Albertoesse Problemi passaggio valori da un Form ad Una classe con query mysql PHP 12
G Problema con query mysql MySQL 1
L PHP: problema con query mysql. PHP 3
A Indicizzare i risultati di una query Mysql con php PHP 0
F Estrazione da db MySQL con query molto lunga PHP 13
S Autocompletamente con jQuery, PHP e MySQL - Problema con le query PHP 7
K [MYSQL] problema con una query in loop MySQL 1
B Problema con query mySql Java 2
L [PHP & MySQL]Query con funzioni matematiche PHP 12
A problema con query mysql PHP 1
J query con php su mysql PHP 1
M Interazione tra un più campi di un form con un solo campo di database - query mysql PHP 2
T Query con date MS Access 1
L Query e selezione DB con $_POST PHP 2
O problema con query PHP 4
G Query con i giorni della settimana MySQL 10
T Query su due tabelle con totali Database 4
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
G Menù a tendina di ricerca con query PHP 1
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
R Aiuto con le query MS Access 2
M Problemi con query a più tabelle PHP 3
F query e form con select multipla PHP 17
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
O query con date in formato stringa PHP 3
M [PHP] Problema con query select PHP 2
M [PHP] Problemi con query unione PHP 11
D [Visual Basic] [MS Access] query con parametro di testo Visual Basic 4
L [PHP] IF con risultato query PHP 7
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
P [PHP] Query con variabile PHP 2
G [PHP] FORM INVIO VALORI A QUERY CON TRE CONDIZIONI PHP 2
Laskot Query al DB con php (INSERT) PHP 2
S [PHP] Più fetch_array con unica query... PHP 9
sandropochi [PHP] Query per estrarre record con data successiva a quella odierna PHP 2
D Problema con query in php PHP 5
M [PHP] Problema con query PHP 17
elpirata [PHP] Paginazione dati estratti da una query con più condizioni PHP 17
Rikk73 [C#] problema con stampa da query linq EnumerableRowCollection .NET Framework 0
M Visualizzare su più pagine risultato query con fpdf PHP 6
M Problema con query PHP 15
F Tabella con prima colonna con i risultati di una query PHP 1
M Problemi con query su due tabelle PHP 2

Discussioni simili