Goedemiddag PHPHulp,

Voor een spel die ik aan het maken ben moet er uitleg komen hoe je het spel speelt bij de eerste login.
Wel heb ik de tijd van de aanmelding in mijn database zitten, als dat kan helpen.

Alvast bedankt!,
Tim
Dit ga ik erin zetten! Heel erg bedankt! ???? ('t was een smiley maar kwam niet door de beveiliging ofzo)
Okee, laat even weten of het gelukt is.
Ik loop nu een tijdje vast met deze code:
<?php
session_start();
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("localhost") or die(mysql_error());
$useridsql = $_SESSION['userid'];
$showed_rules = mysql_query('select showed_rules from users where id="'.$useridsql.'"');
if(isset($showed_rules) == "0") {
if(isset($_SERVER['REQUEST_METHOD']) =="POST") {
	mysql_query('UPDATE users SET showed_rules="1" where id="'.$useridsql.'"');
} else {}
?>
<form action="" method="post">
  <div class="button">
    <button type="submit">Accepteer de spelregels</button>
  </div>
</form>
<?php
} else {
?>
Je hebt de regels geacepteerd
<?php
}
?>

phpMyAdmin bij showed_rules:
signup_date	showed_rules
1462003806	0

Hij zegt dat ik de spelregels al heb geacepteerd.
Wat is er fout?, ikzelf doe niet veel grote dingen in php, het bestaat (bijna) alleen maar uit echo.

Alvast bedankt!
Je moet de waarde van je SELECT-query nog fetchen. Verder raad ik MySQLi als driver aan.
Ik heb PHP ergens in de 5.3 volgensmij bestaat dat daarvoor nog niet maar ik heb nu:
<?php
session_start();
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("localhost") or die(mysql_error());
$useridsql = $_SESSION['userid'];
$showed_rules = mysql_query('select showed_rules from users where id="'.$useridsql.'"');
while ($row = mysql_fetch_array($showed_rules)) {
	printf("rules: %s<br>", $row[0]);
}
if(isset($showed_rules) == "0") {
if(isset($_SERVER['REQUEST_METHOD']) =="POST") {
	mysql_query('UPDATE users SET showed_rules="1" where id="'.$useridsql.'"');
} else {}
?>
<form action="" method="post">
  <div class="button">
    <button type="submit">Accepteer de spelregels</button>
  </div>
</form>
<?php
} else {
?>
Je hebt de regels geacepteerd<br>
<?php
}
?>

nu komt er bij rules: 0 te staan maar er staat nog steeds Je hebt de regels geacepteerd. Ik denk dat dit komt omdat ik die regels van
if(isset($showed_rules) == "0")
en meer niet in die fetch heb gezet.
Dit staat er nu op mijn pagina
rules: 0
Je hebt de regels geacepteerd
Stap liever over op MySQLi. De MySQL-driver is over een paar jaar echt uitgestorven.

Verder is een while-loop onnodig. Je haalt maar één record op.

Ook raad ik aan om je script netjes uit te lijnen. Nu is het behoorlijk een onleesbare spaghetti.
Maar als ik overstap naar MySQLi dan moet ik alles opnieuw doen.
momentele code:
<?php
session_start();
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("localhost") or die(mysql_error());
$useridsql = $_SESSION['userid'];
$showed_rules = mysql_query('select showed_rules from users where id="'.$useridsql.'"');
while ($row = mysql_fetch_array($showed_rules)) {
	printf("rules: %s", $row[0]);
if($row[0] == "0") {
if(isset($_SERVER['REQUEST_METHOD']) =="POST") {
	mysql_query('UPDATE users SET showed_rules="1" where id="'.$useridsql.'"');
} else {}
?>
<form action="" method="post">
  <div class="button">
    <button type="submit">Accepteer de spelregels</button>
  </div>
</form>
<?php
} else {
?>
Je hebt de regels geacepteerd<br>
<?php
}
}
?>
dit werkt maar mijn website geeft de volgende output:
rules: 0
Â
   Accepteer de spelregels Â

(p.s geen [/code] tags gebruikt omdat hij anders die  niet weergeeft)
en als ik mijn pagina reload dan gaat hij automatisch van 0 naar 1
Lijn 10 is niet echt de manier zoals ik liet zien. En zie verder mijn vorige post.

Nu kan je nog makkelijk naar MySQLi toe. Als je uitstelt wordt de weg veel langer. En ik denk dat je niet staat te wachten op een 'gebroken' script straks?
En als ik MySQLi wil gebruiken moet ik (volgensmij) ook automatisch naar PHP 5.5 of hoger,
ik heb al aardig wat van mijn spel in PHP die af is en dat moet ik volgensmij ook deels aanpassen want dan krijg je iets van:
$functie -> $deel.
Dat wordt een grote klus als ik dat ga doen...

Foutje... MySQLi is er ook al voor PHP 5.3
Als je met $mysqli->query() structuren gaat werken, dan heb je het over Object Oriënteerde opbouw. Je kan ook de procedurele techniek gebruiken waarop ook de verouderde mysql-driver op gebaseerd is.

Reageren