Recuperare il valore del testo di una select

di il
5 risposte

Recuperare il valore del testo di una select

Buongiorno,
ho questo codice:

//index.php
<div class="form-group">
                        <label for="exampleFormControlSelect2">Scegli la tariffa</label>
                        <select class="form-control" id="tariffe_select" name="tariffa1">
                          <option value=""></option>
                          <?php
                            $result1 = mysqli_query($con, "SELECT * FROM tariffe");
                            while ($row2 = mysqli_fetch_array($result1)) :; ?>
                            <?php  ?>
                            <option  value="<?php echo $row2['idnome_tariffe'];?>"><?php echo $row2['nome_tariffe'];?></option>
                            
                            <?php endwhile; ?>
                            
                        </select>
In un'altra pagina php ho il codice per inserire il valore di $row2['nome_tariffe'] quindi faccio un $_POST['tariffa1'], va mi inserisce il valore di $row2['idnome_tariffe'] che sarebbe l'ID, come faccio a recuperare il valore di $row2['nome_tariffe']?

Grazie mille

5 Risposte

  • Re: Recuperare il valore del testo di una select

    Con mysqli_fetch_array ritorna un array se in php la variabile contenitore si chiama $array in memoria avrai zero o più array come il nome della colonna del database.
    Se nella query effettui una select recuperando anche nome la variabile sarà $array['nome']; (la funzione precedente è sensibile alle maiuscole/minuscole).
    Quindi se $row2['idnome_tariffe'] è univoco ma non esiste $row2['nome_tariffe'] devi effettuare una query select per recuperare il nome colonna nome_tariffe altrimenti se già esiste (in questo scenario intendo dire non recuperato direttamente dal database, dunque inviato con metodo POST da un forn html ad esempio tra l'atro significa anche variabile esterna poiché crei la variabile ma recuperi il valore passato da un'utente) dovrebbe comunque essere validato da una query select poiché con variabili esterne puoi sempre correre il rischio che tu puoi diventare ospite e altri proprietari, azzeramento totale del contenuto del tuo database etc o qualsiasi altra fantasia.
    https://www.php.net/manual/en/security.database.sql-injection.php
  • Re: Recuperare il valore del testo di una select

    $row2['idnome_tariffe'] esiste, viene passato tramite form con method="POST", mi serve per uno script ajax, il problema rimane che non riwsco a recuperare il valore di $row2['nome_tariffe'] perchè logicamente se faccio $_POST['tariffa1'] mi da il valore di $row2['idnome_tariffe'].

    Per la sicurezza ci penso dopo, per adesso mi serve la logica.

    Grazie mille
  • Re: Recuperare il valore del testo di una select

    $_POST significa variabile esterna non esisterà relazione con il database se non effettui nuovamente un'istruzione sql (come spiegato in precedenza).. effettua quella query per prelevare tutti i campi del tuo database, li troverai anche nome_tariffe.
    $sql = "SELECT * FROM tariffe WHERE idnome_tariffe='".$_POST['idnome_tariffe']."'";
    Il simbolo * significa recupera ogni campo.
  • Re: Recuperare il valore del testo di una select

    Ti faccio vedere la pagina esterna php con la quali vorrei scrivere i dati tramite POST in una tabella:
    
     $timestamp = strtotime("now");
        $entrata = date('Y/m/d H:i:s', $timestamp); // stamperà, ad esempio, 17/07/2016 14:30:14
        $uscita = '';
      $nome = $_POST['nome_bambino'];
      $cognome = $_POST['cognome_bambino'];
      $data_nascita = $_POST['data_nascita'];
      $tariffa = $_POST['tariffa1'];
      $prezzo_t = $_POST['prezzo_tariffe'];
      
      $mio_strtotime = strtotime($data_nascita);
    		$adesso_strtotime = strtotime("now");
    		$eta_strtotime = $adesso_strtotime - $mio_strtotime;
    		$eta = intval($eta_strtotime/31536000);
      
      $sql = "INSERT INTO bp_entrate (nome,cognome,età,tariffa,prezzo,entrata,uscita) VALUES ('$nome','$cognome','$eta','$tariffa','$prezzo_t','$entrata','')";
      $query = mysqli_query($con, $sql);
    
  • Re: Recuperare il valore del testo di una select

    Cosa c'entra l'inserimento con il recupero di un campo non presente? Suvvia fai la query
Devi accedere o registrarti per scrivere nel forum
5 risposte