• User

    Da database mysql a php

    Buongiorno a tutti,
    ho una tabella in un database mysql popolata con dati.
    mi piacerebbe inserire tutti i dati contenuti nella tabella riferiti a un particolare campo in un menù di selezione a discesa: se nella tabella ho un campo denominato "id" mi piacerebbe mettere tutti i dati che vengono inseriti come "id" in questo menù di selezione a discesa..
    come posso farlo?
    Grazie mille


  • User

    Se non ho capito male quello che devi fare, potresti fare così.

     
    <select name="lista">
    <?
    //scrivo la mia query per estrare i dati che mi interessano
    $sql = "qui ci metti la query sql che estrae i dati che ti servono";
     
    //eseguo la query e metto il risultato in $res
    $res = mysql_query($sql);
     
    /* Per ogni record creo un tag option per la selezione */
    while (list($id, $valore \* altri eventuali campi della query *\ ) = mysql_fetch_row($res)) 
    {
     echo "<option value=\"" . $id .  "\">" . $valore . "";
    }
    ?>
    </select>
    
    

    Se servono maggiori chiarimenti, chiedi pure. :arrabbiato:


  • User

    Non ho capito bene

    • Per ogni record creo un tag option per la selezione */
      while (list($id, $valore * altri eventuali campi della query *\ ) = mysql_fetch_row($res))
      .. scusa ma sono all'inizio sia con il php che con mysql..

  • Super User

    Ciao njna e benvenuto/a nel forum GT. 🙂
    lo script postato da brux è perfetto :D,ma se i campi all'interno del database non sono in ordine funziona bene 🙂

    Io piuttosto ti suggerisco di sostituire con:

    [PHP]while ($row=mysql_fetch_assoc($res))
    {
    echo "<option value="" . $row[id] . "">" . $row[valore] . "";
    }[/PHP]

    @brux: tecnicamente è la stessa cosa :),ma così evitiamo eventuali problemi con l'ordine dei campi mysql 😉

    ciao!!!


  • User

    Ovvio, si possono trovare diverse soluzioni, poi in base alle esigenze si può trovarne una più conveniente.

    @Njna : per capire meglio le funzioni utilizzate da me e da probid ti consiglio di consultare o scaricare il manuale di PHP all'indirizzo: http://it.php.net/download-docs.php

    All'interno trovi tutte le funzioni di PHP. Veramente utile.

    Se qualcos'altro non fosse chiaro riguardo l'esempio, chiedi pure 😉


  • User

    Grazie mille anche se non mi è molto chiaro cosa sia:

    $row[id] . "">" . $row[valore]

    Spiego meglio il mio problema così vediamo se è cmq una soluzione ottima quella che mi avete dato.
    ho un database contenente tabelle ognuna delle quali rapprensenta un continente(europa, oceania...).
    in ogni tabella c'è un campo "nazione" con all'interno alcune nazioni del rispettivo continente quindi ad esempio
    nella tabella "europa" avrò "nazione"-> Italia, Spagna.
    a me interesserebbe interrogare il db in modo da prendere per "europa" le nazioni inserite e mettere questi dati in un menù a tendina.

    scusate ma sono all'inizio e ho un pò d confusione :mmm: 😢 :arrabbiato:


  • Super User

    prova così ;):

    [PHP]
    <select name="nazioni">
    <?
    //eseguo la query e metto il risultato in $res
    $res = mysql_fetch_assoc(mysql_query("SELECT nazione FROM europa"));
    foreach(explode(",",$res[nazione]) as $nazione){
    echo "<option value="$nazione">". $nazione . "</option>";}
    ?>
    </select>[/PHP]
    ciao!


  • User Attivo

    Se ho capito bene, "Europa" è la tabella, "Nazione" è un campo, "Spagna" e "Italia" sono record diversi. Indi:
    [php]
    $query="SELECT nazione FROM europa";
    $result=mysql_query($query,$db)

    while ($row=mysql_fetch_array($result))
    {
    echo "<option value="" . $row[nazione] . "">" . $row[nazione] . "</option>";
    }
    [/php]


  • User Newbie

    Ciao a tutti, mi sono appena iscritto perchè visto le discussioni è possibile che potreste riuscire ad aiutarmi, vi spiego subito il mio problema:

    Ho creato un filmato flash che contiene una form la quale contatta lo script php e scrive perfettamente sulla tabella MySql divisa per campi, poi ho anche creato il filmato flash che tramite script php interroga la tabella e legge i contenuti facendoli vedere in una lista continua ordinata per nome, fin qui tutto bene, ma il mio problema è che la lettura del db tramite flash la vorrei fare dandogli 2 campi di ricerca "nome e Cognome" in modo che il flash poi mi tiri fuori solo ciò che ho ricercato, non so come fare potete aiutarmi? vi posto gli script usati:

    lettura generale dal database

    [HTML]<?php

    // dati per la connessione al database

    $db_host = "xxx";
    $db_user = "xxx";
    $db_password = "xxx";
    $db_name = "xxx";

    // connessione al database

    $db = mysql_connect ($db_host, $db_user, $db_password);
    $db_forum = mysql_select_db ($db_name, $db);

    $query = "SELECT nome, cognome, nascita, indirizzo, civico, citta, telefono, email
    FROM iscrittiKO
    ORDER BY nome";

    $query_results = mysql_query($query);
    $i = 0;

    while($fetch = mysql_fetch_array($query_results))
    {
    $i++;
    echo "&nome".$i."=".$fetch['nome']."<br>";
    echo "&cognome".$i."=".$fetch['cognome']."<br>";
    echo "&nascita".$i."=".$fetch['nascita']."<br>";
    echo "&indirizzo".$i."=".$fetch['indirizzo']."<br>";
    echo "&civico".$i."=".$fetch['civico']."<br>";
    echo "&citta".$i."=".$fetch['citta']."<br>";
    echo "&telefono".$i."=".$fetch['telefono']."<br>";
    echo "&email".$i."=".$fetch['email']."<br>";
    }

    if($i)
    {
    echo "&i=".$i;
    echo "&ok=1";
    echo "&stop=1";
    }

    else
    {
    echo "&ok=0";
    echo "&stop=1";
    }

    ?>[/HTML]

    Script filmato flash che recupera i dati:

    Sul KeyFrame:
    [HTML]System.useCodepage = true;
    _root.nome.html = true;
    _root.cognome.html = true;
    _root.nascita.html = true;
    _root.indirizzo.html = true;
    _root.civico.html = true;
    _root.citta.html = true;
    _root.telefono.html = true;
    _root.email.html = true;
    stop();[/HTML]

    al click del pulsante:

    [HTML]on(release)
    {
    loader = new LoadVars();
    loader.load("script.php");
    loader.onLoad = function(success) {
    if(success)
    {
    if(this.ok)
    {
    _root.nome.htmlText = "";
    _root.cognome.htmlText = "";
    _root.nascita.htmlText = "";
    _root.indirizzo.htmlText = "";
    _root.civico.htmlText = "";
    _root.citta.htmlText = "";
    _root.telefono.htmlText = "";
    _root.email.htmlText = "";
    for(var j = 1; j <= this.i; j++)
    {
    _root.nome.htmlText += eval("this.nome" + j);
    _root.cognome.htmlText += eval("this.cognome" + j);
    _root.nascita.htmlText += eval("this.nascita" + j);
    _root.indirizzo.htmlText += eval("this.indirizzo" + j);
    _root.civico.htmlText += eval("this.civico" + j);
    _root.citta.htmlText += eval("this.citta" + j);
    _root.telefono.htmlText += eval("this.telefono" + j);
    _root.email.htmlText += eval("this.email" + j);
    }
    _root.output.text = "Dati Caricati";
    }
    else
    {
    _root.nome.htmlText = "";
    _root.cognome.htmlText = "";
    _root.nascita.htmlText = "";
    _root.indirizzo.htmlText = "";
    _root.civico.htmlText = "";
    _root.citta.htmlText = "";
    _root.telefono.htmlText = "";
    _root.email.htmlText = "";
    _root.output.text = "Errore di Caricamento";
    }
    }
    }
    }[/HTML]

    Ora io devo sicuramente aggiungere 2 campi di testo di imput chiamti "nome, cognome" ma come faccio al click a dire allo script php che deve recuperare solo la riga dei campi ricercati??

    Vi prego aiuto sto impazzendo e dvo consegnarlo entro 3 giorni.

    Grazie a tutti.