[PHP] Recuperare dato esatto tabella

samurai.sette

Utente Attivo
17 Dic 2015
235
6
18
Ciao a tutti. Apro questa discussione per chiedervi un aiutino.
Nella mia pagina .php ho un drop-down box e un bottone e ho una tabella mysql composta da due semplici colonne (id - dato).
All'interno del drop-down box è riportata tutta la colonna id, che va da 1 a 100.
Quello che vorrei fare è questo: dopo che scelgo un valore dal drop-down box e premo il bottone, vorrei stampare a video il corrispondente valore del dato.
Esempio: se ad id=25 corrisponde un dato=0.23, quando dal drop-down box scelgo 25 e clicco il bottone sullo schermo mi deve stampare dato=0.23;
Meglio ancora sarebbe se il valore corrispondente lo potessi attribuire ad una variabile.
Come potrei fare?
Ciao, grazie.
 
ciao ti faccio un esempio sempre se ho capito il problema
Codice:
<select class="" name="variabile" >
        <?php
                        $sql="SELECT * FROM tabella";
                        $result = $db_query->query($sql);
                        while($row = $result->fetch_array(MYSQLI_ASSOC)){
                        echo  '<option value="'.$row['dato'].'">'.$row['id'].'</option>';
                        }
                    ?>
                    </select>

quando premi il bottone alla pagina a cui indirizza il form ti basta semplicemente richiamarlo

Codice:
$variabile=$_POST['variabile'];

echo $variabile; //ti stampa l'id
 
Ciao Monital. Grazie per l'aiuto.
Ho provato il tuo codice ma non mi funziona. Quando clicco sul bottone non succede niente... :(
Questo è il codice che ho scritto (sicuramente ho sbagliato da qualche parte)
Codice:
<body>

<form method="post">
    <input name="text" type="text" /><br />
    <br />
    <input name="submit" type="submit" value="submit" /><br />
    <br /></form>

<select class="" name="variabile">

<?php

  // faccio la connessione al server e al database
    $con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita! ".mysql_error());
    $db = mysql_select_db ("database", $con) or die ("Connessione al database fallita! ".mysql_error());
   
  // estraggo tutto dalla tabella
    $sql="SELECT * FROM tabella ORDER BY id";
    $result = $db_query->query($sql);
   
    while($row = $result->fetch_array(MYSQLI_ASSOC))
    {
      echo  '<option value="'.$row['dato'].'">'.$row['id'].'</option>';
    }

?>

</select>

<?php
    $variabile = $_POST['text'];
    echo $variabile;

?>
</body>
Secondo te dove sbaglio?
Ciao, grazie.
 
non capisco del primo input text che te ne fai, comunque basandomi su quello che hi chiesto provo a riscrivertelo
Codice:
<body>

<?php
    $variabile = $_POST['text'];
if($variabile)  echo $variabile ;

?>

<form method="post" action="">


    <input name="text" type="text" /><br />
    <br />
<select class="" name="variabile">

<?php

  // faccio la connessione al server e al database
    $con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita! ".mysql_error());
    $db = mysql_select_db ("database", $con) or die ("Connessione al database fallita! ".mysql_error());
   
  // estraggo tutto dalla tabella
    $sql="SELECT * FROM tabella ORDER BY id";
    $result = $db_query->query($sql);
   
    while($row = $result->fetch_array(MYSQLI_ASSOC))
    {
      echo  '<option value="'.$row['dato'].'">'.$row['id'].'</option>';
    }

?>

</select>
    <input name="submit" type="submit" value="submit" /><br />
    <br />

</form>
</body>

la select devi inserirla dentro il tag form
 
Ciao Monital. Grazie di nuovo per l'aiuto.
Ti spiego la presenza dell'input text: nell'input text l'utente scrive un dato a sua scelta presente nella tabella del database e, dopo aver premuto il bottone, il php mi deve stampare a video il relativo id.
Una domanda perchè sto facendo un pochino di confusione: mi spieghi per favore l'ultima frase che mi hai scritto? (la select devi inserirla dentro il tag form)
Ciao, grazie mille
 
il tuo codice era cosi
Codice:
<form>
....
</form>
<select>
....
</select>

mentre la select deve essere all'interno del tag form

Codice:
<form>
....
<select>
....
</select>
</form>
 
Ciao Monital. Ho provato il tuo codice e funziona così... così...
Mi spiego. Appena avvio l'applicazione mi genera un errore e non visualizzo il bottone. L'errore è questo:
Codice:
Notice: Undefined index: text in C:\xampp\htdocs ... on line 12
Un'altra cosa: se provo a scrivere qualsiasi cosa nell'input text (qualsiasi cosa che non c'è nel database, anche una frase) e premo invio dalla tastiera, il php me la riscrive tale e quale.
Invece mi deve scrivere soltanto l' "id" corrispondente al "dato" inserito.
Ciao.
 
Ultima modifica:
scusa non riesco a capire l relazione dell'input text, prima hainscritto che l'id devi recuperarlo dalla select box, cioè fami capire devi prelevare l'id sia dalla select box che dall'input text?

puoi mettere il codice per intero che staic ercando di usare?
 
Ultima modifica:
Ciao Monital. Scusami, ho fatto un pò di confusione perchè sto lavorando anche su altri progettini.
Dimentica l'input text, non esiste. L'id lo devo recuperare dalla select box.
Il problema è questo: quando avvio il php mi compare il drop-down box ma è vuoto e poi non mi compare il bottone.
Questo è il codice:
Codice:
<body>

<form method="post" action="">

<select class="" name="variabile">

<?php

  // faccio la connessione al server e al database
    $con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita! ".mysql_error());
    $db = mysql_select_db ("database", $con) or die ("Connessione al database fallita! ".mysql_error());
   
  // estraggo tutto dalla tabella
    $sql="SELECT * FROM tabella ORDER BY id";
    $result = $db_query->query($sql);
   
    while($row = $result->fetch_array(MYSQLI_ASSOC))
    {
      echo  '<option value="'.$row['dato'].'">'.$row['id'].'</option>';
    }

?>

</select>
    <input name="submit" type="submit" value="submit" /><br />
    <br />

</form>
</body>
Ciao, grazie mille e scusa se mi sono confuso.
 
scusa nona vevo notato.
io uso mysqli per la connessione comunque
PHP:
<?php

  // faccio la connessione al server e al database
    $con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita! ".mysql_error());
    $db = mysql_select_db ("database", $con) or die ("Connessione al database fallita! ".mysql_error());
   
  // estraggo dat dalla tabella

    $sql="SELECT * FROM tabella ORDER BY id";
  $result = mysql_query($sql);
     while($row=mysql_fetch_array($result)){
      echo  '<option value="'.$row['dato'].'">'.$row['id'].'</option>';
    }

?>
così dovresti vederlo ovvaiemente nella SELECT * FROM tabella devi mettere il nome della tua tabella.

Ne caso metti qualche var_dump per vedere quale passaggio non funge
 
Ciao Monital. Ho provato il tuo codice e devo dire che funziona ma in parte.
Mi spiego: il codice che hai scritto estrae dalla tabella tutti gli id, mentre io vorrei estrarre dalla tabella soltanto l'id del dato che seleziono dal drop-down box (quindi un solo id).
Lo so che ti sto "stressando" e ti chiedo scusa per questo.
Ciao, grazie mille.
 
scusa samurai, nessun stress ci mancherebbe, ma non sei molto chiaro. Inizialmente chiedevi che la select box si riempisse degli id per selezionare un id e che ti restituisse il dato dell'id. Fin qui quel codice fa uello che chiedi. Ora non capisco cosa ti serve. Vuoi usare il dato restituito dalla select per ripescare l'id?
 
Ciao Monital.
Inizialmente chiedevo che nella drop-down box ci fosse la colonna "id" e che da questa potessi scegliere un qualsiasi valore.
Dopo aver premuto il bottone sullo schermo mi doveva stampare il valore del corrispondente "dato", e solo quello.
Con il tuo ultimo codice sullo schermo mi stampa tutti gli "id";
poi non mi compare il drop-down box e quindi non posso scegliere nessun valore.
Ciao.
 
ah ma samurai il codice che ti ho messo era a sostituire quello precedente per la connessione ma andava isnerito sempre nella select. avevo postato solo quello per accorciare
PHP:
<form method="post" action="">
<select class="" name="variabile">

<?php

  // faccio la connessione al server e al database
$con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita! ".mysql_error());
$db = mysql_select_db ("database", $con) or die ("Connessione al database fallita! ".mysql_error());

// estraggo dat dalla tabella

$sql="SELECT * FROM tabella ORDER BY id";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result)){
echo '<option value="'.$row['dato'].'">'.$row['id'].'</option>';
}

?>

</select>
    <input name="submit" type="submit" value="submit" /><br />
    <br />

</form>

per stampare il dato dipende se usi un altra pagina allora devi modificare l'action del form, per la stessa pagina ti basta richiamarla con
PHP:
$variabile= $_POST['variabile'];

echo $variabile;
 
Ciao Monital.
Grazie grazie grazie grazie grazie grazie grazie grazie grazie grazie. Ora fa esattamente quello che volevo.
Questo forum è fenomenale, tra te e Borgo Italia non so quante volte mi avete aiutato.
Ciao. :D
 
Ciao Monital. Scusa se riapro la discussione.
Ti volevo chiedere una cosa. Se volessi stampare a video l'id all'interno di una input text come dovrei scrivere? Ho provato in questo modo ma non funziona
Codice:
<body>
<form method="post" action="">
    <select class="" name="variabile">
<?php
  // faccio la connessione al server e al database
$con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita! ".mysql_error());
$db = mysql_select_db ("database", $con) or die ("Connessione al database fallita! ".mysql_error());
// estraggo dat dalla tabella
$sql="SELECT * FROM tabella ORDER BY id";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result)){
//echo '<option value="'.$row['id'].'">'.$row['data'].'</option>';
echo "<input type=\"text\" readonly=\"readonly\" value=\"".$_POST['variabile']."\">";
}
?>
</select>
<input name="submit" type="submit" value="submit" />
<br />
<br />
<?php
if (isset ($_POST['submit']))
{
$variabile= $_POST['variabile'];
echo $variabile;
}
?>
</form>
</body>
Un altra cosa. A volte, ma non sempre mi genera questo errore
Notice: Undefined index: variabile in ...
Se però scelgo un valore e clicco il bottone l'errore sparisce e non compare più. Mha...
Ciao, grazie mille
 
non funziona perchè hai messo l'input all'interno della select
PHP:
<select class="" name="variabile">
<?php
  // faccio la connessione al server e al database
$con = mysql_connect ("localhost", "root","") or die ("Connessione al server fallita! ".mysql_error());
$db = mysql_select_db ("database", $con) or die ("Connessione al database fallita! ".mysql_error());
// estraggo dat dalla tabella
$sql="SELECT * FROM tabella ORDER BY id";
$result = mysql_query($sql);
while($row=mysql_fetch_array($result)){
echo '<option value="'.$row['id'].'">'.$row['data'].'</option>';
}
?>
</select>
<input type="text" readonly="readonly" value="<?php echo   (!$_POST['variabile']) ? '' : $_POST['variabile'];?>">
 

Discussioni simili