[PHP] Salvare campo di una tabella in una variabile

Mastiffs1990

Nuovo Utente
30 Apr 2019
5
0
1
Salve a tutti,

sto cercando di creare un form di ricerca per un sito e sto avendo problemi a salvare un valore di un campo della tabella in una variabile. Vi scrivo di seguito i dettagli. Avete qualche consiglio?
Grazie anticipatamente!

DB:
Nome Tabella: Partenze
Campi: Bus_num, nome_fermata, orario, id_tratta

Codice php:
PHP:
<?php
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";

$connect = mysqli_connect($servername, $username, $password, $dbname);
$request = mysqli_real_escape_string($connect, $_POST["query"]);

$query = " SELECT orario FROM partenze WHERE nome_fermata LIKE '%".$request."%'";

$result = mysqli_query($connect, $query);

if(mysqli_num_rows($result) > 0)
{
 while($row = mysqli_fetch_assoc($result))
 {
//  $data[] = $row["nome_fermata"];
echo '<option value="'.$row['nome_fermata'].'">'.$row['orario'].'</option>';
printf("bus_num: %s\n",$fieldinfo->bus_num);
 }
  }
?>
Come potete vedere in $request ci sarà il nome_fermata precedentemente scelto.
Obbiettivo: una volta scelto nome_fermata dovrà essere salvato in una variabile il valore nel campo bus_num relativo.
 
Ultima modifica:

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.406
339
83
@Mastiffs1990
Da regolamento del forum, come tutti noi sei tenuto ad usare il tag
code-gif.6007
o il tag
php-png.6009
per il PHP, quando posti del codice, oppure la funzione codice dalla barra degli strumenti
box-inserisci-2-png-jpg.6008

Inoltre ti prego di leggere attentamente il regolamento generale del forum e quello di sezione dove posti
Grazie
Per questa volta te lo sistemo io ma mi raccomando per il futuro
 
  • Like
Reactions: Mastiffs1990

luigi777

Utente Attivo
14 Feb 2008
1.085
1
38
39
Massa, Italy
Grazie @Max 1 e scusa per l'inconveniente.
ciao prima di tutto leva i dati del tuo db di aruba.. perché dopo si inventano altre cose per farci complicare la vita ad noi programmatori e poi dite che dopo aruba non va.
contatta un'amministratore e fatti oscurare i dati di login al tuo db.
e se voi chiedi la cancellazione del mio post.

Perché dopo mettono altre regole che poi ci faranno tribolare per le persone che pubblicano tutto.
 
  • Like
Reactions: Mastiffs1990

Mastiffs1990

Nuovo Utente
30 Apr 2019
5
0
1
ciao prima di tutto leva i dati del tuo db di aruba.. perché dopo si inventano altre cose per farci complicare la vita ad noi programmatori e poi dite che dopo aruba non va.
contatta un'amministratore e fatti oscurare i dati di login al tuo db.
e se voi chiedi la cancellazione del mio post.

Perché dopo mettono altre regole che poi ci faranno tribolare per le persone che pubblicano tutto.
Hai ragione.

Visto che da quanto leggo sei un programmatore, per caso hai qualche soluzione al mio problema?
Grazie.
 

luigi777

Utente Attivo
14 Feb 2008
1.085
1
38
39
Massa, Italy
ciao dovrebbe più meno essere cosi.. io lo fatto sulla frutta ma forse il tuo codice manca select name etc..
vedi il mio .
Io lo fatto senza database per fare una prova veloce.
PHP:
<!DOCTYPE html>
<html lang="en" dir="ltr">
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
<?php
if(isset($_POST["invia"]))
{
    $request = $_POST["frutta"];
    echo $request;
}
?>
<form name="form_frutta" method="post" action="prova.php">
    <select name="frutta">
        <option value="mela">mela</option>
        <option value="banana">banana</option>
        <option value="arancia">arancia</option>
        <option value="fragola">fragola</option>
    </select>
      <input type="submit" value="invia" name="invia">
</form>
  </body>
</html>

vedi. ciao e buona notte e buon 1 maggio.
 

marino51

Utente Attivo
28 Feb 2013
3.051
193
63
Lombardia
vedi se ti basta scritto così, altrimenti fatti vivo
PHP:
$query = " SELECT Bus_num, nome_fermata, orario, id_tratta FROM partenze WHERE nome_fermata LIKE '%" . $request . "%'";
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
    while($row = mysqli_fetch_assoc($result))
    {
        $Bus_num      = $row['Bus_num'];
        $nome_fermata = $row['nome_fermata'];
        $orario       = $row['orario'];
        $id_tratta    = $row['id_tratta'];
        //..............
    }
}
 
  • Like
Reactions: Mastiffs1990

Max 1

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
29 Feb 2012
4.406
339
83
Grazie @Max 1 e scusa per l'inconveniente.
ciao prima di tutto leva i dati del tuo db di aruba.. perché dopo si inventano altre cose per farci complicare la vita ad noi programmatori e poi dite che dopo aruba non va.
contatta un'amministratore e fatti oscurare i dati di login al tuo db.
e se voi chiedi la cancellazione del mio post.

Perché dopo mettono altre regole che poi ci faranno tribolare per le persone che pubblicano tutto.
e poi usa PDO ,con bindparam che protegge tutto e hai meno da scrivere.
Cosa hai voluto dire? Sai io sono un po' duro di testa e non ho capito bene!
 

luigi777

Utente Attivo
14 Feb 2008
1.085
1
38
39
Massa, Italy
presa dalla guida:

Il metodo prepare() di PDO mette a disposizione uno strumento più avanzato e più sicuro per l'esecuzione delle query, attraverso di esso infatti sarà possibile accedere in "modalità protetta" anche a dati provenienti da fonti esterne, inoltre, il metodo consente di mettere il database interrogato al riparo di minacce come per esempio le SQL Injections; si analizzi il seguente esempio:

PHP:
# utilizzo del metodo prepare()

// preparazione della query 
$sql = $db->prepare('SELECT nome, cognome FROM anagrafica');

// esecuzione della query 
$sql->execute(); 

// creazione di un array dei risultati 
$res = $sql->fetchAll();

// visualizzazione dei risultati 
print_r($res);
 

luigi777

Utente Attivo
14 Feb 2008
1.085
1
38
39
Massa, Italy
io uso cosi:
PHP:
$id = $_GET['id'];
$sql = "SELECT * FROM users WHERE id=:id";
$query = $db->prepare($sql);
$query->execute(array(':id' => $id));

while($row = $query->fetch(PDO::FETCH_ASSOC))
{
    $fname = $row['fname'];
    $age = $row['age'];
    $email = $row['email'];
}
 

luigi777

Utente Attivo
14 Feb 2008
1.085
1
38
39
Massa, Italy
dicevo per bindparam si usa per insert o update da quello che sto studiando.
PHP:
    $sql = "INSERT INTO users(fname, age, email) VALUES(:fname, :age, :email)";
        $query = $db->prepare($sql);

        $query->bindparam(':fname', $name);
        $query->bindparam(':age', $age);
        $query->bindparam(':email', $email);
        $query->execute();
 

Mastiffs1990

Nuovo Utente
30 Apr 2019
5
0
1
vedi se ti basta scritto così, altrimenti fatti vivo
PHP:
$query = " SELECT Bus_num, nome_fermata, orario, id_tratta FROM partenze WHERE nome_fermata LIKE '%" . $request . "%'";
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
    while($row = mysqli_fetch_assoc($result))
    {
        $Bus_num      = $row['Bus_num'];
        $nome_fermata = $row['nome_fermata'];
        $orario       = $row['orario'];
        $id_tratta    = $row['id_tratta'];
        //..............
    }
}
Ciao e grazie per la tua risposta.
Il codice che mi hai scritto purtroppo non va bene (o forse sono io che non riesco ad usarlo al meglio) per le mie esigenze.
Oltre a salvare il campo num_bus in una variabile quando una persona sceglie nome_fermata, questa deve essere passata nell'index.php per popolare la query che partira dopo il click sul tasto "Cerca".
Ti riporto il pezzo di codice interessato di seguito. Grazie!

Index.php
PHP:
...
  <script>
//Alla scelta di nome_fermata carica automaticamente una dropdown con gli orari

   $('#country').on('change',function(){
       var query = $(this).val();
       if(query){
           $.ajax({
               type:'POST',
               url:'orari.php',
               data:'query='+query,
               success:function(html){
                   $('#orari').html(html);
               }
           });
       }else{
           $('#orari').html('<option value="">Seleziona prima la fermata</option>');
       }
   });
 });
</script>
...
//Al click del tasto "Cerca"
  <?php

    if (isset($_POST['submit'])) {
      $departure = $_POST['country'];
      $arrival = $_POST['country1'];
      $tipo_bus = $_POST['tipo_bus'];
      $orario = $_POST['orario'];
                  if ($departure != "" || $arrival != "" || $tipo_bus != "" || $orario != "" ) {

                    $query = "SELECT * FROM search_bar_tutorial WHERE departure = '$departure' AND arrival = '$arrival' OR tipo_bus = '$tipo_bus' AND orario_partenza>= '$orario'  AND bus_num=$bus_num ORDER BY orario_partenza ASC";
                    $data = mysqli_query($conn,$query) or die('error');
                    if (mysqli_num_rows($data) > 0) {
                      while ($row = mysqli_fetch_assoc($data)) {
                        $id = $row['id'];
                        $departure = $row['departure'];
                        $arrival = $row['arrival'];
                        $tipo_bus = $row['tipo_bus'];
                        $orario_partenza = $row['orario_partenza'];
                        $orario_arrivo = $row['orario_arrivo'];
                        $linea_bus = $row['linea_bus'];
                        $bus_num= $row['bus_num'];

                        ?>
                          <tr>
                            <td><?php echo $departure; ?></td>
                            <td><?php echo $arrival; ?></td>
                            <td><?php echo $tipo_bus; ?></td>
                            <td><?php echo $orario_partenza; ?></td>
                            <td><?php echo $orario_arrivo; ?></td>
                            <td><?php echo $linea_bus; ?></td>
                          </tr>
                        <?php
...

Orari.php
PHP:
<?php
$servername = "xxx";
$username = "xxx";
$password = "xxx";
$dbname = "xxx";
$connect = mysqli_connect($servername, $username, $password, $dbname);
$request = mysqli_real_escape_string($connect, $_POST["query"]);
$query = " SELECT orario, id_tratte FROM partenze WHERE nome_fermata LIKE '%".$request."%'";
$result = mysqli_query($connect, $query);
if(mysqli_num_rows($result) > 0)
{
 while($row = mysqli_fetch_assoc($result))
 {

$orario= $row['orario'];
$id_tratte= $row['id_tratte'];

//passo $id_tratta
echo '<option> '. $id_tratte .'</option>';
// PROBLEMA: Passare $orario in index.php
echo '<option> '. $orario .'</option>';

}
  }
?>
 
Ultima modifica:

marino51

Utente Attivo
28 Feb 2013
3.051
193
63
Lombardia
non mi "trovo" con il codice che hai postato,
ti ho preparato brevi script html e php
che ripresentano in html il valore scelto e un testo
penso che potrai modificare per ottenere il risultato voluto
HTML:
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <title>Prova Ajax</title>
    <script type="text/javascript" src="jquery.min.js"></script>

    <script type="text/javascript">
$(document).ready(function(){
    $('#fermata').on('change',function(){
        var query = $(this).val();
        alert('query = '+query);
        if(query != 0){
            $.ajax({
                type:  'post',
                cache: false,
                url:  'esempio_12.php',
                data: 'query='+query,
                success:function(html) {
                    $('#orari').html(html);
                },
                error: function(request, status, error)
                {
                    $('#orari').html('ERRORE : il server non risponde o lo ha fatto in modo anomalo '+request.responseText);
                }
            });
        }
        else {
            $('#orari').html('Seleziona prima la fermata');
        }
    });
});
    </script>
  </head>
  <body>
    <select id="fermata" name="fermata">
      <option value="0">Seleziona la fermata</option>
      <option value="1">fermata 1</option>
      <option value="2">fermata 2</option>
      <option value="3">fermata 3</option>
    </select>
    <br />
    <div id="orari"> </div>
  </body>
</html>

PHP:
<?php
echo "<br /><br />";
echo $_POST['query'];
echo "<br />";
echo "ho ricevuto il valore che ho visualizzato";
?>

risultato ottenuto

upload_2019-5-2_15-39-2.png
 
Discussioni simili
Autore Titolo Forum Risposte Data
G php salvare file in campo blob mysql: massimo 4MB PHP 1
V [PHP] Salvare campo radio in db e leggerlo PHP 15
M [PHP] FPDF Salvare su disco C locale Windows PHP 3
L [PHP] Salvare csv da form dati PHP 5
G [PHP] SALVARE RECORD ESTRATTI DA DATABASE PHP 6
D Come salvare scelta della select "dinamica" ajax-php? Come dato php o attributo value tag option? Ajax 5
M Salvare i dati nel db e aprire altra pagina php PHP 7
S [PHP] Salvare dati tabella in formato exel PHP 0
C Salvare immagini da php in automatico PHP 2
Couting95 inserire dati da un file di testo in una tabella in php PHP 1
P Data scraping in PHP non funziona PHP 4
C Calcoli matematici in php PHP 5
F Scrivere dei dati in word con php PHP 0
D PHP leggere cartella di Windows PHP 2
I dominio aruba versione php server linux Domini 3
G Colorare menu select attraverso ricerca php PHP 0
L PHP motore di ricerca nel sito PHP 1
S PHP e Mysqli PHP 0
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
M Visulizzare immagine con php PHP 8
G [PHP] Creare script di prenotazione con controllo disponibilità. PHP 7
G leggere file txt e stampare con php il contenuto a video PHP 7
F Ricreare struttura php+mysql su Xampp Apache 0
Z PHP.INI - STMP per invio email con PHP Server Dedicati e VPS 0
M Array associativi php su 2 campi mysql PHP 10
G Invio form con PHP PHP 3
T fatture con voci fattura in php PHP 0
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
M Collegamento tra form html e script php PHP 4
M Problemi con la stampa dei valori in php PHP 1
W [Cerco collaborazioni] Sviluppatore Web (PHP) Offerte e Richieste di Lavoro e/o Collaborazione 1
D passare valori da database sql a php PHP 1
L Ricezione dei dati su file php da modulo html PHP 6
E Inviare variabile a PHP da ciclo in JS Javascript 0
A form PHP prenotazione tramite query PHP 2
A Form php prenotazione di un azienda sanitaria locale presso studio medico PHP 1
F menù select dinamico da db in php PHP 3
L Problemi form Pagina php HTML e CSS 3
L php mysql non salva solo id PHP 21
L php mysql cerca e visualizza pagina PHP 0
F Il codice php è giusto? PHP 2
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
A invio massivo dati a file php Javascript 4
Z MySql injection PHP PHP 1
V PHP form intersecate PHP 0
I [Offro][Retribuito] Programmatore Php Offerte e Richieste di Lavoro e/o Collaborazione 0
P Funzione jQuery Ajax invio file a php jQuery 1
C Dopo chiusura del tag php la stringa html va a capo PHP 1
E Transaction php PHP 11
B ciclare file xml con PHP PHP 1

Discussioni simili