Incrementare variabile alla pressione di un pulsante

best_king

Nuovo Utente
17 Ott 2012
16
0
0
Salve a tutti,io vorrei che al click di un bottone mi incrementasse il valore di una variabile,ma vorrei che quel valore venisse memorizzato nel db e nello stesso tempo prelevato con una query e visualizzato in una parte della pagina.Come posso fare?Grazie a tutti in anticipo.
 
Puoi fare tutto utilizzando o codice php puro oppure utilizzando ajax.
C'è da sapere: hai qualche problema se per il salvataggio si aggiornasse tutta la pagina appena premi il bottone?
 
ciao, io fatto questo però la variabile che viene passata al db è sempre 0 e non viene incrementata,cosa ho sbagliato?Grazie
PHP:
<body>
<form action="index.php" method="post">
<button type="submit" class="button" name="pulsante" onclick="incrementa()" />
</button>
</form>

<div class="count">

<? echo $query_results;
?>
</div>
<?
$x=0;
function incrementa(){
$x++;
}
if(isset($_POST['pulsante']))
incrementa();
$host="localhost";
$user="admin";
$password="admin";
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="esempio";
mysql_select_db($db_name,$myconn);
$query_sql="INSERT INTO esempio VALUES('$x');"; 
$result=mysql_query($query_sql,$myconn);
$query2 = "SELECT 'esempio' FROM 'esempio' "; 
$query_results = mysql_query($query2);



?>
 
Ultima modifica di un moderatore:
Ok bene.
Facendo in questo modo ti manca il controllo del valore nel db.
Infatti hai 0 come risultato Perché $query_results non contiene nulla quando lo stampi.
1) passa il div alla fine del codice
2) $x=0 non è esatto perché altrimenti ogni volta parti da 0, invece $x deve prendere il valore contenuto nel db prima dell'incremento.
 
ciao,ho fatto come hai detto tu ,ho messo il div infondo al codice però nn so perché quando clicco sul pulsante mi visualizza 1 per un decimo di secondoo e si refresha la pagina....come posso dargli il valore del database a x ?Ho provato cosi

Codice:
$query2 = "SELECT 'esempio' FROM 'esempio' "; 
$query_results = mysql_query($query2);
$x=$query_results;

ma non cambia niente.
 
Ultima modifica:
Prova a togliere gli apici.
Sicuro che il campo si chiama esempio e la tabella pure?
Metti la query in phpmyadmin e vedi se tutto va bene (anche se è semplicissima); poi posta il codice completo.
 
ciao,non ci avevo fatto caso il nome del campo era diverso ;) ...ti volevo chiedere come posso fare un if che mi controlli se il campo che si chiama conta_click è nullo non 0 ?
 
Quindi il campo si chiama conta_click?
Il valore del campo lo metti nella variabile $x quindi basta fare:
PHP:
if($x==0){
  // il campo è nullo
}else{
  // il campo non è nullo
}
 
ciao grazie per il supporto ;) ti volevo chiedere perché quando arriva qui
PHP:
if(isset($_POST['pulsante'])){
++$x;
}
mi incrementa solo una volta,e non ad ogni click.Come posso risolvere ,forse con u ciclo,se si come posso dirgli che ad "Ogni click" deve fare quello ?Grazie
 
Ultima modifica di un moderatore:
Posta il codice che hai fatto finora.
Pensandoci ci sono delle cose in più che non servono.
 
il codice è rimasto com'era prima non ho modificato niente....eccolo
PHP:
<form action="index.php" method="post">
<button type="submit" class="button" name="pulsante"/>
</button>
</form>
<div class="count">
<? echo $x; 
?>
</div>
<? 
$query2 = "SELECT conta_click FROM esempio "; 
$query_results = mysql_query($query2);
$x=$query_results;
if(isset($_POST['pulsante'])){

++$x;
}
$host="localhost";
$user="admin";
$password="admin";
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="esempio";
mysql_select_db($db_name,$myconn);
$query_sql="INSERT INTO esempio VALUES('$x');"; 
$result=mysql_query($query_sql,$myconn);
$query2 = "SELECT conta_click FROM esempio "; 
$query_results = mysql_query($query2);
?>

Grazie ancora ;)
 
Ultima modifica di un moderatore:
Prova un po' così:
PHP:
<form action="index.php" method="post">
<button type="submit" class="button" name="pulsante"/>
</button>
</form>
<?php
$query2 = "SELECT conta_click FROM esempio "; 
$query_results = mysql_query($query2);
$riga=mysql_fetch_array($query_results);
$x=$riga['conta_click'];
if(isset($_POST['pulsante'])){
$x++;
$host="localhost";
$user="admin";
$password="admin";
$myconn=mysql_connect($host,$user,$password) or die("Connection error");
$db_name="esempio";
mysql_select_db($db_name,$myconn);
$query_sql="INSERT INTO esempio VALUES('$x');"; 
mysql_query($query_sql,$myconn);
}
?>
<div class="count">
<?php echo $x; 
?>
</div>
 
ciao, l'ho appena provato però mi da questo errore:Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\esempio\index.php on line 32 ?come si può risolvere ? grazie.
 
ciao ,così funziona,però ci sono dei problemi ecco:
1)Parte da 1
2)quando clicco sul bottone(oltre che arriva solo a 2) ho visto nel db invece di caricare e sovrascrivere solo in una riga del database ne fa tanti per ogni click cosi...
1
2
2
2
2
2
Cosa manca ancora grazie ;)
 
Prova con questo.
Prova anche a cancellare tutti i record della tabella e vedi se funziona.
PHP:
<form action="index.php" method="post"> 
<button type="submit" class="button" name="pulsante"/> 
</button> 
</form> 
<?php 
$query2 = "SELECT conta_click FROM esempio ";  
$query_results = mysql_query($query2); 
$riga=mysql_fetch_array($query_results); 
$x=$riga['conta_click']; 
if(isset($_POST['pulsante'])){ 
$x++; 
$host="localhost"; 
$user="admin"; 
$password="admin"; 
$myconn=mysql_connect($host,$user,$password) or die("Connection error"); 
$db_name="esempio"; 
mysql_select_db($db_name,$myconn); 
if(isset($x))
  $query_sql="UPDATE esempio SET conta_click=$x";  
else
  $query_sql="INSERT INTO esempio VALUES('$x')";  
mysql_query($query_sql,$myconn); 
} 
?> 
<div class="count"> 
<?php echo $x;  
?> 
</div>
 
Ciao,scusa se ti rispondo solo adesso,ho avuto alcuni problemi con l'adsl...comunque ho provato anche questo codice ,e questo nemmeno inserisce il valore nel db... come si può fare adesso?Grazie ancora per il supporto.
 
ciao prova cosi
PHP:
<form action="index.php" method="post"> 
    <button type="submit" class="button" name="pulsante"> clicca </button> 
</form>
<?php
$conn = mysql_connect("localhost", "admin", "admin");
$db = mysql_select_db("esempio");
if (isset($_POST['pulsante'])) {
    $query_sql = "UPDATE esempio SET conta_click = conta_click + 1";
    mysql_query($query_sql);
}
$query2 = "SELECT conta_click FROM esempio ";
$query_results = mysql_query($query2);
$riga = mysql_fetch_array($query_results);
$x = $riga['conta_click'];

?> 
<div class="count"> 
    <?php echo $x;
    ?> 
</div>
 
Ultima modifica:
Ciao guarda nelle note avevo preparato questo perché non avevo connessione in quel momento :)
Prova:
PHP:
<form action="index.php" method="post"> 
<button type="submit" class="button" name="pulsante"/> 
</button> 
</form> 
<?php
$mysqli = new mysqli("localhost", "admin", "admin", "esempio"); 
$result = $mysqli->query("SELECT conta_click FROM esempio");  
$x=$result->fetch_array(MYSQLI_ASSOC);
if(isset($_POST['pulsante'])){ 
  if(!isset($x)){
   $x['conta_click']=0;
   $result = $mysqli->query("INSERT INTO esempio VALUES(1)");  
  }
  else	  
   $result = $mysqli->query("UPDATE esempio SET conta_click = (".$x['conta_click']."+1)");
}
?>
<div class="count"> 
<?php echo $x['conta_click']+1;  ?>
</div>
 
Ultima modifica:
ciao
se non ho capito male, potresti semplicemente fare così (a parte il div del conteggio)
PHP:
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="submit" name="pulsante" value="pulsante">
</form>
<?
/* crei la tabella esempio
CREATE TABLE `esempio` (
`id` SMALLINT( 1 ) NOT NULL ,
`conta_click` INT NOT NULL DEFAULT '0',
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
*/
//dati di connessione
$host = 'localhost';     //nome host
$username = 'root';      //user name
$password = 'password';  //password
$db = 'prove';            // nome data base
//---connessione----------------------------------------------------
$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
$sel = @mysql_select_db($db) or die (mysql_error());
if(isset($_POST['pulsante'])){
	mysql_query("INSERT INTO esempio VALUES(1,1) ON DUPLICATE KEY UPDATE conta_click=conta_click+1");
	$riga=mysql_fetch_array("SELECT conta_click FROM esempio WHERE id='1'");
	echo $riga['conta_click']."<br />";
}
?>
 

Discussioni simili