aiuto ricerca php e mysql

vandecubi

Nuovo Utente
Salve a tutti,

sto cercando di fare un progettino in php e mysql, volevo sapere come posso fare un menu a tendina che, selezionando una voce e cliccando su vai, mi fa vedere solamente i risultati (prendendoli nel database) che hanno quel valore in quel campo.

Faccio un esempio, nel db ho una lista di monumenti con relative città, selezionando nel menu a tendina "Roma" mi fa vedere nei risultati tutti i monumenti di Roma (magari mostra a video non solo il nome del monumento ma anche qualche altro campo del db, come una descrizione o qualcos'altro), e così via.

Grazie mille per l'aiuto

Saluti

Andrea
 

Skills07

Moderatore
Staff Forum
11,416
3,200
Hardware Utente
CPU
Ryzen 7 2700x
Dissipatore
Stock
Scheda Madre
Aourus Gigabyte X-470
Hard Disk
Samsung Evo 850 250gb,2tb toshiba, 500gb western digital, 160gb segate
RAM
16 gb G.Skill Tridentz 3200 mhz RGB
Scheda Video
Sapphire RX 580 8gb ddr5
Monitor
Samsung Smart TV Full HD 50 Pollici/ Hp ES 24 IPS
Alimentatore
XFX 80 plus 750 watt
Case
Aerecool xpredator x3
Sistema Operativo
Windows 10 Pro 64
semplicemente tu dovrai via PHP recupare il valore dalla tua Listitem e poi una volta fatto quello farai una query dove farai una Select * from Monumenti where citta = 'valore selezionato'.

Per il codice il mio consiglio è inizia a scriverlo :) altrimenti non imparerai mai a capire dove ti intoppi
 

vandecubi

Nuovo Utente
guarda su quello hai ragione, il mio problema è che ho 5 giorni di tempo per finirlo e molte cose mi sono decisamente nuove. La struttura generale è già fatta, mi servono queste ultime cose che sono più ostiche perchè non le ho mai affrontate. Intanto comunque inizierà a scrivere :)
 

Skills07

Moderatore
Staff Forum
11,416
3,200
Hardware Utente
CPU
Ryzen 7 2700x
Dissipatore
Stock
Scheda Madre
Aourus Gigabyte X-470
Hard Disk
Samsung Evo 850 250gb,2tb toshiba, 500gb western digital, 160gb segate
RAM
16 gb G.Skill Tridentz 3200 mhz RGB
Scheda Video
Sapphire RX 580 8gb ddr5
Monitor
Samsung Smart TV Full HD 50 Pollici/ Hp ES 24 IPS
Alimentatore
XFX 80 plus 750 watt
Case
Aerecool xpredator x3
Sistema Operativo
Windows 10 Pro 64
inizia a scrivere ed eventualmente postare
 

gronag

Utente Èlite
17,803
5,917
Hardware Utente
Sembra un "compitino" scolastico simile a quelle simulazioni ministeriali assegnate durante l'anno al tecnologico informatico :asd:
@vandecubi: hai l'orale tra qualche giorno ? :look:
Qual è lo schema concettuale e lo schema logico (relazionale) del tuo database ? ;)
 

vandecubi

Nuovo Utente
Sembra un "compitino" scolastico simile a quelle simulazioni ministeriali assegnate durante l'anno al tecnologico informatico :asd:
@vandecubi: hai l'orale tra qualche giorno ? :look:
Qual è lo schema concettuale e lo schema logico (relazionale) del tuo database ? ;)
no no si tratta di un progetto per un esame universitario, ho ripreso in mano php e mysql dopo molti anni e alcune cose non le avevo mai fatte
 
  • Mi piace
Reactions: gronag

vandecubi

Nuovo Utente
Allora intanto ho fatto qualche modifica, ho pensato di fare invece di monumenti alberghi e di fare il menu a tendina prendendo i dati direttamente dal campo del database (in questo caso la città). Ho provato a fare questo ma la tendina rimane vuota.

Ecco il codice:

Codice:
<html>

<head>

<title>Ricerca</title>

</head>

<body>

<h1> Dove vorresti andare? </h1>

<form method="get" action="ricerca.php">

<table>

<tr> <td> Citta': </td>

<td>

<select name = "cittahotel">

<?php

if(!mysql_connect("localhost","root",""))

die('Impossibile creare una connessione' . mysql_error());

if(!mysql_select_db("registration"))

die('Impossibile accedere al database' . mysql_error());

$cittahotel="SELECT DISTINCT cittahotel FROM alberghi";

$result=mysql_query($cittahotel);

if(!$result)

die('Errore nella query' . mysql_error());

while($row=mysql_fetch_assoc($result)) {

echo "<option value=\"$row[cittahotel]\">$row[cittahotel]</option>";

}

?>

</select>

</td>

</tr>



</body>

</html>
poi dentro ricerca.php vorrei far visualizzare i risultati usando la Select come già suggerito
 
Ultima modifica:

Skills07

Moderatore
Staff Forum
11,416
3,200
Hardware Utente
CPU
Ryzen 7 2700x
Dissipatore
Stock
Scheda Madre
Aourus Gigabyte X-470
Hard Disk
Samsung Evo 850 250gb,2tb toshiba, 500gb western digital, 160gb segate
RAM
16 gb G.Skill Tridentz 3200 mhz RGB
Scheda Video
Sapphire RX 580 8gb ddr5
Monitor
Samsung Smart TV Full HD 50 Pollici/ Hp ES 24 IPS
Alimentatore
XFX 80 plus 750 watt
Case
Aerecool xpredator x3
Sistema Operativo
Windows 10 Pro 64
metti il codice sotto il tag, altrimenti cosi è incomprensibile
 

Moffetta88

Utente Èlite
3,988
1,728
Hardware Utente
Codice:
mysql_query
Vuoi un consiglio e fare bella figura?
Usa mysqli non l'estensione base mysql ( performance e sicurezza migliori ).
Ci fai vedere il file ricerca php?
 

vandecubi

Nuovo Utente
Codice:
mysql_query
Vuoi un consiglio e fare bella figura?
Usa mysqli non l'estensione base mysql ( performance e sicurezza migliori ).
Ci fai vedere il file ricerca php?
guarda il file ricerca lo sto facendo, ma il problema è che non riesco a far visualizzare nel menù a tendina la Select
Post automaticamente unito:

allora ragazzi ci sono riuscito facendo una barra di ricerca (che ho preferito al menu a tendina) e poi nel file di ricerca ho fatto una semplice connessione e la select e mi visualizza tutto. Sapete come posso fare per fare in modo che i dati mi vengano visualizzati in una tabella?
 
Ultima modifica:

vandecubi

Nuovo Utente
Cicli il risultato della select dentro alla table!
Ogni risultato va dentro ad un tr diciamo

Inviato da TA-1021 tramite App ufficiale di Tom\'s Hardware Italia Forum
perfetto mi sei stato molto di aiuto e ci sono riuscito, ti posto il codice perchè avrei un'altra domandina, scusa la rottura

PHP:
<?php
    
    $con= new mysqli("localhost","root","","registration");
    $name = $_POST['search'];
    //$query = "SELECT * FROM alberghi
   // WHERE cittahotel LIKE '%{$name}%'";

    // Check connection
    if (mysqli_connect_errno())
      {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }

$result = mysqli_query($con, "SELECT * FROM alberghi
    WHERE cittahotel LIKE '%{$name}%'");

echo "
 <table border='1' cellpadding='0' cellspacing='0' style='border-collapse: collapse' bordercolor='#111111' width='532' height='23' id='AutoNumber1'>
    <tr>
      <td width='120' height='23' align='center'>Nome</td>
      <td width='179' height='23' align='center'>Indirizzo</td>
      <td width='100' height='23' align='center'>Numero di telefono</td>
      <td width='150' height='23' align='center'>E-mail</td>
      <td width='50' height='23' align='center'>Stelle</td>
      <td width='100' height='23' align='center'>Prezzo camera singola</td>
      <td width='100' height='23' align='center'>Prezzo camera doppia</td>
    </tr>";

while ($row = mysqli_fetch_array($result))
{
        
echo "
    <tr>
      <td width='120' height='23'>$row[nomehotel]</td>
      <td width='179' height='23'>$row[indirizzohotel]</td>
      <td width='100' height='23'>$row[numtelhotel]</td>
      <td width='150' height='23'>$row[emailhotel]</td>
      <td width='50' height='23'>$row[stellehotel]</td>
      <td width='100' height='23'>$row[prezzosingola]</td>
      <td width='100' height='23'>$row[prezzodoppia]</td>
  
    </tr>";
        echo "<br>";
}
    mysqli_close($con);
    ?>
se volessi rendere il nome dell'albergo cliccabile che mi rimanda ad un'altra pagina come posso fare? Non so come mettere bene <a href=.../a> in modo corretto e soprattutto linkarlo alla pagina relativa al giusto hotel
 

Moffetta88

Utente Èlite
3,988
1,728
Hardware Utente
Dunque, hai due vie:
1. pagina statica dell'albergo, ottenibile con un semplice:
Codice:
<a href="pagina_albergo.php">Nome albergo</a>
2. in modo dinamico:
Codice:
<a href="albergo.php?nome=<?php echo __variabileALbergo; ?>">Nome albergo</a>
E nella pagina albergo.php ci metti dentro un blocco switch che legge il
Codice:
$_GET['nome']
e ti compila la pagina con i dati dell'albergo, magari presi dal db
 

Entra

oppure Accedi utilizzando