Door
John De Zon
op 14-07-2014 11:49
gewijzigd op 14-07-2014 11:49
5.744 views
Hallo iedereen,
Ik ben bezig met mijn browsergame en ik loop compleet vast bij het opzetten van de eerste keer dat iemand het speelt.
Het is de bedoeling dat als de user business_life 0 in de database heeft staan. Hij nog nooit gespeeld heeft dan moet de onderstaande html pagina gegeven worden maar ik gebruik MySQL! Ik heb al een query toegevoegd maar dan loop ik vast! Hopelijk kan iemand mijn hiermee helpen.
<?php
include 'config/mysql.php';
$userName = $_SESSION['userName'];
$query = mysql_query("SELECT * FROM `logins` WHERE `userName`='$userName' AND `business_life`='0'");
if(isset($_SESSION['userName'])) {
?>
<!DOCTYPE html>
<html>
<head>
<title>TeamCrafted: Business Life</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="http://www.teamgame.tk/css/game.css">
</head>
<body>
<?php include_once("header.php"); ?>
<div class="content">
<div>
<h2>Welkom <?php echo $_SESSION['userName'];?>,</h2>
<p>op BUSINESS LIFE!</p>
<p>We hebben vernomen dat dit de eerste keer is dat je dit spel speelt.</p>
<p>Je kan starten als je wilt door op de startknop te klikken.</p>
<form href="install_business_life.php">
<button type="submit" class="button_kort" >Start</button>
</form>
</div>
</div>
</body>
</html>
<?php
} else {
header('Location: index.php');
}
?>
met mysqli_num_rows() controleren of er een record gevonden is.
En pas ook goede foutafhandeling toe op $query (hoewel $result een beter dekkende naam is).
Kijk eerst met een if-je of je $query gelukt is, en zo niet toon een foutmelding.
<?php
if($query) {
// gelukt, doe de rest...
if(mysqli_num_rows($query)==1) {
// een enkel item is gevonden, laat hier de HTML zien.
} else {
// niks gevonden.
}
} else {
// toon een error mysqli_error()
}
?>
<?php
include 'config/mysql.php';
$userName = $_SESSION['userName'];
$query = mysql_query("SELECT * FROM `logins` WHERE `userName`='$userName' AND `business_life`='0'");
if(isset($_SESSION['userName'])) {
?>
Dus je gaat eerst een nieuwe variabele maken (overigens onnodig).
Vervolgens een query uitvoeren met mysql ipv mysqli/pdo en zonder foutafhandeling.
En daarna (!!) ga je pas kijken of de sessie wel bestaat???
Lijkt mij een verkeerde volgorde.
Blijkbaar was Obelix en Idefix en je even voor, en je foutafhandeling is nu wel goed.
Maar op de plek van 'Bestaande account' moet je uiteraard wel de info tonen die er dan ook getoond meot worden.
Gebruik wel mysql_fetch_assoc() om die gegevens uit de query om te zetten in een array. Eventueel met een while() als je meerdere items verwacht.