Recupero dati per select form

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
Buonasera, probabilmente l'argomento che vado a spiegare è stato trattato e discusso mille e mille volte ma non ne esco proprio.
Io ho una tabella con due campi, il campo id messo come chiave primaria valore int(10) e l'altro il campo domanda VARCHAR(100). La tabella quindi ha id 1 e relativa domanda, id2 e domanda, e così via. Ho bisogno che quello che ho scritto in domanda venga preso usando l'id (che ho messo apposta) e messo nel campo select del mio form. Come caspita devo fare? devo usare while, for, mysqli fetch, un array? Da dove parto?

Scusae se l'argomento potrà risultare noioso e discusso mille volte, nel caso mi potete dare una dritta su dove andare a vedere.

Grazie a tutti
 
Ciao, io non ho capito il problema, non ti basta fare cosi ?
PHP:
$query = "SELECT domanda FROM tabella WHERE id = " . $_POST['id_domanda'];
 
Intato grazie.

Allora per comodità ho diversificato il problema in questo modo. Ho creato una nuova tabella con all'interno tre righe distinte con le 3 domande. Al db faccio estrarre le varie domande e le inserisco nel camp select in modo tale che abbia gia un campo in php e lo possa gestire dopo. Non mi piace molto questo metodo però.
Il problema che invece voglio risolvere è questo, io ho una tabella con due campi, id e domanda, il campo id è autoincrementale, intero, e primario e come valore del campo domanda ho inserito la domanda vera e propria. Ottengo quindi un array di questo tipo
PHP:
Array
(
    [0] => Array
        (
            [id] => 1
            [domanda] => Qual'è il cognome da nubile di mia mamma?
        )

    [1] => Array
        (
            [id] => 2
            [domanda] => Qual'è il cognome della nonna materna?
        )

    [2] => Array
        (
            [id] => 3
            [domanda] => Qual'è la materia scolastica che mi piace di più?
        )

)
Lasciando stare le lettere accentate, che risolverò dopo.
Io adesso dovrei inserire queste domande in un campo select del form facendo in modo che ad ogni valore id corrisponda la relativa domanda. Per estrarre questo array ho fatto così
PHP:
 if($result = $mysqli->query("SELECT * FROM domande2")){
 if ($count = $result->num_rows) {

 	$rows = $result->fetch_all(MYSQLI_ASSOC);
 	
 	foreach ($rows as $row ) {
 		echo $row['domanda'];
 	}
 	echo '<pre>', print_r($rows), '</pre>';
 
 }
 
 }

Come devo fare?
Dovrebbe uscire una cosa del genere
PHP:
echo '<option name="" value="">', print_r ($row->domanda1),'</option>';

Cosa devo fare?
 
fai così
PHP:
echo "<select name='domanda'>";
foreach ($rows as $row) {
    echo '<option value="' . $row['id'] . '">"' . $row['domanda'] . '"</option>';
}
echo "</select>";
 
cia criric, ho trovato questo sistema per ottenere ciò che vorrei
PHP:
if($result = $mysqli->query("SELECT * FROM domande2")){
		while ($row = $result->fetch_array())
		{
			echo '<option name="" value="1">', $row[1],'</option>';
		}
	}
in questo caso il database è formato da id1 e domanda 1, id 2 e domanda 2, e così via. Spero vada bene. Ora devo poter prendere questo valore ed inserirlo in una tabella temporanea ed infine in quella definitiva. Hai consigli? in più con questo sistema nel select che ovviamente è unico cambiano solo le domande ma il resto è identico, quindi hanno tutti lo stesso valore qual'ora lo impostassi. C'è modo di avere tre tag option distinti dove ognuno ha la domanda che devo inserire?
 
devi fare come ti ho postato sopra, il value deve essere dinamico.
 
Hai ragione, sarà stato l'orario ma non ci avevo pensato.:cool: Adesso che il valore è variabile come posso "prenderlo" per spostarlo in un altra tabella, cioè quella temporanea in attesa della conferma della mail? Basta prendere le stesse variabili e portarle nel mio caso in una query INSERT INTO?
 
Perchè devi inserirlo in una tabella temporanea?
stai cercando di memorizzare la risposta o di confrontarla con una già presente?
 
Il form l'ho impostato così: compilo il form, invia mail con un link di attivazione ed inserisco tutti i dati raccolti in un db temporaneo, poi alla conferma della mail sposto i dati dalla temporanea alla tabella finale.
Un dubbio che mi viene in mente ora è che se il controllo dei dati doppi lo faccio sulla tabella temporanea e due utenti usano lo stesso username ma attivano il profilo in due tempi diversi mi verranno inseriti due utenti con lo stesso username o la stessa mail. Conviene fare il controllo sulla temporanea?
 
Rieccomi, per informazine sono riiuscito a risolvere il problema così, se può tornare utile a qualcuno. ecco il codice che mi permette di selezionare una domanda con select attingendo dal db:
PHP:
if($result = $mysqli->query("SELECT * FROM question")){
	while ($row = $result->fetch_array())
	{
		echo '<option name="" value="'. $row['id'].'">', $row['domanda'] ,'</option>';
	}
}
Grazie a tutti.
 

Discussioni simili