phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

problema nella query, restituisce valori non richiesti

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
Rispondi
mousemahout
Utente
Utente
Messaggi: 1
Iscritto il: 18/09/2012, 17:29
Sesso: Maschio

problema nella query, restituisce valori non richiesti

Messaggio da mousemahout » 18/09/2012, 17:43

Ciao!
Ho un database contenente dei prodotti.
Ho dei controlli per filtrare la ricerca tra questi prodotti.
Tutto funziona tranne quando faccio una scelta multipla nel senso quando cerco un record o un'altro record nello stesso campo. Credo che il problema sia nella query select * from prodotti where a='a' or a='b' ma non ne vengo fuori aiutatemi!
posto il codice:

Codice: Seleziona tutto

<pre>
<?php if(!isset($_POST['search'])){echo'
 <h4>RICERCA AVANZATA</h4>
 <form name="cerca" action="" method="post">
 <fieldset>
 <legend>Prodotto</legend>
<p>
        <label>
                <input type="radio" name="prodotto" value="tv" id="prodotto_0" />
                tv</label>
        <br />
        <label>
                <input type="radio" name="prodotto" value="mon" id="prodotto_1" />
                monitor</label>
        <br />
</p>
</fieldset>
<fieldset>  
    <legend>Tipo di schermo </legend>
     LCD<input name="lcd" type="checkbox" value="lcd" />  
      LED<input name="led" type="checkbox" value="led" />
      </fieldset>
      <fieldset>
    
    <fieldset>
   
  
    
  </fieldset>  
    <button name="search" type="submit">presentare</button>
  
</form>';}else {
    
    include'config.php';
    include'connect.php';

$prodotto=$_POST['prodotto'];
$lcd=$_POST['lcd'];
$led=$_POST['led'];

$condizione = " WHERE 1=1 ";


if(isset($_POST['prodotto'])){
    $condizione.=" AND prodotto='$prodotto'";    
}


if($led!=''&&$lcd!=''){ 
    $condizione .=" AND screen = 'led' OR screen = 'lcd'";}


if(isset($_POST['tv'])&&!isset($_POST['monitor'])){//è stato selezionato c1 
    $condizione .=" AND prodotto = 'tv' AND prodotto != 'mon'"; 
} 
if(isset($_POST['monitor'])&&!isset($_POST['tv'])){//è stato selezionato c2 
    $condizione .=" AND prodotto = 'mon' AND prodotto != 'tv'"; 
}

if(isset($_POST['lcd'])&&!isset($_POST['led'])){//è stato selezionato c1 
    $condizione .=" AND screen = 'lcd' AND screen != 'led'"; 
} 
if(isset($_POST['led'])&&!isset($_POST['lcd'])){//è stato selezionato c1 
    $condizione .=" AND screen='led' AND screen!='lcd'"; 
} 



$query=mysql_query("SELECT * FROM prodotti".$condizione);

//$query2=mysql_query("SELECT COUNT(*) FROM prodotti".$were);

if(mysql_num_rows($query)==0){echo 'La ricerca non ha prodotto alcun risultato.'.$pollici;}else{

while($a = mysql_fetch_assoc($query)){
    
    echo $a['descrizione'].'<br><img src="prodotti/'.$a['categoria'].'/'.$a['sottocategoria'].'/'.$a['sigla'].'/images/'.$a['immagine'].'">'.$a['sigla'].$a['pagina'].'<br>';
    };}
}
    

?></pre>
Ultima modifica di Micogian il 19/09/2012, 20:40, modificato 1 volta in totale.
Motivazione: ci sono i bbcode per iserire del codice

Andrea RBR-W
Utente
Utente
Messaggi: 80
Iscritto il: 03/06/2012, 18:37
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux

Re: problema nella query, restituisce valori non richiesti

Messaggio da Andrea RBR-W » 19/09/2012, 19:25

questa dicitura mi suona strana...


if($led!=''&&$lcd!=''){

cmq hai provato a farti mostrare la query priam di eseguirla? io di solito me la faccio mostrare e la metto in pasto a phpmyadmin in modo da capire se il problema è quello... ;)

Avatar utente
Micogian
Leader Programmatori
Leader Programmatori
Messaggi: 3704
Iscritto il: 07/01/2010, 8:51
Versione: 3.2.0
Server: UNIX/Linux
PHP: 5.4.36
Database: MySQL 5.1.70-log
Località: Udine
Contatta:

Re: problema nella query, restituisce valori non richiesti

Messaggio da Micogian » 19/09/2012, 20:49

No, il codice if($led!=''&&$lcd!=''){ va letto in questo modo:

Codice: Seleziona tutto

if($led != '' && $lcd !=''){ 
che significa: "se $led è diverso da vuoto e $lcd è diversa da vuoto, inserisci la condizione seguente...

Ma così non devono essere vuoti entrambi i valori, non è che può esserci solo uno ?
In questo caso

Codice: Seleziona tutto

if($led != '' || $lcd !=''){ 

Andrea RBR-W
Utente
Utente
Messaggi: 80
Iscritto il: 03/06/2012, 18:37
Sesso: Maschio
Versione: 3.0.10
Server: UNIX/Linux

Re: problema nella query, restituisce valori non richiesti

Messaggio da Andrea RBR-W » 20/09/2012, 12:51

Micogian ha scritto:No, il codice if($led!=''&&$lcd!=''){ va letto in questo modo:

Codice: Seleziona tutto

if($led != '' && $lcd !=''){ 
che significa: "se $led è diverso da vuoto e $lcd è diversa da vuoto, inserisci la condizione seguente...

Ma così non devono essere vuoti entrambi i valori, non è che può esserci solo uno ?
In questo caso

Codice: Seleziona tutto

if($led != '' || $lcd !=''){ 
ah... cavolo... avevo interpretato '' (apice apice) come " (doppio apice)... è x quello ke nn capivo... :oops:

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 37 ospiti