Aggiornamento database [era: Banale...per chi non è inesperta come me... :(]

  • Creatore Discussione Creatore Discussione Plospy
  • Data di inizio Data di inizio

Plospy

Nuovo Utente
11 Gen 2013
4
0
0
Ciao.
Sono 10 giorni che provo ma non riesco a scrivere questo semplice codice e a farlo funzionare.
Ho creato un DB e una tabella Codici con 3 campi (id, codice, usato). il campo usato è boolean e settato su false per default.
Ora, devo creare un form in cui l'utente digita il codice e preme "verifica".
A questo punto interrogo il DB e vedo se il codice esiste e se il campo usato è false. Se è così il campo "usato" deve essere aggiornato in true e deve apparire un messaggio.
Altrimenti deve solo apparire un msg.

So che probabilmente è una banalità ma davvero non ci riesco... :(

Grazie tantissimo per l'aiuto.

Se volete, qui c'è il codice che ho scritto:

PHP:
<?php

//memorizzo dall'utente il codice digitato con questo form:


<FORM METHOD="post" ACTION="">
<INPUT TYPE="text" NAME="Inserisci il codice">
<INPUT TYPE="submit" VALUE="Verifica">
</FORM>

// mi collego al database e alla tabella
	
$user="********";
$password="********";
$database="********";
$host= "********";

mysql_connect($host,$user,$password);

// eseguo la query per vedere se esiste il codice .

	$query = "SELECT * FROM codici WHERE username='$codice'";
        @mysql_select_db($database) or die( "Impossibile selezionare il database.");

// se esiste dato che è univoco, la variabile 

        if{ usato==false
	$messaggio = "Coupon verificato con successo!";
	usato=true; // far cambiare a usato valore
	");

	} else {
		//se invece non sono stati trovati risultati la variabile messaggio
		//conterrà il testo seguente
		$messaggio = "Codice coupon errato";
	}
	//stampo il messaggio
	echo $messaggio;
?>
 
PHP:
<FORM METHOD="post" ACTION=""> 
<INPUT TYPE="text" name="codice" placeholder="Inserisci il codice"> 
<INPUT TYPE="submit" VALUE="Verifica"> 
</FORM> 

<?php
// mi collego al database e alla tabella 
     
$user="********"; 
$password="********"; 
$database="********"; 
$host= "********"; 

mysql_connect($host,$user,$password); 
mysql_select_db($database) or die( "Impossibile selezionare il database."); 

if(!empty($_POST['codice'])){
$codice = mysql_real_escape_string($_POST['codice']);

$query = mysql_query("SELECT * FROM codici WHERE username='$codice'")or die(mysql_error()); 

echo mysql_num_rows($query)==0 ? "Coupon verificato con successo!" : "Codice coupon errato";
}
?>

Ti ho sistemato un po il codice, anche se non capisco molto la logica, il coupon sarebbe l'username di un codice? Inoltre passa a mysqli o pdo dato che mysql è deprecato e verrà poi rimosso
 
Ultima modifica:
Edit: ho riguardato la logica con l'aggiornamento del db che chiedevi, ecco, questo dovrebbe andarti bene allora

PHP:
<FORM METHOD="post" ACTION=""> 
<INPUT TYPE="text" name="codice" placeholder="Inserisci il codice"> 
<INPUT TYPE="submit" VALUE="Verifica"> 
</FORM> 

<?php
// mi collego al database e alla tabella 
     
$user="********"; 
$password="********"; 
$database="********"; 
$host= "********"; 

mysql_connect($host,$user,$password); 
mysql_select_db($database) or die( "Impossibile selezionare il database."); 

if(!empty($_POST['codice'])){
$codice = mysql_real_escape_string($_POST['codice']);

$query = mysql_query("SELECT * FROM codici WHERE codice='$codice' AND usato=0")or die(mysql_error()); 

if(mysql_num_rows($query)==1){
    mysql_query("UPDATE codici SET usato=1 WHERE codice='$codice'");
    echo "Coupon verificato con successo!";
}else echo "Codice coupon errato";
}
?>

Quello di prima lo avevo modificato in base a ciò che avevi inserito prima te
 
Ultima modifica:
Grazie

Grazie mille,

ci ho provato ma non è facile partire da zero. Ho scopiazzato un po' di codici in giro e provato a metterli insieme...ma sembra facile :)

Ti ringrazio ancora, provo subito il codice :))))))
 
Grazie grazie grazie !!!

ho provato e funziona!!!!


:fonzie::fonzie::fonzie::fonzie:

Sei un mito!!!

Davvero gentilissimo!!!!!!!!!
 

Discussioni simili