aiuto ricerca php e mysql

vandecubi

Nuovo Utente
23
1
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

Head of Development
Staff Forum
Utente Èlite
35,274
11,428
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
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
23
1
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

Head of Development
Staff Forum
Utente Èlite
35,274
11,428
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
inizia a scrivere ed eventualmente postare
 
U

Utente 16812

Ospite
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
23
1
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
Reazioni: Utente 16812

vandecubi

Nuovo Utente
23
1
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

Head of Development
Staff Forum
Utente Èlite
35,274
11,428
CPU
Ryzen 7 5800x
Dissipatore
Deepcool gammax l240 v2
Scheda Madre
Aourus Gigabyte X-470 ultra gaming
HDD
Samsung Evo 850 250gb ,2tb x 2 toshiba P300, 256 Ssd silicon power, Samsung evo plus 1tb nvme
RAM
32 gb G.Skill Tridentz 3200 mhz RGB
GPU
Zotac - RTX 3070 Ti Trinity OC
Monitor
ASUS TUF QHD 165hz IPS, ITEK GCF 165hz IPS QHD, Samsung Curvo 144hz QHD
PSU
Seasonic Focus 650w 80 platinum
Case
Coolermaster h500p
Periferiche
Asus Tuf Wireless
Net
Fibra Tim 100mb
OS
Windows 10 Pro 64 bit
metti il codice sotto il tag, altrimenti cosi è incomprensibile
 

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,464
12,877
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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
23
1
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 unito automaticamente:

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:

Moffetta88

Moderatore
Staff Forum
Utente Èlite
20,464
12,877
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11

vandecubi

Nuovo Utente
23
1
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

Moderatore
Staff Forum
Utente Èlite
20,464
12,877
CPU
i5-4690
Dissipatore
DEEPCOOL CAPTAIN 240EX
Scheda Madre
MSI Z97 U3 PLUS
HDD
KINGSTON SSD KC400 240GB
RAM
24GB BALLISTIX SPORT @2133MHz
GPU
STRIX GTX980 DC2OC
Audio
INTEGRATA
Monitor
AOC G2590VXQ
PSU
BEQUIET! System Power 7 500W
Case
DEEPCOOL MATREXX 55
Periferiche
NESSUNA
Net
EOLO 100
OS
UBUNTU/WINDOWS11
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
Discord Ufficiale Entra ora!