waarde na post ophogen met 1
Hoe kan ik het aanpakken dat a met iedere post 1 opgehoogd wordt?
<form name="contactform" action="" method="post">
<input type="submit" value="ga!" name="submitform">
Gewijzigd op 14/09/2010 19:42:24 door Bert Kouwenberg
en waar moet $a = $a = 1; op slaan, doe gewoon $a++;
$a = $a = 1 moet zijn $a = $a + 1; klopt maar daar ligt het niet aan, ik ga jouw oplossing ff proberen.
je zou ook nog $a+=2 kunnen doe ofzo, voor als je het met meer wil verhogen
Helaas, hij telt er 1 keer 1 bij op, maar daarna niet meer. Mogelijk omdat hij weer de waarde krijgt van a aan het begin van het script. Maar hoe los ik dat op?
heb je 2 aparte pagina's? zoja, dan is dat het probleem
Verder zou je het in het uiterste geval ook in een .txt-file kunnen opslaan, maar dat raad ik je niet aan.
hij kan ook zn formulier in de else zetten en het is ook klaar
Er zou dus iets moeten komen die een waarde 1 keer meegeeft zolang je op de pagina blijft en dan niet meer te zien is of zo.
Wat heeft het verhogen van de variabele $a met het plaatsen van een formulier in een else-clausule te maken? In zijn formulier kan hij uiteraard wel de waarde van $a meegeven (denk aan een hidden-input). Dit is echter wel te wijzigen op deze manier.
Code (php)
Gewijzigd op 14/09/2010 20:01:02 door Vincent Huisman
En dat moet ik nou juist voorkomen..
Gewijzigd op 14/09/2010 20:14:22 door Bert Kouwenberg
Mark L op 14/09/2010 19:51:43:
Bij het (her)laden van je pagina zijn geen variabelen gezet. Variabelen worden dus niet opgeslagen en later herbruikt. Deze zul je dus in een database moeten opslaan of in een global-variabele meegeven (GET, POST, COOKIE of SESSION lijken mij de meest voor de hand liggende..)
Verder zou je het in het uiterste geval ook in een .txt-file kunnen opslaan, maar dat raad ik je niet aan.
Verder zou je het in het uiterste geval ook in een .txt-file kunnen opslaan, maar dat raad ik je niet aan.
Ik wil je nogmaals op deze reactie wijzen. Variabelen worden alleen binnen het uitvoeren van een script bewaard. Als een script is uitgevoerd, dan worden alle waarden 'vernietigd' en moeten ze opnieuw gezet worden. Waarden die onthouden moeten worden, moeten daarom worden opgeslagen.
Als dat zo is, dan zo simpel mogelijk.
Waarom raadt je een txt file niet aan? lekker simpel en het gaat alleen maar om het eenmalig uithalen van een waarde?
omdat het niet simpel is en iedereen een txt'tje kan bekijken
En deze dan te includen. Zou dat werken?
Toevoeging op 14/09/2010 20:28:23:
Nee, werkt ook niet zie ik al, effect is hetzelfde.
Daarbij komt dat PHP meerdere scripts te gelijk uitvoert. Dit betekend dat als je het script hebt:
Code (php)
1
2
3
4
2
3
4
<?php
include('a_save.php'); // $a = 5; (zojuist gezet in a_save.php).
$newFile = '<?php'.PHP_EOL.'$a = '.($a+1).';'.PHP_EOL.'?>'; // PHP_EOL is een enter
?>
include('a_save.php'); // $a = 5; (zojuist gezet in a_save.php).
$newFile = '<?php'.PHP_EOL.'$a = '.($a+1).';'.PHP_EOL.'?>'; // PHP_EOL is een enter
?>
Als PHP door meerdere gebruikers tegelijk opgevraagd word, zorgt hij er niet voor dat hij eerst één script afmaakt en dan de volgende, maar hij werkt tegelijk. In bovenstaande code bedoel ik even met de variabele $newFile dat deze waarde naar het bestand a_save.php gezet word.
Code (php)
$a zou nu 7 moeten zijn, maar deze is nog steeds 6. Ik hoop dat je begrijpt wat ik bedoel.
Een database handelt alles stuk voor stuk af...
Gewijzigd op 14/09/2010 20:38:01 door Mark L
Wat ik ook doe, het werkt 1 x na post en daarna niet meer.....
De $newFile - zoals ik het heb neergezet - is een variabele en word dus ook verwijderd. Maar de waarde van deze variabele zou je in de file a_save.php kunnen zetten.
Mag ik vragen waarvoor je het wilt gebruiken?
Hier een simpel voorbeeld van wat je met een database zou kunnen doen.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
// Ophalen van $a
$query = mysql_query("SELECT a FROM count WHERE what = 'formulier'");
$result = mysql_fetch_assoc($query);
$a = $result['a']; // zinloze stap, maar wel verduidelijkend in dit voorbeeld.
// Bewerken van $a
mysql_query("UPDATE count SET a = (a+1) WHERE what = 'formulier'");
?>
// Ophalen van $a
$query = mysql_query("SELECT a FROM count WHERE what = 'formulier'");
$result = mysql_fetch_assoc($query);
$a = $result['a']; // zinloze stap, maar wel verduidelijkend in dit voorbeeld.
// Bewerken van $a
mysql_query("UPDATE count SET a = (a+1) WHERE what = 'formulier'");
?>
Je kunt ook alle velden van je formulier in de database opslaan. Als je dan alle rijen optelt d.m.v. COUNT(*) AS a dan krijg je ook het goede getal.
Maak een session aan, en dump het getal daar in.