Hoe moet ik de selectie (MySQL) juist aanpakken?
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?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');
}
?>
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');
}
?>
Gewijzigd op 14/07/2014 11:49:38 door John De Zon
En pas ook goede foutafhandeling toe op $query (hoewel $result een beter dekkende naam is).
Ik begrijp niet hoe ik dit in mijn code moet toepassen.
Code (php)
1
2
3
2
3
<?php
$query = mysql_query('SELECT * FROM logins WHERE userName="'.$userName.'" AND business_life = 0 ');
?>
$query = mysql_query('SELECT * FROM logins WHERE userName="'.$userName.'" AND business_life = 0 ');
?>
Aangezien ik niet kan zien hoe je verbinding maakt is het gebruik van mysqli wat lastig mee te nemen voor mij.
Gewijzigd op 14/07/2014 12:07:11 door Pipo Clown
En verder is de stap van MySQL naar MySQLi niet zo heel groot. Standaard gebruik ik MySQLi.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
include 'config/mysql.php';
$query = mysql_query('SELECT * FROM logins WHERE userName="'.$userName.'" AND business_life = 0 ');
if($query) {
echo 'Nieuwe account';
if(mysql_num_rows($query)==1) {
echo 'Bestaande account';
} else {
echo 'Niets gevonden!';
}
} else {
echo 'MySQL error, contacteer [email protected]!';
}
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');
}
?>
include 'config/mysql.php';
$query = mysql_query('SELECT * FROM logins WHERE userName="'.$userName.'" AND business_life = 0 ');
if($query) {
echo 'Nieuwe account';
if(mysql_num_rows($query)==1) {
echo 'Bestaande account';
} else {
echo 'Niets gevonden!';
}
} else {
echo 'MySQL error, contacteer [email protected]!';
}
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');
}
?>
**knip** op 14/07/2014 11:49:10:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?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'])) {
?>
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.
Gewijzigd op 03/04/2017 18:45:05 door - Ariën -
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.
Kan je dit ook in een code zetten, leer ik meer uit dan iets onbekend.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$sql = "SELECT ... FROM... WHERE iets = '....'";
$result= mysqli_query($con,$sql);
if($result) {
// query gelukt, doe de rest...
if(mysqli_num_rows($query)==1) {
// ALS HET OM EEN ENKEL RECORD GAAT:
// $data = mysqli_fetch_assoc($result);
// echo $data['veldnaam'];
// ....OF BIJ MEERDERE...........
// while($data=mysqli_fetch_assoc($result)) {
// echo $data['veldnaam'];
// }
} else {
// niks gevonden.
}
} else {
// toon een error mysqli_error()
}
?>
$sql = "SELECT ... FROM... WHERE iets = '....'";
$result= mysqli_query($con,$sql);
if($result) {
// query gelukt, doe de rest...
if(mysqli_num_rows($query)==1) {
// ALS HET OM EEN ENKEL RECORD GAAT:
// $data = mysqli_fetch_assoc($result);
// echo $data['veldnaam'];
// ....OF BIJ MEERDERE...........
// while($data=mysqli_fetch_assoc($result)) {
// echo $data['veldnaam'];
// }
} else {
// niks gevonden.
}
} else {
// toon een error mysqli_error()
}
?>
**knip** op 14/07/2014 16:38:21:
Kan je dit ook in een code zetten, leer ik meer uit dan iets onbekend.
Ik ben eigenlijk van mening dat, wanneer je aan de hand van een aanwijzing, zelf iets uitzoekt, je daar meer van op steekt dan wanneer je alles voorgekauwd krijgt.
Wanneer alles voorgekauwd wordt leer je zelf niet nadenken, leer jezelf niet(s) ontwikkelen en zul je altijd afhankelijk blijven van anderen.
Gewijzigd op 03/04/2017 18:45:44 door - Ariën -
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
include 'config/mysql.php';
$query = "SELECT * FROM logins WHERE userName = '$username' AND business_life = 0";
$result= mysql_query($query);
if($result) {
?>
<!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
if(mysql_num_rows($query)==1) {
echo '
// ALS HET OM EEN ENKEL RECORD GAAT:
// $data = mysqli_fetch_assoc($result);
// ....OF BIJ MEERDERE...........
// while($data=mysqli_fetch_assoc($result)) {
// }';
} else {
echo 'Niks gevonden';
}
} else {
echo 'Error contacteer de server administrator!';
}
?>
include 'config/mysql.php';
$query = "SELECT * FROM logins WHERE userName = '$username' AND business_life = 0";
$result= mysql_query($query);
if($result) {
?>
<!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
if(mysql_num_rows($query)==1) {
echo '
// ALS HET OM EEN ENKEL RECORD GAAT:
// $data = mysqli_fetch_assoc($result);
// ....OF BIJ MEERDERE...........
// while($data=mysqli_fetch_assoc($result)) {
// }';
} else {
echo 'Niks gevonden';
}
} else {
echo 'Error contacteer de server administrator!';
}
?>
Voor de duidelijkheid het gaat hier om als ik in de database business_life naar 1 aanpas een scherm moet krijgen waar je al geregistreerd bent en je geen configuratie moet doornemen en als het 0 is moet je het configuratiescherm krijgen.
Beetje rommelig daar.
Waar is de foutafhandeling?
if(mysql_num_rows($query)==1) {
In $query staat tekst.
Gewijzigd op 14/07/2014 18:57:41 door - SanThe -
Euh..... PHP-commentaar echo'en? Hoezo?
Wat is een query en wat is een result?
Welke heb je in bovenstaande regel nodig?
Gewijzigd op 14/07/2014 22:04:45 door Frank Nietbelangrijk
Ik wil gewoon kijken of de business_life bij username op 0 staat indien ja pagina voorschotelen indien nee pagina voorschotelen.
Je moet mysql_num_rows wel de variabele van je mysql_query geven, en niet de string met je SQL-opdracht.
bestaat $username wel?
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in /home/u837763209/public_html/business_life.php on line 5
Hier de code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
include 'config/mysql.php';
if(isset($_SESSION['userName'])) {
$query = "SELECT * FROM logins WHERE userName = '$username' AND business_life = 0";
if (mysql_num_rows($query)==true) {
//Pagina wanneer 0
?>
<!DOCTYPE html>
<html>
<head>
<title>TeamGame: 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 {
//Pagina wanneer 1
?>
<?php
}
} else {
header('Location: index.php');
}
?>
include 'config/mysql.php';
if(isset($_SESSION['userName'])) {
$query = "SELECT * FROM logins WHERE userName = '$username' AND business_life = 0";
if (mysql_num_rows($query)==true) {
//Pagina wanneer 0
?>
<!DOCTYPE html>
<html>
<head>
<title>TeamGame: 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 {
//Pagina wanneer 1
?>
<?php
}
} else {
header('Location: index.php');
}
?>
**knip**
Gewijzigd op 03/04/2017 18:47:37 door - Ariën -
Code (php)
Toevoeging op 15/07/2014 11:15:41:
dit tussen regel 4 en 5
en dan verder heb je $result nodig bij de functies als mysqli_num_row() en de fetch functies
Toevoeging op 15/07/2014 11:16:20:
zoals trouwens hierboven al een paar keer gezegd