Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    query mysql - where con + condizioni

    in una query sql si possono determinare + condizioni? qual'è l'esatta sintassi?
    ho bisogno di selezionare da una tabella tutti i campi a condizione che il campo categoria sia uguale alla variabile $categoria e il campo provincia alla variabile $provincia

  2. #2
    Codice PHP:
    $sql "SELECT * FROM tabella WHERE categoria = '".$categoria."' AND provincia = '".$provincia."' "



  3. #3
    grazie, inoltre vorrei sapere, come posso fare in modo che alle 2 variabili sia assegnato un valore nullo se nell'url non sono presenti?
    codice:
    pagina.php?categoria=categoria1&provincia=provincia1
    $categoria = $_GET['categoria'];
    $provincia = $_GET['provincia'];
    1. se nell'url manca la provincia, mi da errore x variabile non definita;
    2. nella query sql, se la variabile $provincia / $categoria è vuota, mi ignora quella condizione?

    x intenderci devo creare un riepilogo di eventi, che devono essere selezionati a seconda della richiesta per categoria,provincia o per entrambe le condizioni

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Codice PHP:
    $where "";
    if(isset(
    $_GET["categoria"]))
      
    $where .= " categoria = '".$_GET["categoria"] . "' and";
    if(isset(
    $_GET["provincia"]))
      
    $where .= " provincia = '".$_GET["provincia"] . "' and";
    if(
    $where != "")
      
    $where substr($where,0,strlen($where)-3); // questo toglie l'eventuale and rimasta "orfana"
    if($where != "")
      
    $where " WHERE $where"// ho separato questa istruzione dalla prec per facilità di lettura
    $sql "SELECT * FROM tabella $where"

  5. #5
    grazie per la risposta, scusatemi x l'ignoranza, ma c'è un problema:
    il ciclo while che dovrebbe stampare una tabella con i dati impaginati non funziona
    codice:
    <?php
    $where = ""; 
    if(isset($_GET["categoria"])) 
      $where .= " categoria = '".$_GET["categoria"] . "' and"; 
    if(isset($_GET["provincia"])) 
      $where .= " provincia = '".$_GET["provincia"] . "' and"; 
    if($where != "") 
      $where = substr($where,0,strlen($where)-3); // questo toglie l'eventuale and rimasta "orfana" 
    if($where != "") 
      $where = " WHERE $where"; // ho separato questa istruzione dalla prec per facilità di lettura 
    //Definisco il totale di records per pagina
    $limit2 = 10;
    //Recupero dall'url la pagina
    $currpage = (isset($_GET['page'])) ? intval($_GET['page']) : 0;
    //Recupero dall'url la categoria
    //imposto il record di partenza secondo la formula (pagina corrente * totale record x pagina - totale record x pagina)
    $limit1 = $currpage * $limit2 - $limit2;
    //Mi collego al database
    $db = mysql_connect("localhost","campaniavideo","");
    //seleziono il database di lavoro
    mysql_select_db("campaniavideo_it_db",$db);  
    $request = "SELECT * FROM eventi $where LIMIT $limit1,$limit2";
    $result = mysql_query ($request, $db);
    $page_back = $currpage - 1;
    $page_forw = $currpage + 1;
    ?>
     <?php
    			while ($eventi =mysql_fetch_object($result))
        {
             print("
                 <table width='400' border='0' cellspacing='0' cellpadding='0'>
      <tr>
        <td width='13%'><?php echo $eventi->categoria ?></td>
        <td width='9%'><?php echo $eventi->data ?></td>
        <td width='53%'><?php echo $eventi->titolo ?></td>
        <td width='25%'><?php echo $eventi->provincia ?></td>
      </tr>
    </table>
    		  ");
    
    } 
    ?>
    2. le variabili $categoria e $provincia

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Devo dire che mi sembra strana questa istruzione (anche se uso sempre echo e mai print)
    Codice PHP:
    print("
                 <table width='400' border='0' cellspacing='0' cellpadding='0'>
      <tr>
        <td width='13%'><?php echo $eventi->categoria ?></td>
        <td width='9%'><?php echo $eventi->data ?></td>
        <td width='53%'><?php echo $eventi->titolo ?></td>
        <td width='25%'><?php echo $eventi->provincia ?></td>
      </tr>
    </table>
              ");
    Non è che dovrebbe essere
    Codice PHP:
    print("
                 <table width='400' border='0' cellspacing='0' cellpadding='0'>
      <tr>
        <td width='13%'>"
    .$eventi->categoria."</td>
        <td width='9%'>"
    .$eventi->data."</td>
        <td width='53%'>"
    .$eventi->titolo."</td>
        <td width='25%'>"
    .$eventi->provincia."</td>
      </tr>
    </table>
              "
    ); 

  7. #7
    nn va lo stesso, mi da come errore
    codice:
    Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8\www\campaniavideo\eventi.php on line 170

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Apparentemente è sbagliata la query
    Fai un echo della variabile $request prima di mysql_query
    Copia/incolla la query e provala direttamente su phpmyadmin (o quello che usi) e vedi che dice (o al massimo posta qua e vediamo se la sintassi va bene). Ho paura che le variabili $limit1 e $limit2 possano avere dei valori sballati

  9. #9
    scusa, in questo preciso istante ho individuato l'errore
    non inserendo $where funziona tutto correttamente
    come posso fare?

  10. #10
    grazie, risolto, non so precisamente come, ma riscrivendo $where è andato tutto,boh...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.