Visualizzare risultati ottenuti da una select multipla

AndreaeNoemi

Nuovo Utente
18 Dic 2012
24
0
1
Ciao ragazzi,
in un sito ho inserito il classico "doppio menù a tendina + tasto invio".

Come faccio a fare in modo che i parametri indicati nei due menù vadano a creare una pagina specifica che contiene i risultati della ricerca?
I risultati della ricerca dovrebbero andare su una pagina che contiene l'elenco di tutte le attività trovate come ad esempio in questa pagina: www.matrimonio.it/cerca/arredamento/roma

Tempo fa ho già chiesto aiuto in questo e in altri forum, ho capito che dovrei usare PHP e MYSQL e mi è stato suggerita questa cosa che riporto:


basterebbe passare ad una unica pagina un URL con parametri tipo lavori.php?citta=padova&attivita=giardinieri o lavori.php?citta=padova&attivita=1 per farlo basta creare la stringa così con la seguente funzione PHP:
PHP:
header("Location = lavori.php?citta=" . $_POST['citta'] . "&attivita=" . $_POST['attivita']);
e poi:
PHP:
if ($_REQUEST['citta'] && !$_REQUEST['attivita']) { 
  $sql = "SELECT FROM lavori WHERE citta='" . $_REQUEST['citta'] . "'"; 
  // esegui la query e visualizza i record dei lavori torvati per ogni città 
  echo '<select name="lavori" size="1">'; 
  while ($row = mysql_fetch_assoc()) { 
    echo '<option value="' . $row['id_lavoro'] . '">' . $row['lavoro'] . '</option>'; 
  } 
  echo '<select>';

Io conosco solo alcune basi di PHP e MYSQL e non riesco a mettere in pratica questa soluzione ne a capirla, cosa ci devo fare con questo codice?
 
In quel codice c'erano alcuni errori, te l'ho corretto, comunque se non sai le basi ti consiglio di leggerti prima una buona guida e poi provare da te

PHP:
if ($_REQUEST['citta'] && !$_REQUEST['attivita']) {  
  $sql = mysql_query("SELECT FROM lavori WHERE citta='" . mysql_real_escape_string($_REQUEST['citta']) . "'");  
  // esegui la query e visualizza i record dei lavori torvati per ogni città  
  echo '<select name="lavori" size="1">';  
  while ($row = mysql_fetch_assoc($sql)) {  
    echo '<option value="' . $row['id_lavoro'] . '">' . $row['lavoro'] . '</option>';  
  }  
  echo '<select>';
 
Ciao e grazie per la correzione.

Io conosco le basi di php, ma non capisco come applicare questo codice, ho guardato moltissimi tutorial in rete ma non ho trovato nulla che mi abbia chiarito questo codice e a capire come muovermi per realizzare quello che desidero cioè questo risultato!! Per farti capire, se dovessi applicare un semplice "if ed else" variabili o anche un array saprei come muovermi ma non capisco come posso applicare questo codice e far funzionare il tutto.

Sai indicarmi un punto specifico di una guida che possa aiutarmi a capire come applicare questo codice? o se no mi sai dare tu qualche indicazione?
 
Ciao e grazie per la correzione.

Io conosco le basi di php, ma non capisco come applicare questo codice, ho guardato moltissimi tutorial in rete ma non ho trovato nulla che mi abbia chiarito questo codice e a capire come muovermi per realizzare quello che desidero cioè questo risultato!! Per farti capire, se dovessi applicare un semplice "if ed else" variabili o anche un array saprei come muovermi ma non capisco come posso applicare questo codice e far funzionare il tutto.

Sai indicarmi un punto specifico di una guida che possa aiutarmi a capire come applicare questo codice? o se no mi sai dare tu qualche indicazione?
Mi sembra un po troppo vago, spiegati meglio oppure scrivi qual'è il risultato che intendi visualizzare per trovare una qualche guida, comunque lo script sopra stampa semplicemente una select se vengono inviate quelle variabili, quindi ti basta gestire quelle e aggiungere la configurazione di mysql
 
Cerco di spiegarmi meglio.
Intanto il risultato esatto che voglio ottenere è questo: http://www.matrimonio.it/cerca/arredamento/roma

Andando con ordine, non ho capito come devo applicare questa cosa:
basterebbe passare ad una unica pagina un URL con parametri tipo lavori.php?citta=padova&attivita=giardinieri o lavori.php?citta=padova&attivita=1 per farlo basta creare la stringa così con la seguente funzione PHP:
PHP:
header("Location = lavori.php?citta=" . $_POST['citta'] . "&attivita=" . $_POST['attivita']);
 
Ok, grazie delle risposte intanto.
Andando avanti nello sviluppo del codice (mi sono fatto aiutare da una persona) sono arrivato a questo risultato. Ma come potete vedere dalla pagina c'è qualcosa che non funziona.

Lo script contiene due select e richiama dei dati da un database mysql che in teoria dovrebbero venir stampati su una pagina...ma purtroppo c'è qualcosa che non funziona, non trova nulla nel database.

PHP:
<?php 
  if ($_REQUEST['ok']) { 
    $cittaID = $_POST['citta']; 
    $mestiereID = $_POST['mestieri']; 
  } 
?> 
<!DOCTYPE HTML> 

<html> 

<head> 
  <title>PROVA SELECT CON PHP</title> 
  <meta charset="utf-8" /> 
</head> 

<body> 
  <form id="sel" method="post" action="emulman.php?ok=1"> 
    <div><label for="citta">Citt&agrave;</label> 
    <select name="citta" id="citta" size="1" tabindex="1" onchange="location.href='emulman.php?ok=1'"> 
    <?php 
      $link = mysql_connect('localhost', 'nozzeprova', '');//utente e passw 
      if (!$link) 
        echo '<script>alert("Could not connect: ' . mysql_error() . ')</script>'; 
      else { 
        $db_selected = mysql_select_db('my_nozzeprova', $link);//nome del mio database my_nozzeprova 
        if (!$db_selected) 
          echo '<script>alert("Cannot use database: ' . mysql_error() . ')</script>'; 
        else { 
          $result = mysql_query("SELECT * FROM citta ORDER BY nome ASC"); 
          if (mysql_num_rows($result) < 1) 
            echo "No rows found, nothing to print so am exiting"; 
           else { 
             while ($row = mysql_fetch_assoc($result)) { 
               if ($_REQUEST['ok']) 
                 echo '<option value="' . $row['ID_CITTA'] . '"' . selected($row['ID_CITTA'], $cittaID) . '>' . $row['nome'] . '</option>'; 
               else 
                echo '<option value="' . $row['ID_CITTA'] . '">' . $row['nome'] . '</option>'; 
             } 
           } 
         } 
       } 
      mysql_close($link); 
    ?> 
   </select></div> 
                        e 
   <div><label for="mestieri">Mestiere</label> 
    <select name="mestier" id="mestiere" size="1" tabindex="1" onchange="location.href='emulman.php?ok=1'"> 
    <?php 
      $link = mysql_connect('localhost', 'nozzeprova', '');//utente e passw 
      if (!$link) 
        echo '<script>alert("Could not connect: ' . mysql_error() . ')</script>'; 
      else { 
        $db_selected = mysql_select_db('my_nozzeprova', $link);//nome del mio database my_nozzeprova 
        if (!$db_selected) 
          echo '<script>alert("Cannot use database: ' . mysql_error() . ')</script>'; 
        else { 
          $result = mysql_query("SELECT * FROM mestieri ORDER BY nome ASC"); 
          if (mysql_num_rows($result) < 1) 
            echo "No rows found, nothing to print so am exiting"; 
           else { 
             while ($row = mysql_fetch_assoc($result))  { 
               if ($_REQUEST['ok']) 
                 echo '<option value="' . $row['ID_MESTIERE'] . '"' . selected($row['ID_MESTIERE'], $cittaID) . '>' . $row['nome'] . '</option>'; 
               else 
                 echo '<option value="' . $row['ID_MESTIERE'] . '">' . $row['nome'] . '</option>'; 
             } 
           } 
         } 
       } 
      mysql_close($link); 
    ?> 
   </select></div> 
   <input type="submit" name="invia" value="Cerca"> 
   <?php 
     if ($_REQUEST['ok']) { 
       $link = mysql_connect('localhost', 'nozzeprova', '');//utente e passw 
       if (!$link) { 
         die('Could not connect: ' . mysql_error()); 
       } 
       $db_selected = mysql_select_db('my_nozzeprova', $link);//nome del mio database my_nozzeprova 
       if (!$db_selected) { 
         die ('Can't use foo : ' . mysql_error()); 
       } 
       $result = mysql_query("SELECT * FROM aziende WHERE id_citta = " . $cittaID . " AND id_mestiere = " . $mestiereID); 
       if (mysql_num_rows($result) < 1) { 
         echo "No rows found, nothing to print so am exiting"; 
         exit; 
       } 
       echo '<table id="lavori"><caption>AZIENDE IN ' . $citta($cittaID) . ' LAVORI ' . $lavori($mestiereID) . '</caption>'; 
       echo '<tr><th>Citta</th></td><td>Descrizione</td></tr>'; 
       while ($row = mysql_fetch_assoc($result)) { 
         echo '<tr><td>' . $row['nome'] . '</td><td>' . $row['descrizione'] . '</td></tr>'; 
       } 
       echo '</table>'; 
     } 
     ?> 
   </form> 
  </body> 
</html> 
<?php 
  function selected($val1, $val2) { 
    $val1 = trim($val1); 
    $val2 = trim($val2); 
    if ($val1 == $val2) 
      return " selected"; 
    else 
      return ""; 
  } 

  function cittaID($id) { 
     $link = mysql_connect('localhost', 'nozzeprova', '');//utente e passw 
     if (!$link) { 
       die('Could not connect: ' . mysql_error()); 
     } 
     $db_selected = mysql_select_db('my_nozzeprova', $link);//nome del mio database my_nozzeprova 
     if (!$db_selected) { 
       die ('Can't use foo : ' . mysql_error()); 
     } 
     $result = mysql_query("SELECT * FROM citta WHERE ID_CITTA = " . $citta); 
     if (mysql_num_rows($result)) { 
       $row = mysql_fetch_assoc($result); 
       $citta = $row['nome']; 
     } 
     mysql_free_result($result); 
     mysql_close($link); 
     return $citta; 
  } 

  function lavori($id) { 
     $link = mysql_connect('localhost', 'nozzeprova', '');//utente e passw 
     if (!$link) { 
       die('Could not connect: ' . mysql_error()); 
     } 
     $db_selected = mysql_select_db('my_nozzeprova', $link);//nome del mio database my_nozzeprova 
     if (!$db_selected) { 
       die ('Can't use foo : ' . mysql_error()); 
     } 
     $result = mysql_query("SELECT * FROM mestieri WHERE ID_MESTIERE = " . $mestiere); 
     if (mysql_num_rows($result)) { 
       $row = mysql_fetch_assoc($result); 
       $lavoro = $row['nome']; 
     } 
     mysql_free_result($result); 
     mysql_close($link); 
     return $lavoro; 
  } 
?>
 
ciao
verifica lo script hai sballato qualche apice (vedi istruzioni di php in rosso),
penso che sia qui
PHP:
die ('Can't use foo : ' . mysql_error());
correggi in
PHP:
die ('Can\'t use foo : ' . mysql_error());
 

Discussioni simili