Selezione da database con DropDown Menu e visualizzazione

luca.armanni

Nuovo Utente
5 Feb 2012
9
0
0
Premetto che ho fatto una ricerca inserendo le parole chiave "DropDown Menu" ma non ho trovato argomenti che possano indirizzarmi nella soluzione del problema.
Vorrei chieder se sono possibile due cose:
  • da un database posso selezionare e visualizzare solo un record specifico o record multipli?
  • posso visualizzare il record nella classica rappresentazione a tabella cioè le intestazioni in orizzontale ma potrei visualizzarla in verticale?

Situazione attuale (con codice php sotto riportato):

[table="width: 500"]
[tr]
[td]campo1[/td]
[td]campo2[/td]

[/tr]
[tr]
[td]dato1a[/td]
[td]dato1b[/td]
[/tr]
[tr]
[td]dato2a[/td]
[td]dato2b[/td]
[/tr]
[/table]

Situazione desiderata - Vorrei poter selezionare il dato 1a e quindi visualizzare

[table="width: 500"]
[tr]
[td]campo1[/td]
[td]campo2[/td]

[/tr]
[tr]
[td]dato1a[/td]
[td]dato1b[/td]
[/tr]

[/table]

PHP:
<?php

// Dati connessione 
...

// Messaggio Errore connessione 
... 

// Query Selezione Tabella DB 
...


echo "<table border=\"1\" cellpadding=\"5\" cellspacing=\"1\">";

echo "<tr>";
echo "<td><h3><b>Id</b></h3></td>";
echo "<td><h3><b>Nome</b></h3></td>";
echo "<td><h3><b>Data</b></h3></td>";
echo "<td><h3><b>Ora</b></h3></td>";
echo "<td><h3><b>Varie</b></h3></td>";
echo "<td><h3><b>Link</b></h3></td>";
echo "</tr>";

while ($linea = mysql_fetch_assoc($risorsa)) {

    echo "<tr>";
    echo "<td>" . $linea['ID'] . "</td>";
    echo "<td>" . $linea['nome'] . "</td>";
    echo "<td>" . $linea['data01'] . "</td>";
    echo "<td>" . $linea['ora'] . "</td>";
    echo "<td>" . $linea['varie'] . "</td>";
    echo "<td>";
    // controlli che il valore del link non sia nullo e che non sia vuoto
    if (!is_null($linea['link']) && $linea['link'] != "")) {
        // allora stampi il link
        echo "<a href='" . $linea['link'] . "'>Download</a>";
    } else {
        // altrimenti stampi qualcos altro
        echo " - ";
    }
    echo "</td>";
    echo "</tr>";
}

echo "</table>";
?>
 
ciao
Situazione desiderata - Vorrei poter selezionare il dato 1a e quindi visualizzare
devi intervenire sulla query mettendo la clausola WHERE
esempio
SELECT * FROM tabella WHERE campo1 = 'dato1a'
 
Selezione con menu a tendina...

ok grazie per l'informazione:
SELECT * FROM tabella WHERE campo1 = 'dato1a'
ma come posso fare con un menu a tendina e quindi a generare in modo dinamico la pagina dei risultati?
Grazie
 
ciao
ecco un esempio di menù a tendina dinamico
PHP:
<?php
//la query di select... ecc....
echo "<select name=\"pinco\">";
while($riga=mysql_fetch_array($res)){
	echo "<option value=\"".$riga['valore']."\">".$riga['nome']."</option>";
}
echo "</select>";
//........
?>
 
Chiedo scusa ho provato ad inserire il codice dell' esempio di menù a tendina dinamico, ma non riesco :crying:
Inoltre dopo aver selezionato il singolo record posso visualizzare la tabella in modalità "trasposta"?
Grazie moltissimo in anticipo
Luca

PHP:
<?php
// Dati connessione
	$host = '...';
	$user = '...';
	$password = '...';
	$database = '...';
// Messaggio Errore connessione
	$db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server $host");
	mysql_select_db($database, $db) or die ("Impossibile connettersi al server $host");
// Query Selezione Tabella DB
 	$query = "select * from DB_...";
	$dbResult = mysql_query($query, $db);
	$AffectedRows = mysql_affected_rows($db);


// 
$risorsa = mysql_query("select * from DB_... order by Cognome_Nome ASC"); 

[B]
dovrei inserirlo qui?[/B]

echo "<table border=1 cellpadding=5 cellspacing=1 width=100% >";

echo "<tr>";
echo "<td><font face=Arial><font size=3><b>N.Iscrizione</b></td>";
echo "<td><font face=Arial><font size=3><b>Cognome e Nome</b></td>";
echo "</tr>";

while ($linea = mysql_fetch_assoc($risorsa)) {

    echo "<tr>";
    echo "<td><font face=Arial><font size=2>" . $linea['N_Iscrizione'] . "</td>";
    echo "<td><font face=Arial><font size=2>" . $linea['Cognome_Nome'] . "</td>";
    

    echo "</tr>";
}

echo "</table>";

mysql_free_result($dbResult); 
mysql_close($db); 
?>
 
ciao
dovrei inserirlo qui?
da qullo che capisco se il menu a tendina lo vuoi li si.
guarda pero che usualmente la <select>....</select> deve essere contenuta in un form con il pulsante di submit o senza se usi js, per trasmetter il valore selezionato.
comunque ti dirò che non capisco esattamente cosa vuoi fare
 
Ti ringrazio.
In effetti vorrei utilizzare la <select>....</select> ma come dovrei modificare ed inserirla in un form con il pulsante di submit nel codice?
Nella richiesta forse ci sono due passi il primo sicuramente è la selezione poi valuterò la rappresentazione. Allego immagini per esser più chiaro (spero :o )

Lista:
Cattura1.GIF

Selezione:
Cattura2.GIF

Alternativa di visualizzazione:
Cattura3.GIF

Grazie ancora
:o


ciao
da qullo che capisco se il menu a tendina lo vuoi li si.
guarda pero che usualmente la <select>....</select> deve essere contenuta in un form con il pulsante di submit o senza se usi js, per trasmetter il valore selezionato.
comunque ti dirò che non capisco esattamente cosa vuoi fare
 
ciao
prima una domanda
il numero di iscrizione corrisponde univocamente al cognome/nome? perche se è così fare due select può comportare l'errore che uno selezioni il numero e il cognome/nome differente.
es uno seleziona il numero 2 e nome luca
se la corrispondenza è biunivoca devi fare una sola select che eventualmente trasmetta entrambi i valori
 
Il numero iscrizione è univoco. Per il momento direi che sarebbe un bellissimo risultato se potessi riuscire ad ottenere come risultato questo : selezionato dal menu a tendina il numero 2 mi restituisce luca.
Grazie ancora per la continua collaborazione.
:rolleyes:

Luca

ciao
prima una domanda
il numero di iscrizione corrisponde univocamente al cognome/nome? perche se è così fare due select può comportare l'errore che uno selezioni il numero e il cognome/nome differente.
es uno seleziona il numero 2 e nome luca
se la corrispondenza è biunivoca devi fare una sola select che eventualmente trasmetta entrambi i valori
 
ciao
se non ho capito male con questo schema dovresti riuscire a fare quello che ti interessa
PHP:
<?php
// Dati connessione
    $host = '...';
    $user = '...';
    $password = '...';
    $database = '...';
// Messaggio Errore connessione
    $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server $host");
    mysql_select_db($database, $db) or die ("Impossibile connettersi al server $host");
if(isset($_POST['cerca'])){
	$cerca=$_POST['nome'];
	if($cerca ==""){//se non selezioni (o selezioni tutti) al submit ti presenta tutti i nomi
		$wh="";
	}else{//altrimenti solo il selezionato
		$wh= " WHERE id='$cerca' ";
	}
	$query="SELECT * FROM tua_tabella $wh ORDER BY nome";
	$ris=mysql_query($query);
	echo "<table border=\"1\" cellpadding=\"5\" cellspacing=\"1\">";
	echo "<tr>";
	echo "<td><h3><b>Id</b></h3></td>";//se metti h3 non serve il <b> o viceversa
	echo "<td><h3><b>Nome</b></h3></td>";
	echo "<td><h3><b>Data</b></h3></td>";
	echo "<td><h3><b>Ora</b></h3></td>";
	echo "<td><h3><b>Varie</b></h3></td>";
	echo "<td><h3><b>Link</b></h3></td>";
	echo "</tr>";
	while($riga=mysql_fetch_array($ris)){
		echo "<tr>";
		echo "<td><b>".$riga['id']."</b></td>";
		echo "<td><b>".$riga['nome']."</b></td>";
		echo "<td><b>".$riga['data']."</b></td>";
		echo "<td><b>".$riga['ora']."</b></td>";
		echo "<td><b>".$riga['varie']."</b></td>";
		echo "<td><b>".$riga['link']."</b></td>";
		/*
		se il link deve essere un vero e proprio lik sostituisci l'ultima riga con
		echo "<td><b><a href=\"".$riga['link']."\"target=\"_blank\">vai al sito</a></b></td>";
		*/
		echo "</tr>";
	}
	echo "</table>";
}
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  <select name="nome">
    <option value="">- tutti -</option>
<?php
$query="SELECT * FROM tua_tabella ORDER BY nome";
$ris=mysql_query($query);
while ($riga=mysql_fetch_array($ris)){
	echo "<option value=\"".$riga['id']."\">".$riga['nome']."</option>";
}
?>
  </select>
  <br>
  <input name="cerca" type="submit" id="cerca" value="cerca">
</form>

un paio di cose:
i nei nomi dei campi e delle variabili non usare il maiuscolo, si evitano diversi errori
essendo uno schema non so se ho messo i nomi tabella e campi a caso, devi sostituirci i tuoi
ho visto che usi delle date: pensa al futuro, se vuoi ordinare per data o usi il timestamp o le date devono essere in formato YY/mm/gg (a parte il separatore)
 
Ultima modifica:
Ringrazio moltissimo
"Borgo Italia"
.
Ho fatto alcune rifiniture (solo estetiche); ma la base e le indicazioni ricevute sono state utilissime!!!
Grazie ancora anche al FORUM che consente questo scambio per imparare!!

Cari saluti a Tutti
:fonzie:


ciao
se non ho capito male con questo schema dovresti riuscire a fare quello che ti interessa
PHP:
<?php
// Dati connessione
    $host = '...';
    $user = '...';
    $password = '...';
    $database = '...';
// Messaggio Errore connessione
    $db = mysql_connect($host, $user, $password) or die ("Impossibile connettersi al server $host");
    mysql_select_db($database, $db) or die ("Impossibile connettersi al server $host");
if(isset($_POST['cerca'])){
	$cerca=$_POST['nome'];
	if($cerca ==""){//se non selezioni (o selezioni tutti) al submit ti presenta tutti i nomi
		$wh="";
	}else{//altrimenti solo il selezionato
		$wh= " WHERE id='$cerca' ";
	}
	$query="SELECT * FROM tua_tabella $wh ORDER BY nome";
	$ris=mysql_query($query);
	echo "<table border=\"1\" cellpadding=\"5\" cellspacing=\"1\">";
	echo "<tr>";
	echo "<td><h3><b>Id</b></h3></td>";//se metti h3 non serve il <b> o viceversa
	echo "<td><h3><b>Nome</b></h3></td>";
	echo "<td><h3><b>Data</b></h3></td>";
	echo "<td><h3><b>Ora</b></h3></td>";
	echo "<td><h3><b>Varie</b></h3></td>";
	echo "<td><h3><b>Link</b></h3></td>";
	echo "</tr>";
	while($riga=mysql_fetch_array($ris)){
		echo "<tr>";
		echo "<td><b>".$riga['id']."</b></td>";
		echo "<td><b>".$riga['nome']."</b></td>";
		echo "<td><b>".$riga['data']."</b></td>";
		echo "<td><b>".$riga['ora']."</b></td>";
		echo "<td><b>".$riga['varie']."</b></td>";
		echo "<td><b>".$riga['link']."</b></td>";
		/*
		se il link deve essere un vero e proprio lik sostituisci l'ultima riga con
		echo "<td><b><a href=\"".$riga['link']."\"target=\"_blank\">vai al sito</a></b></td>";
		*/
		echo "</tr>";
	}
	echo "</table>";
}
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
  <select name="nome">
    <option value="">- tutti -</option>
<?php
$query="SELECT * FROM tua_tabella ORDER BY nome";
$ris=mysql_query($query);
while ($riga=mysql_fetch_array($ris)){
	echo "<option value=\"".$riga['id']."\">".$riga['nome']."</option>";
}
?>
  </select>
  <br>
  <input name="cerca" type="submit" id="cerca" value="cerca">
</form>

un paio di cose:
i nei nomi dei campi e delle variabili non usare il maiuscolo, si evitano diversi errori
essendo uno schema non so se ho messo i nomi tabella e campi a caso, devi sostituirci i tuoi
ho visto che usi delle date: pensa al futuro, se vuoi ordinare per data o usi il timestamp o le date devono essere in formato YY/mm/gg (a parte il separatore)
 

Discussioni simili