[PHP] ricerca per un campo o per più campi

Lalli

Nuovo Utente
6 Ott 2016
15
0
1
28
Ciao a tutti ragazzi, sono nuovo ed è da poco che mi diletto con il php.

Io avrei bisogno di fare una ricerca per un solo campo o per più campi, ho cercato su questo sito ed ho trovato e provato delle soluzioni che sono state date ad altri utenti, solo che a me non funziona e non riesco a capire perchè, vi provo a postare il codice.
PHP:
<input type="submit" name="btnRicerca" value="ricerca" />
<input type="submit" name="btnVisualizza" value="visualizza tutto" OnClick="" />
<table style="width:100%">
<tr>
    <th> ricerca per filiale <input type="text" name="ricercaF"  /> </th>
    <th> ricerca per ufficio <input type="text" name="ricercaUf" /> </th>
    <th> ricerca per utente <input type="text" name="ricercaUt"  /> </th>
    <th> ricerca per tipo <input type="text" name="ricercaT" /> </th>
    <th> ricerca per marca <input type="text" name="ricercaM"  /> </th>
    <th> ricerca per modello <input type="text" name="ricercaMo" /> </th>
    <th> ricerca per matricola <input type="text" name="ricercaMat"  /> </th>
    <th> ricerca per note <input type="text" name="ricercaN"  /> </th>
    <th> ricerca per DataDDT <input type="text" name="ricercaDa"  />  </th>
    <th> ricerca per DDT <input type="text" name="ricercaD"  />  </th>
    <th> ricerca per fornitore <input type="text" name="ricercaFo" />  </th>
    <th> ricerca per ACQ/NOL <input type="text" name="ricercaA" />  </th>
    <th> ricerca per scadenza <input type="text" name="ricercaS" /> </th>



</tr>

<table style="width:100%">
<tr>
    <th>ID</th>
    <th>Filiale</th>
    <th>Ufficio</th>
    <th>Utente</th>
    <th>Tipo</th>
    <th>Marca</th>
    <th>Modello</th>
    <th>Matricola</th>
    <th>Note</th>
    <th>DataDDT</th>
    <th>DDT</th>
    <th>Fornitore</th>
    <th>ACQNOL</th>
    <th>Scadenza</th>
</tr>
<?php
$user="root";
$pass="";
$dbh = mysql_connect("localhost","root",$pass);
mysql_select_db('hardwarea') or die(mysql_error());
try
{
 
 
    if(isset($_POST['btnVisualizza']))
    {
       
        $stmt = ("Select * from gestione");
        $ris= mysql_query($stmt) or die($stmt."<br/><br/>".mysql_error());
       
        while($rigo=mysql_fetch_array($ris))
        {
   
            $ID = $rigo['ID'];
            $Filiale = $rigo['Filiale'];
            $Ufficio = $rigo['Ufficio'];
            $Utente = $rigo['Utente'];
            $Tipo = $rigo['Tipo'];
            $Marca = $rigo['Marca'];
            $Modello = $rigo['Modello'];
            $Matricola = $rigo['Matricola'];
            $Note = $rigo['Note'];
            $DataDDT = $rigo['DataDDT'];
            $DDT = $rigo['DDT'];
            $Fornitore = $rigo['Fornitore'];
            $ACQNOL = $rigo['ACQNOL'];
            $Scadenza = $rigo['Scadenza'];
            echo" <tr> <td> " . $rigo['ID'] . " </td> <td> " . $rigo['Filiale'] . " </td> <td> " . $rigo['Ufficio'] . " </td> <td> " . $rigo['Utente'] . " </td> <td> " . $rigo['Tipo'] . " </td> <td> " . $rigo['Marca'] . " </td> <td> " . $rigo['Modello'] . " </td> <td> " . $rigo['Matricola'] . " </td> <td> " . $rigo['Note'] . " </td> <td> " . $rigo['DataDDT'] . " </td> <td> " . $rigo['DDT'] . " </td><td> " . $rigo['Fornitore'] . " </td> <td> " . $rigo['ACQNOL'] . " </td> <td> " . $rigo['Scadenza'] . " </tr>";
        }
    }
 
    if(isset($_POST['ricercaF']))
    {
        $ricercaF = $_POST['ricercaF'];
    }
    if(isset($_POST['ricercaUf']))
    {
        $ricercaUf = $_POST['ricercaUf'];
    }
    if(isset($_POST['ricercaUt']))
    {
        $ricercaUt = $_POST['ricercaUt'];
    }
    if(isset($_POST['ricercaT']))
    {
        $ricercaT = $_POST['ricercaT'];
    }
    if(isset($_POST['ricercaM']))
    {
        $ricercaM = $_POST['ricercaM'];
    }
    if(isset($_POST['ricercaMo']))
    {
        $ricercaMo = $_POST['ricercaMo'];
    }
    if(isset($_POST['ricercaMat']))
    {
        $ricercaMat = $_POST['ricercaMat'];
    }
    if(isset($_POST['ricercaN']))
    {
        $ricercaN = $_POST['ricercaN'];
    }
    if(isset($_POST['ricercaDa']))
    {
        $ricercaDa = $_POST['ricercaDa'];
    }
    if(isset($_POST['ricercaD']))
    {
        $ricercaD = $_POST['ricercaD'];
    }
    if(isset($_POST['ricercaFo']))
    {
        $ricercaFo = $_POST['ricercaFo'];
    }
    if(isset($_POST['ricercaA']))
    {
        $ricercaA = $_POST['ricercaA'];
    }
    if(isset($_POST['ricercaS']))
    {
        $ricercaS = $_POST['ricercaS'];
    }
 
    if(isset($_POST['btnRicerca']))
    {
   
        $were=" WHERE ";
        if( $ricercaF != "" )
        {
            $were.="Filiale= '$ricercaF' AND ";
        }
   
        if( $ricercaUf != "" )
        {
            $were.="Ufficio= '$ricercaUf' AND ";
        }
        if( $ricercaUt !="" )
        {
            $were.="Utente= '$ricercaUt' AND ";
        }
        if( $ricercaT !="" )
        {
            $were.="Tipo= '$ricercaT' AND";
        }
        if( $ricercaM !="" )
        {
            $were.="Marca= '$ricercaM' AND";
        }
        if( $ricercaMo !="" )
        {
            $were.="Modello= '$ricercaMo' AND";
        }
        if( $ricercaMat !="" )
        {
            $were.="Matricola= '$ricercaMat' AND";
        }
        if( $ricercaN !="" )
        {
            $were.="Note= '$ricercaN' AND";
        }
        if( $ricercaDa !="" )
        {
            $were.="DataDDT= '$ricercaDa' AND";
        }
        if( $ricercaD !="" )
        {
            $were.="DDT= '$ricercaD' AND";
        }
        if( $ricercaFo !="" )
        {
            $were.="Fornitore= '$ricercaFo' AND";
        }
        if( $ricercaA !="" )
        {
            $were.="ACQNOL= '$ricercaA' AND";
        }
        if( $ricercaS !="" )
        {
            $were.="Scadenza= '$ricercaS' AND";
        }
        $were.=" 1=1";
        $stmt = "SELECT * FROM gestione $were";
        $ris= mysql_query($stmt) or die($stmt."<br/><br/>".mysql_error());
    }
 
 
 
}
catch (PDOException $e)
{
    print "Error!: " . $e->getMessage() . "<br/>";
    die();
}
?>
 
Ultima modifica di un moderatore:
Ho risolto aggiungendo un while in fondo così:
PHP:
while($rigo=mysql_fetch_array($ris))
        {
       
            $ID = $rigo['ID'];
            $Filiale = $rigo['Filiale'];
            $Ufficio = $rigo['Ufficio'];
            $Utente = $rigo['Utente'];
            $Tipo = $rigo['Tipo'];
            $Marca = $rigo['Marca'];
            $Modello = $rigo['Modello'];
            $Matricola = $rigo['Matricola'];
            $Note = $rigo['Note'];
            $DataDDT = $rigo['DataDDT'];
            $DDT = $rigo['DDT'];
            $Fornitore = $rigo['Fornitore'];
            $ACQNOL = $rigo['ACQNOL'];
            $Scadenza = $rigo['Scadenza'];
            echo" <tr> <td> " . $rigo['ID'] . " </td> <td> " . $rigo['Filiale'] . " </td> <td> " . $rigo['Ufficio'] . " </td> <td> " . $rigo['Utente'] . " </td> <td> " . $rigo['Tipo'] . " </td> <td> " . $rigo['Marca'] . " </td> <td> " . $rigo['Modello'] . " </td> <td> " . $rigo['Matricola'] . " </td> <td> " . $rigo['Note'] . " </td> <td> " . $rigo['DataDDT'] . " </td> <td> " . $rigo['DDT'] . " </td><td> " . $rigo['Fornitore'] . " </td> <td> " . $rigo['ACQNOL'] . " </td> <td> " . $rigo['Scadenza'] . " </tr>";
        }
 
Ultima modifica di un moderatore:
ciao
visto che stai imparando, alcune cose
a che ti serve scrivere tutta quella pappardella?
o così
PHP:
<?php
//...
while($rigo=mysql_fetch_array($ris)){           
    $ID = $rigo['ID'];
    $Filiale = $rigo['Filiale'];
    //ecc....
    $Scadenza = $rigo['Scadenza'];
    echo" <tr> <td> $ID </td> <td> $Filiale </td> <td> $Ufficio </td> <td> $Utente </td> <td> $Tipo </td> <td> $Marca </td> <td> $Modello </td> <td> $Matricola </td> <td> $Note </td> <td> $DataDDT </td> <td> $DDT </td><td> $Fornitore </td> <td> $ACQNOL </td> <td> $Scadenza </tr>";
}   
//....
?>
o così
PHP:
<?php
//...
while($rigo=mysql_fetch_array($ris)){           
            echo" <tr> <td> " . $rigo['ID'] . " </td> <td> " . $rigo['Filiale'] . " </td> <td> " . $rigo['Ufficio'] . " </td> <td> " . $rigo['Utente'] . " </td> <td> " . $rigo['Tipo'] . " </td> <td> " . $rigo['Marca'] . " </td> <td> " . $rigo['Modello'] . " </td> <td> " . $rigo['Matricola'] . " </td> <td> " . $rigo['Note'] . " </td> <td> " . $rigo['DataDDT'] . " </td> <td> " . $rigo['DDT'] . " </td><td> " . $rigo['Fornitore'] . " </td> <td> " . $rigo['ACQNOL'] . " </td> <td> " . $rigo['Scadenza'] . " </tr>";
}   
//....
?>
poi abbandona le istruzioni mysql deprecate e passa alle nuove mysqli

e una cosa, non fondamentale ma che può evitare errori soprattutto di digitazione, per le variabili e per i nomi dei campi usa caratteri minuscoli, inoltre è convenzione riservare le variabili tutte maiuscole alle costanti,

p.s.
quano scrivi delcodice usa gli appositi bccode
 
ok grazie mille per le dritte !

ps: scusa l'ignoranza ma come faccio a usare gli appositi bccode? perchè io ho cliccato su inserisci e ho selezionato il codice, ma a quanto pare ho sbagliato :(
 
ciao
quando inserisci il codice (iconcina sulla barra di formattazione) nella parte scura inserisci il codice e nel menu a tendina selezioni o generico (code) o php o html
 

Discussioni simili