ComboBox Problemi

di il
3 risposte

ComboBox Problemi

Studio da poco PHP e non riesco a visualizzare correttamente i dati provenienti da una tabella in una casella combinata. I problemi sono 2:
1. la matricola (campo matr) non viene visualizzata mentre compaiono
cognome e nome e il simbolo > che non interessa
2. non appare la barra di scorrimento (come in Java)

La tabella di nome ANAG ha la seguente struttura: matr,cogn,nome,cap,codart tutti char.
Utilizzo un file HTML per l'inserimento del cognome da trovare e un file PHP che esegue la query e inserisce i dati in una combo (dovrebbe).

IL file HTML è il seguente:
<html>
<head> <title> Ricerca di un cognome nella tabella ANAG</title></head>
<body>
<hr>
<form action="http://127.0.0.1/vis_v3.ph" method="POST">
Cognome : <input type="text" name="cogn" size ="20">
<br> <br>
<input type="submit" value="Cerca">
<input type="reset" value="Annulla">
</form>
<hr>
</body>
</html>

Mentre il file PHP vis_v3.php è il seguente:
<html>
<head><title> Elenco utenti per cognome</title></head>

<?php
// --- recupero del cognome da vis_v3.html tramite il metodo POST

$cogn = $_POST["cogn"];


// --- collegamento al server ---
$hostname = "localhost";
$username = "root";
$password = "";
$database = 'anagrafica';
$conn = mysql_connect($hostname,$username,$password);
if (!$conn) {
echo "Connessione al server fallita!";
exit;
} else {
echo "Connessione al server riuscita.";
}
echo "</br>";

$db1=mysql_select_db($database,$conn) or die("errore nella selezione del database".mysql_error());
if (!$db1){
die('Impossibile connettersi al database.. ' . $database.' '.mysql_error());
}

else {
echo ("Connessione al database riuscita <BR>");
}

// --- Costruzione della query
$sqlcmd = "select * from anag where cogn like '%$cogn%'";

// --- echo di controllo. Verifico se il comando è stato costruito correttamente.
echo "Comando: $sqlcmd <BR>";
$risultato=mysql_query($sqlcmd);

// --- Verifico che il comando sia stato eseguito correttamente.
if (mysql_errno()==0)
echo "Comando eseguito con successo";
else
echo "Errore nel comando";


//visualizzazione dei risultati

while ($res = mysql_fetch_array($risultato)){
echo "<option value=\"".$res['matr']."\">".$res['cogn']." ".$res['nome']."\">"."</option>" ;
}

// --- Chiusura della connessione

mysql_close($conn);

?>
</table>
</body>
</html>

3 Risposte

  • Re: ComboBox Problemi

    Pariamo dal 2: cosa intendi che non appare la barra di scorrimento?

    Per quanto riguarda il primo problema, direi che 1) hai solo chiuso male i tag:
    echo "<option value=\"".$res['matr']."\">".$res['cogn']." ".$res['nome']."\">"."</option>" ;
    ______________________________________^^^_________________________________^^^
    e questo spiega il perché appaia il simbolo ">".
    Il perché non appare la matricola è che lo stai usando come "value" del tag option, e il "value" è il valore che viene passato a $_POST quando fai il submit del form. Quindi se vuoi vedere nella pagina il numero di matricola, dovrai concatenarlo a cognome e nome (io suggerirei di lasciarlo anche come value perché immagino sia univoco e ti permetterà di distinguere i vari nomi e cognomi senza ambiguità.
  • Re: ComboBox Problemi

    Buongiorno, visto che esiste già un messaggio sulle combobox ne approfitto per esporre il mio problema.
    ho questo codice:
    
    <?php
    include "conf/conf.php";
    $con = mysql_connect($host,$user,$password);
    mysql_select_db("infermeria", $con);	
    $data = "SELECT * from grado";
    $result = mysql_query($data);
       		while($row = mysql_fetch_array($result))
    			{
        			echo "<option value='" . $row['idgrado'] . "'>" . $row['GRADO'] . "</option>";
    			}
    ?>
    
    Solo che mi restituisce questo errore:
    
    PHP Warning:  mysql_fetch_array() expects parameter 1 to be resource, boolean given in.....
    
    Non riesco a trovare l'errore potete aiutarmi?
    Grazie
  • Re: ComboBox Problemi

    L'errore significa sostanzialmente che la query fallisce.
    Sei sicuro di avere una tabella "grado"?
Devi accedere o registrarti per scrivere nel forum
3 risposte