Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Query condizionata

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208

    Query condizionata

    Salve!
    Sto imparando passo passo il php e questo è finora il costrutto più complesso che mi sia capitato...ho in mente come costruirlo ma probabilmente combino qualche errore in fase di compilazione per quel che riguarda la sintassi.

    Mi spiego: ho un form con una doppia scelta in cui voglio cmq lasciare la libertà di scegliere un campo solo ed ottenere il risultato corrispondente ad un unica scelta. Per fare questo ho dapprima impostato un <option value=null> in entrambi i campi di scelta (assieme ovviamente alle altre opzioni), e poi ho compilato la pagina di manipolazione dei dati in questo modo (omettendo per ora la formattazione e lo stile di quello che viene stampato):



    $linea=$_GET[linea];
    $prodotto=$_GET[prodotto];

    {
    if ($linea=null) {

    $result= mysql_query ("SELECT * from commerciale where categoria='$prodotto'") or die('query non eseguita') ;
    while ($query = mysql_fetch_array($result)) {

    echo "$query[linea]
    $query[categoria]
    $query[text]"; }


    if ($prodotto=null) {
    $result= mysql_query ("SELECT * from commerciale where linea='$linea'") or die('query non eseguita') ;
    while ($query = mysql_fetch_array($result)) {

    echo "$query[linea]
    $query[categoria]
    $query[text]"; }
    }
    else {$result= mysql_query ("SELECT * from commerciale where categoria='$prodotto' AND linea='$linea'") or die('query non eseguita') ;
    while ($query = mysql_fetch_array($result)) {

    echo "$query[linea]
    $query[categoria]
    $query[text]"; }
    }
    }



    L'errore che alla fine mi da è:

    parse error, unexpected $end in C:\AppServ\www\lucumia\risposta.php on line 42

    che è la linea di </html>

    Più che capire l'errore finale, mi interesserebbe sapere se è giusta l'impostazione logica di quest'espressione. Grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    Questo è il tuo codice corretto... l'errore era dato dalla prima graffa che aprivi.. che era di troppo... nota anke i due commenti che ti ho messo

    Codice PHP:
    $linea=$_GET[linea];
    $prodotto=$_GET[prodotto];


    if (
    $linea==NULL//tu avevi scritt $linea=null RICORDA CHE $a=1 è un assegnamento, per fare il confronto sono 2 gli uguali da usare 
    {
        
    $resultmysql_query ("SELECT * from commerciale where categoria='$prodotto'") or die('query non eseguita') ; 
            while (
    $query mysql_fetch_array($result)) 
            {
                echo 
    "$query[linea]
    $query[categoria]
    $query[text]"
            }

        if (
    $prodotto==NULL//cme sopra
        
    {
                
    $resultmysql_query ("SELECT * from commerciale where linea='$linea'") or die('query non eseguita') ; 
                        while (
    $query mysql_fetch_array($result)) 
                        {
                            echo 
    "$query[linea]
    $query[categoria]
    $query[text]"
                        }
        }
        else 
        {
            
    $resultmysql_query ("SELECT * from commerciale where categoria='$prodotto' AND linea='$linea'") or die('query non eseguita') ; 
                while (
    $query mysql_fetch_array($result)) 
                {
                    echo 
    "$query[linea]
    $query[categoria]
    $query[text]"
                }
        }


  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    k grazie!

    Adesso provo a vedere, immaginavo che ci fosse qualche erroretto del tipo che hai indicato nei commenti...mi fa piacere intanto di aver azzeccato quasi per intero il costrutto

    Grazie mille ancora, vi faccio sapere se gira poi

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Devo ringraziarti davvero ipnotic, una volta compresa la struttura diventa semplice aggiungere tutte le condizioni che ti vengono in mente.

    Posto per completezza d'informazione la versione definitiva del codice, come potrai vedere ho aggiunto un if in cui prego l'utente di scegliere almeno un opzione in un campo con il link che lo rinvia nuovamente alla home-page:


    $linea=$_GET[linea];
    $prodotto=$_GET[prodotto];

    if ($linea=='null') // se scelgono solo la tipologia del prodotto
    {
    $result= mysql_query ("SELECT * from commerciale where categoria='$prodotto'") or die('query 1 non eseguita') ;
    while ($query = mysql_fetch_array($result)) {
    echo "$query[linea]
    $query[categoria]
    $query[text]";
    }
    }

    if ($prodotto=='null') //se invece scelgono solo la linea
    {
    $result= mysql_query ("SELECT * from commerciale where linea='$linea'") or die('query 2 non eseguita') ;
    while ($query = mysql_fetch_array($result)) {
    echo "$query[linea]
    $query[categoria]
    $query[text]";

    }
    }
    if (($prodotto=='null') && ($linea=='null')) // invito a scegliere almeno un campo se entrambi sono nulli
    { die ("seleziona almeno un campo per favore
    clicca <a href=index.php>QUI</a> per tornare indietro");
    }

    else //query regolare con doppia scelta
    {
    $result= mysql_query ("SELECT * from commerciale where categoria='$prodotto' AND linea='$linea'") or die('query 3 non eseguita') ;

    }

    while ($query = mysql_fetch_array($result)) {
    echo "$query[linea]
    $query[categoria]
    $query[text]";
    }


    Grazie ancora per l'aiuto!

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.