Inserimento dei dati automatici mediante numero di tessera.

  • Creatore Discussione Creatore Discussione cris8380
  • Data di inizio Data di inizio

cris8380

Moderatore
Membro dello Staff
MOD
3 Giu 2016
261
14
18
41
Buongiorno come già avete visto da altri post, sto' creando un sito di fidelity card per la mia attività questa discussione la apro per avere una dritta per sapere come fare per inserire mediante il numero di tessera i punti al cliente; mi spiego meglio:
vorrei creare un file php che mi permette di inserire mediante la tessera da me selezionata i punti al cliente
quindi
creare 2 input 1 chiamato tessera e l'altro chiamato inserisci punti
fin qua ci sono
dopo pero al momento dell'inserimento dati dato invio lo script deve riconoscere la tessera inserita e generare una tabella che mi permetta di visualizzare i punti inseriti

n.b la tabella deve contenere i dati cliente quindi nome cognome, codice fiscale ecc... generati dal numero tessera inserito e logicamente mi dovrà mostrare i punti inseriti.

Grazie mille in anticipo.
 
Ciao,
se non ho capito male quello che intendi fare, tu hai una tabella con i dati anagrafici dei clienti e, per ogni cliente, un campo NR_TESSERA, univoco per ogni cliente, e un campo PUNTEGGIO, riportante il punteggio totalizzato fino a quel momento dal cliente. Inserendo il nr di tessera, il programma ti visualizza il nomintivo del cliente più un campo di input che riporta il punteggio attuale del cliente, con la possibità di aggiornarlo. Ho capito bene ??
Se è così, e se mi dai un po' di tempo, faccio qualche prova e ti faccio sapere



Zorro
 
Ultima modifica:
Grazie per la risposta Zorro! in pratica proprio oggi ho creato gli input Tessera e inserisci punti, adesso la cosa che vorrei e quella di inserire all'interno degli input il numero tessera e i punti
Es: Tessera n. 100000 - punti. 100 => invio
questa operazione mi deve generare una tabella con:
Nome - Cognome - Data - Tessera - Punti - Totale Punti
Tizio Caio 08/06/2016 100000 20 120

Ecco questo e cio che mi serviva
Comunque gli input li ho gia creati io e il codice php che non so come crearlo
:(:(:(:(:(
 
Non so se funziona perchè non lo ho testato però te lo posto.
PHP:
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<b> N° Tessera </b>: <input type="text" name="tessera"/> <br>
<b> Punti:  </b>: <input type="text" name="punti"/> <br>
<input type="submit" value="Invia"/>
</form>

<div>
<?php
if(isset($_POST['tessera'])){
    //qui inserisci la connessione al database
  // e fai la query per selezionare il cliente con questa tessera
?>
<table>
<tr><th>Nome</th>......<th>Tot punti </th> </tr>
<tr><td> <?php echo //Variabile nome_utente?>........ </tr>
</table>
<?php }//fine if
?>
</div>
 
Ciao Cris8380,
ti posto il codice: sono 2 pagine, 1 HTML per la creazione del form, e una PHP per la sua gestione e l'update della tabella (ovviamente ho semplificato al massimo le cose, poi dovrai adattarlo alle tue esigenze).
Ho creato una tabelladi prova (CLIENTI) con 4 record e 5 campi per ongi record: ID_CLI, COGNOME, NOME,NR_TESSERA e TOT_PUNTI (i numeri di tessera sono 100, 200, 300 e 400).


HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>FORM</title>
</head>
<body>
<form action="gestisci.php" method="get">
  Inserisci il nr di tessera:
  <input type="text" name="tessera"><br><br><br>
  ......e i punti da aggiungere:
   <input type="text" name="punti"><br><br><br><br><br><br>
  <input type="submit" name="invia" value="Invia i dati">
</form> 
</body>
</html>

..........e la pagina PHP

PHP:
<?php
$nrtess = $_GET['tessera'];
$pti = $_GET['punti'];



//----------LEGGE LA TABELLA---------

//connessione al server DB
$link_connessione=mysql_connect("localhost","...l.","....") or die ("Connessione impossibile");
//Selezione del database
$db=mysql_select_db("........", $link_connessione) or die ("Database inesistente!");
//Visualizzazione dei record di una tabella
$query="SELECT * FROM CLIENTI WHERE NR_TESSERA = $nrtess";
$tabella=mysql_query($query, $link_connessione) or die ("Attenzione: errore nella query");

//Esecuzione della query
while ($riga=mysql_fetch_array($tabella)) {
       $cognome = $riga['COGNOME'];   
       $nome = $riga['NOME'];
       $tessera = $riga['NR_TESSERA'];
       $punti = $riga['TOT_PUNTI'];
       
       $totpti = $punti + $pti;
       
       echo 'Cognome: '.$cognome.'<br>';
       echo 'Nome: '.$nome.'<br>';
       echo 'Tessera nr: '.$tessera.'<br>';
       echo 'Punti attuali: '.$punti.'<br>';
       echo 'Punti da aggiungere: '.$pti.'<br>';
       echo 'Punti totali: '.$totpti;
}


//-------SCRIVE LE MODIFICHE IN TABELLA---------
//Esecuzione della query
$query="UPDATE `CLIENTI` SET `TOT_PUNTI` = '".$totpti."' WHERE NR_TESSERA = '".$tessera."'";
echo '<br><br>';

if (mysql_query($query, $link_connessione)) {
    echo 'il record e\' stato correttamente modificato';
} else {   
    echo 'Attenzione: errore nella query';
}   
?>
.


Puoi vederne il funzionamento anche cliccando qui.
Spero vada bene. Per qualsiasi dubbio..........chieedi pure



Zorro
 
P.S. dimenticavo:
il form ti chiede il nr di tessera (100, 200, 300 o 400) e i punti da aggiungere a quell'utente, quindi, una volta inviati i dati, ti dice a chi corrisponde quella tessera, il suo punteggio attuale, i punti da aggiungere, il nuovo punteggio ed infine fa l'update della tabella, sostituendo il vecchio punteggio col nuovo
 
Grazie mille siete fantastici; congratulazioni bellissimo forum.
 
Mi da questo errore Attenzione: errore nella query, Nel mio mysql ho aggiunto Punti e Tot_punti
questo è il risultato dove sbaglio? dovrei aggiungere qualche altra cosa nel DB oltre a Punti e Tot_punti

PHP:
<?php
$nrtess = $_GET['tessera'];
$pti = $_GET['punti'];



//----------LEGGE LA TABELLA---------

//connessione al server DB
$link_connessione=mysql_connect("localhost","TEST","PSW") or die ("Connessione impossibile");
//Selezione del database
$db=mysql_select_db("TEST", $link_connessione) or die ("Database inesistente!");
//Visualizzazione dei record di una tabella
$query="SELECT * FROM Profilo WHERE Tessera = $Tessera";
$tabella=mysql_query($query, $link_connessione) or die ("Attenzione: errore nella query");

//Esecuzione della query
while ($riga=mysql_fetch_array($tabella)) {
       $Cognome = $riga['Cognome'];  
       $Nome = $riga['Nome'];
       $Tessera = $riga['Tessera'];
       $Punti = $riga['Punti'];
       $Tot_punti = $riga['Tot_punti'];
       
       $totpti = $punti + $pti;
       
       echo 'Cognome: '.$cognome.'<br>';
       echo 'Nome: '.$nome.'<br>';
       echo 'Tessera nr: '.$tessera.'<br>';
       echo 'Punti attuali: '.$punti.'<br>';
       echo 'Punti da aggiungere: '.$pti.'<br>';
       echo 'Punti totali: '.$totpti;
}


//-------SCRIVE LE MODIFICHE IN TABELLA---------
//Esecuzione della query
$query="UPDATE `Profilo` SET `Tot_punti` = '".$totpti."' Tessera = '".$Tessera."'";
echo '<br><br>';

if (mysql_query($query, $link_connessione)) {
    echo 'il record e\' stato correttamente modificato';
} else {  
    echo 'Attenzione: errore nella query';
}  
?>
[PHP]
 
Codice:
$query="SELECT * FROM Profilo WHERE Tessera = $Tessera";
$Tessera chi è? Sostiuiscilo con $nrtess e il nome della tabella controlla che effittavamente inizia con la lettera maiuscola, idem per il campo Tessera.
 
Niente da fare! ho provato a modificare come su descritto ma mi appare sempre lo stesso errore.
ho solamente aggiunto nella tabella Profilo la quale è scritta con prima lettera maiuscola (Tot_punti e Punti)
Forse sto sbagliando io boooo sto impazzendo aiutatemi
 
Codice:
$tabella=mysql_query($query, $link_connessione)
va messo prima la connessione. Poi non utilizzare le funzioni mysql poichè in php7 sono state rimosse. Usa mysqli
Codice:
$tabella=mysqli_query($link_connessione, $query)
 
ecco uno screanshot del db
Immagine.jpg
 
ok Zorro, cio che volevo dirti e questo: io ho gia una tabella che richiama un'altro script e sarebbe Profilo, io adesso in profilo dovrei lavorare per richiamare lo script che mi hai postato.
se creassi una nuova tabella CLIENTI e inserire solo ID_CLI, COGNOME, NOME, NR_TESSERA e TOT_PUNTI, non mi riconoscerebbe i clienti gia inseriti nella tabella Profilo come da immagine postata
 
Se leggi il mio post sopra lo screen del DB ti dovrebbe funzionare. Ribadisco che non devi usare le funzioni mysql pichè sono state eliminate nella versione PHP7, quindi utilizza mysqli
 
il nr di tessera è memorizzato nella variabile $nrtess (e non $Tessera) q1indi finchè non lo sostituirai nella query, ti darà sempre errore
 
@zorro lo ha sostiuito ha scritto. Lui ha sbagliato a passare i parametri alla funzione mysql_query(). Ha passato prima la query e poi la connessione, invece di passare prima la connessione e poi la query
 
Ibernato aggiungendo mysqli non funzionava, adesso funziona ma quando carico i punti mi appare 'il record e' stato correttamente modificato' ho inserito nella tabella Profilo ID_CLI, COGNOME, NOME, NR_TESSERA e TOT_PUNTI, ma , non esce i dati del cliente della tessera come nell'esempio di @zorro
 
Ragazziiiiii un bacione a tutti e due se non fosse stato per @zorro e @Ibernato non ci sarei riuscito funziona tutto correttamente....
 
@Cris non ti funzionava perchè per fare la connessione non hai utilizzato mysqli. Comunque usa mysqli come ti ho detto perchè mysql sono state eliminate in PHP7. Informati anche su internet =)
@zorro modera i termini ;)
 
@Ibernato ascolta io non ho usato mysqli forse hai ragione tu che bisogna mettere mysqli ma ti dico che non funzionava adesso funziona con mysql. sono felice che funzione pero' non ci accendiamo per queste cose ognuno usa cio che vuole.. grazie ancora ragazzi
 

Discussioni simili