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.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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?
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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.
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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.
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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 ?
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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
}
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Posta il codice che hai fatto finora.
Pensandoci ci sono delle cose in più che non servono.
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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>
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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.
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
Prova a mettere la connessione al db fuori dall'if prima di $query2
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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 ;)
 

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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>
 

best_king

Nuovo Utente
17 Ott 2012
16
0
0
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.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
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:

Longo8

Utente Attivo
28 Mar 2011
1.694
0
36
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:

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.046
150
63
PR
www.borgo-italia.it
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
Autore Titolo Forum Risposte Data
N Come si crea una variabile dinamica da incrementare? Javascript 1
Occhioverde [PHP] Incrementare variabile al click di un pulsante PHP 5
miglior servizio1 programma per incrementare seguaci su instagram Annunci servizi di Social Media Marketing 0
P Incrementare nodo in ciclo for-each XML 6
G [ASP] Incrementare un valore on the fly su selezione select Classic ASP 3
A incrementare valore nel campo input jQuery 0
asevenx incrementare visite e posizionamento sito SEO e Posizionamento 11
otto9due Incrementare id div con php PHP 2
emanuelevt incrementare z-index jQuery 0
P Incrementare con javascript il contenuto di una casella di testo Javascript 2
M Incrementare Numero PHP 1
A [Javascript] incrementare varabile in campo input Javascript 9
I incrementare un numero PHP 1
C Incrementare giorni in Italiano PHP 2
M Incrementare contatore da flash Flash 12
I come incrementare gli utenti e i post nel forum? SEO e Posizionamento 10
R Variabile non risconosciuta dentro una funzione PHP 1
K posizionare variabile da pagina html all'iframe. Javascript 1
I Assegnare dati fetch request ad una variabile globale Javascript 0
E Inviare variabile a PHP da ciclo in JS Javascript 0
S Variabile in post su altra pagina PHP 2
F Passare variabile a pulsante in finestra modale PHP 2
R Nome input testo+variabile PHP 1
A inserire variabile php colore in div html PHP 2
N Variabile di sessione è un array PHP7 PHP 3
A variabile non riconosciuta PHP 0
K Cambiare font size su echo stringa variabile PHP 24
B Errore unexpected '$variabile' (T_VARIABLE) in your code on line PHP 2
M Inserire variabile nella value di una hidden PHP 3
A Problema nel passare la variabile PHP 0
C variabile in img Javascript 8
C [RISOLTO]Inserimento variabile php in input html PHP 20
N PDF fpdi passare variabile PHP 4
F Come passare una variabile al modal di bootstrap PHP 1
F Passare una variabile php dal DB mysql alla pagina PHP 3
M [PHP] Passare variabile di sessione con metodo GET PHP 10
S [PHP] Rendere visibile variabile di un costrutto if in un altro costrutto if PHP 1
T PHP: variabile che cambia ogni 5 giorni... PHP 3
Tommy03 Variabile PHP per impostare una proprietà CSS PHP 2
L [PHP] Passare variabile PHP 3
J Passaggio variabile tra 2 file php PHP 15
Tommy03 Variabile PHP dentro a JQuery PHP 3
A [PHP] Scopo di una variabile PHP 4
M [PHP] Salvare campo di una tabella in una variabile PHP 14
B [PHP] Valore variabile non riconosciuto PHP 1
AMONRA75 [PHP] passare una variabile in una finestra MODAL PHP 1
P [PHP] $_GET non preleva variabile nell’URL PHP 4
A Php variabile immagine inesistente PHP 4
Shyson [PHP] Personalizzare variabile PHP 0
Monital Funzione php e campo database come variabile PHP 6

Discussioni simili