SELECT COUNT
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?php
require_once("header.php");
echo '<br/>';
echo '<br/>';
if(isset($_POST['submit'])){
if(!empty($_POST['name']) AND !empty($_POST['password'])){
$name = $_POST['name'];
$pass = $_POST['password'];
if (preg_match ('/^[A-Za-z. -]+$/', $name)){
if(mysql_select_db("database", $connect)){
$pass_check = mysql_query("SELECT COUNT(*) FROM person WHERE name == '$name' AND password == '$pass'");
if(!mysql_query($pass_check)){
echo 'Error: Could not select:' . mysql_error();
echo '<br/>';
}
$count = mysql_result($pass_check,0);
if ($count == 1) {
echo "Het wachtwoord komt overeen.<br/>";
} elseif ($count ==0 AND !empty($_POST['password'])) {
echo "Dit wachtwoord bestaat niet.<br/>";
echo $count;
}
}
else{
echo 'Couldnt connect to db!';
}
}
else {
echo 'Didnt used the right characters!';
}
}
else {
echo 'U dient de verplichte velden in te vullen.';
$name = FALSE;
$pass = FALSE;
}
}
?>
<form action="" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="name" size="20" maxlenght="20"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Registreer"></td>
</tr>
</table>
</form>
<?php
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
require("footer.php");
?>
require_once("header.php");
echo '<br/>';
echo '<br/>';
if(isset($_POST['submit'])){
if(!empty($_POST['name']) AND !empty($_POST['password'])){
$name = $_POST['name'];
$pass = $_POST['password'];
if (preg_match ('/^[A-Za-z. -]+$/', $name)){
if(mysql_select_db("database", $connect)){
$pass_check = mysql_query("SELECT COUNT(*) FROM person WHERE name == '$name' AND password == '$pass'");
if(!mysql_query($pass_check)){
echo 'Error: Could not select:' . mysql_error();
echo '<br/>';
}
$count = mysql_result($pass_check,0);
if ($count == 1) {
echo "Het wachtwoord komt overeen.<br/>";
} elseif ($count ==0 AND !empty($_POST['password'])) {
echo "Dit wachtwoord bestaat niet.<br/>";
echo $count;
}
}
else{
echo 'Couldnt connect to db!';
}
}
else {
echo 'Didnt used the right characters!';
}
}
else {
echo 'U dient de verplichte velden in te vullen.';
$name = FALSE;
$pass = FALSE;
}
}
?>
<form action="" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="name" size="20" maxlenght="20"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Registreer"></td>
</tr>
</table>
</form>
<?php
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
require("footer.php");
?>
Dit is mijn foutmelding:
Error: Could not select:Query was empty
Er is een fout opgetreden!
Foutsoort: WARNING
Foutmelding: mysql_result() expects parameter 1 to be resource, boolean given
Bestand: C:\xampp\htdocs\logtest\login.php
Regel: 17
Dit wachtwoord bestaat niet.
Wat doe ik fout?
$pass_check = mysql_query("SELECT COUNT(*) FROM person WHERE name == '$name' AND password == '$pass'");
eens in
$pass_check = mysql_query("SELECT COUNT(*) FROM person WHERE name = $name AND password = $pass");
Bedankt voor de snelle reactie, maar krijg de zelfde foutmelding. Nog andere suggesties?
Probeer dit eens:
$pass_check = mysql_query("SELECT COUNT(*) as count FROM person WHERE name = $name AND password = $pass");
var_dump($pass_check[0]);
exit();
Wat krijg je nu op je scherm te zien?
Als antwoord krijg ik NULL, maar wanneer ik de exit weghaal krijg ik alsnog dezelfde errors.
Maar je query gaat dus fout en levert als resultaat NULL op.
Probeer je query eens in te voeren in PHPMyAdmin en kijk of je dan wel resultaat krijgt.
SELECT COUNT(*) FROM persons WHERE name = '{$name}' AND password = '{$pass}'
COUNT(*)
0
Dus de voor de count werkt voor sql wel, maar roep hem niet goed aan dan?
Ik denk dat de fout bij je input ligt.
if(!mysql_query($pass_check)){
echo 'Error: Could not select:' . mysql_error();
echo '<br/>';
}
Wanneer hij niet de query op de $pass_check kan uitvoeren? Of wat houdt dit precies in?
Toevoeging op 22/07/2011 13:56:40:
mijn input? Hoe bedoel je dat?
Als mijn input niet klopt bijv dat een user of pass niet overeenkomt dan moet hij 0 afgeven. Toch?
Maar hij moet toch 1 teruggeven ipv 0? Vul eens een juiste naam en wachtwoord in?
Dat doe ik al de hele tijd.. maar krijg dus die error binnen.
Ik bedoel in phpmyadmin.
ja als ik dat doe dan krijg ik een count van 8 terug, omdat ik die naam al 8x in mijn login script heb ingevoerd. Dus of hij nu 0 of 8 terug geeft dat is allemaal goed, maar krijg nu in php dus helemaal niks terug.
$query = "SELECT COUNT(*) FROM person WHERE name = $name AND password = $pass";
$result = mysql_query($query);
echo 'aantal rijen = ' . $result[0];
Error: Could not select:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '8' at line 1
Ik heb nu deze error.. ik weet niet of ik nu vooruit of achteruit ga, maar die 8 staat voor de aantal die hij gevonden heeft. Ik snap alleen niet hoe hij die syntax fout ziet staan.
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
require_once("header.php");
echo '<br/>';
echo '<br/>';
if(isset($_POST['submit'])){
if(!empty($_POST['name']) AND !empty($_POST['password'])){
$name = $_POST['name'];
$pass = $_POST['password'];
if (preg_match ('/^[A-Za-z. -]+$/', $name)){
if(mysql_select_db("database", $connect)){
$pass_check = mysql_query("SELECT COUNT(*) FROM persons WHERE name = '{$name}' AND password = '{$pass}'");
$count = mysql_result($pass_check,0);
if(!mysql_query($count)){
echo 'Error: Could not select:' . mysql_error();
echo '<br/>';
}
if ($count == 1) {
echo "Het wachtwoord komt overeen.<br/>";
} elseif ($count ==0 AND !empty($_POST['password'])) {
echo "Dit wachtwoord bestaat niet.<br/>";
echo $count;
}
}
else{
echo 'Couldnt connect to db!';
}
}
else {
echo 'Didnt used the right characters!';
}
}
else {
echo 'U dient de verplichte velden in te vullen.';
$name = FALSE;
$pass = FALSE;
}
}
?>
<form action="" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="name" size="20" maxlenght="20"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Registreer"></td>
</tr>
</table>
</form>
<?php
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
require("footer.php");
?>
require_once("header.php");
echo '<br/>';
echo '<br/>';
if(isset($_POST['submit'])){
if(!empty($_POST['name']) AND !empty($_POST['password'])){
$name = $_POST['name'];
$pass = $_POST['password'];
if (preg_match ('/^[A-Za-z. -]+$/', $name)){
if(mysql_select_db("database", $connect)){
$pass_check = mysql_query("SELECT COUNT(*) FROM persons WHERE name = '{$name}' AND password = '{$pass}'");
$count = mysql_result($pass_check,0);
if(!mysql_query($count)){
echo 'Error: Could not select:' . mysql_error();
echo '<br/>';
}
if ($count == 1) {
echo "Het wachtwoord komt overeen.<br/>";
} elseif ($count ==0 AND !empty($_POST['password'])) {
echo "Dit wachtwoord bestaat niet.<br/>";
echo $count;
}
}
else{
echo 'Couldnt connect to db!';
}
}
else {
echo 'Didnt used the right characters!';
}
}
else {
echo 'U dient de verplichte velden in te vullen.';
$name = FALSE;
$pass = FALSE;
}
}
?>
<form action="" method="post">
<table>
<tr>
<td>Username</td>
<td><input type="text" name="name" size="20" maxlenght="20"></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Registreer"></td>
</tr>
</table>
</form>
<?php
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
echo '<br/>';
require("footer.php");
?>
Toevoeging op 22/07/2011 14:21:36:
wat staat er achter aantal rijen?
Ik had jou code idd gebruikt, maar dat mocht niet baten. Er stond niks achter aantal rijen.
tja, dat weet ik het ook ff niet...
Kan iemand mij helpen met mijn probleem?
Maar begin eens bij het begin:
- Variabelen buiten quotes (in je sql query)
- Degelijke foutafhandeling, waarin je ook de uitgevoerde query weergeeft als er iets fout gaat (tip: zet de query dus eerst in een variabele).
- Foutmeldingen 1 voor 1 wegwerken, te beginnen met de eerste die je krijgt.
$query = "SELECT COUNT(*) as count FROM person WHERE name = $name AND password = $pass";
$result = mysql_query($query);
$row = mysql_fetch_array($result);
echo 'aantal rijen = ' . $row['count'];