[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.449
338
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.086
1
38
42
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.086
1
38
42
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.203
207
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.449
338
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.086
1
38
42
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.086
1
38
42
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.086
1
38
42
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.203
207
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
F Cerco Hosting con VECCHIE versioni di php Hosting 0
Cosina Captcha php PHP 1
S passare un valore da un form a un file .php con metodo post PHP 4
N php msyql PHP 6
N php problemi a visualizzare video PHP 3
A menu a tendina php PHP 1
D protezione cartelle: blocco visualizzazione/scaricamento contenuto, ma abilitazione utilizzo dati da parte di file .php presenti sul sito Web Server 1
F Php date_diff PHP 1
K [PHP] Aggiungere caratteri ad una stringa in base alla lunghezza della stessa PHP 2
C Wp-admin a file php WordPress 5
Lino80 [Retribuito] Cerco programmatore php per modifica/inserimento funzione/valori da un plugin importer wordpress Offerte e Richieste di Lavoro e/o Collaborazione 0
csi Inviare file jpg in locale alla stampante con php PHP 0
M Passaggio variabili array php su un tasto jq PHP 3
E Php aggiornamento tabella PHP 9
G phpmailer e php 8.1 con estensione mysqli PHP 6
M Invio dati database via email php PHP 0
K [php] Problema con inner join PHP 4
K [php]form invio dati PHP 0
P Codifica caratteri speciali mysql php PHP 0
K [PHP] Problema con variabili concatenate. PHP 1
E Stampante termica escpos-php PHP 6
JeiMax Modifica codice php personalizzato PHP 2
G Come modificare un pdf in php PHP 1
U Link a doppio file PHP PHP 0
E PHP & jQuery PHP 8
N Passare array da php a javascript PHP 5
F Applicazione PHP/MySQL per prenotazioni: limitare il numero massimo di posti prenotabili PHP 20
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
U PHP creare un file excel dopo ricerca nel DB PHP 0
M PHP/MySQL - Estrarre valori min e max di ogni gruppo PHP 5
F Php e fatturazione elettronica PHP 0
P lanciare script asp (o php) da jquery Javascript 1
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 1
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

Discussioni simili