Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2000
    Messaggi
    727

    mysql: where like se vuoto = tutto

    come in oggetto ma mò mi spiego meglio :-)

    ho fatto questa funzione che mi calcola alla perfezione la somma dei valori di una colonna del mio db una volta che io le ho indicato le 3 variabili anno, classe e sez

    <?php
    $row=mysql_fetch_assoc(mysql_query("SELECT SUM(p1a) AS totale_colonna_p1a FROM questionario WHERE anno like '$anno' and classe like '$classe' and sez like '$sez'"));
    echo $row[totale_colonna_p1a];
    ?>

    io però avrei bisogno che SE, per esempio, io lascio la variabile anno vuota lei mi calcolasse la somma di tutti gli anni e così via anche per le altre 2 variabili

    ossia vorrei che intendesse il campo vuoto come se io gli dicessi: prendi tutto

    argh spero di essermi spiegato, grazie!!!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    Componi la query da php ...
    codice:
    $query = "SELECT SUM(p1a) AS totale_colonna_p1a FROM questionario";
    
    $where = "";
    if((isset($anno) && $anno)|| (isset($classe) && $classe) || (isset($sezione) && $sezione)) {
      $query .= " WHERE ";
    
      if(isset($anno) && $anno) {
         $where .= " anno='".$anno."'";
      }
    
      if(isset($classe) && $classe) {
         if($where) {
            $where .= ' AND ';
         }
         $where .= " classe='".$classe."'";
      }
    
      if(isset($sez) && $sez) {
         if($where) {
            $where .= ' AND ';
         }
         $where .= " sez='".$sez."'";
      }
    }
    
    $query .= $where;
    $result = mysql_query($query));
    
    if($result) {
    
      $row = mysql_fetch_assoc($result);
    ....
    ...
    
    } else {
      echo 'Query errata:'.$query;
      echo '
    '; 
      echo mysql_error();
    }

  3. #3
    E' sufficiente utilizzare un IF per costruire la query SQL in modo diverso a seconda dei dati inviati dall'utente.

  4. #4
    Una soluzione fantasiosa

    Codice PHP:
    <?php
    $classe 
    3;
    $sez "C";

    $valori = array('anno''classe''sez');
    $WHERE = array();

    foreach(
    $valori as $KEY)
    {
        if(isset(${
    $KEY}) && trim(${$KEY}) != "")    $WHERE[$KEY] = {$KEY} like '{${$KEY}}' ";
    }

    if(
    count($WHERE) > 0)    $WHERE implode('AND'$WHERE);
    else 
    $WHERE "1 = 1";


    $SELECT "SELECT SUM(p1a) AS totale_colonna_p1a FROM questionario WHERE {$WHERE}";
    echo 
    $SELECT;
    ?>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.