Probleem met mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in
Moet in het selectstatement een WHERE opgenomen worden?
Code (php)
Zoiets!
Maar ik vraag mij af of je de basis van PHP wel genoeg begrijpt. Misschien is dit wat je wilt best wel een hogere lat?
- Snap je hoe if-elseif-else werkt?
- Snap je de werking van functies?
Gewijzigd op 15/05/2022 17:41:16 door - Ariën -
Toevoeging op 15/05/2022 17:54:19:
Het geinige is dat ik op treinenweb had gekeken naar een foto van een tunnel. Het eerste waar ik naar keek of er een lift was. Had ik vroeger nooit gedaan! Maar off the record
Toevoeging op 15/05/2022 17:56:25:
Hoe if/else snap ik. Maar de andere functies zijn voor mij namen hoe ze precies werken, helaas nee dat weet ik niet. Daar is een site voor waar dat op eenvoudige wijze wordt uitgelegd?
Toevoeging op 15/05/2022 18:03:18:
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
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
<?php
require_once('config.php');
$query = "SELECT * FROM pagination";
$result = mysqli_query($con, $query);
echo $result;
// Voer hier query uit
$result = mysqli_query($con, $query);
if( $result === false)
{
echo 'Het is niet gelukt';
}
else
{
echo'Het is gelukt';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagination in PHP with Next and Previous</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
<table class="table table-striped">
<tr>
<td>User ID</td>
<td>User Name</td>
<td>User Email</td>
</tr>
<tr>
<?php
while($row = mysqli_fetch_assoc($result))
{
print_r($row);
?>
<td> <?php echo $row['ID'] ?> </td>
<td> <?php echo $row['Username'] ?> </td>
<td> <?php echo $row['Email'] ?> </td>
</tr>
<?php
}
?>
</body>
</html>
require_once('config.php');
$query = "SELECT * FROM pagination";
$result = mysqli_query($con, $query);
echo $result;
// Voer hier query uit
$result = mysqli_query($con, $query);
if( $result === false)
{
echo 'Het is niet gelukt';
}
else
{
echo'Het is gelukt';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagination in PHP with Next and Previous</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
<table class="table table-striped">
<tr>
<td>User ID</td>
<td>User Name</td>
<td>User Email</td>
</tr>
<tr>
<?php
while($row = mysqli_fetch_assoc($result))
{
print_r($row);
?>
<td> <?php echo $row['ID'] ?> </td>
<td> <?php echo $row['Username'] ?> </td>
<td> <?php echo $row['Email'] ?> </td>
</tr>
<?php
}
?>
</body>
</html>
Resultaat:
Het is niet gelukt
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\USB WebServer\root\Youtube11\index.php on line 42
De query lukt niet!
Wel even regels 3, 10, 13, 51, 52, 53 aanpassen
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
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
<?php
$con = mysqli_connect('localhost', 'demo', 'demodemo');
if ( !$con )
{
die('Could not connect: ' . mysql_error());
}
mysqli_select_db($con, "demodemo");
echo '<pre>' . print_r( $con, true ) . '</pre>';
$query = "SELECT * FROM users";
$result = mysqli_query($con, $query);
echo '<pre>' . print_r( $result, true ) . '</pre>';
// Voer hier query uit
if( $result === false)
{
echo 'Het is niet gelukt';
} else {
echo'Het is gelukt';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagination in PHP with Next and Previous</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
<table class="table table-striped">
<tr>
<td>User ID</td>
<td>User Name</td>
<td>User Email</td>
</tr>
<tr>
<?php
while($row = mysqli_fetch_assoc($result))
{
echo '<pre>' . print_r( $row, true ) . '</pre>';
?>
<td><?php echo $row['id'] ?></td>
<td><?php echo $row['name'] ?> </td>
<td><?php echo $row['password'] ?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
$con = mysqli_connect('localhost', 'demo', 'demodemo');
if ( !$con )
{
die('Could not connect: ' . mysql_error());
}
mysqli_select_db($con, "demodemo");
echo '<pre>' . print_r( $con, true ) . '</pre>';
$query = "SELECT * FROM users";
$result = mysqli_query($con, $query);
echo '<pre>' . print_r( $result, true ) . '</pre>';
// Voer hier query uit
if( $result === false)
{
echo 'Het is niet gelukt';
} else {
echo'Het is gelukt';
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagination in PHP with Next and Previous</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
<table class="table table-striped">
<tr>
<td>User ID</td>
<td>User Name</td>
<td>User Email</td>
</tr>
<tr>
<?php
while($row = mysqli_fetch_assoc($result))
{
echo '<pre>' . print_r( $row, true ) . '</pre>';
?>
<td><?php echo $row['id'] ?></td>
<td><?php echo $row['name'] ?> </td>
<td><?php echo $row['password'] ?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
Aan lijn 5 heb je niks omdat je al op lijn 10 de query uitvoert.
Maar let ook op de vervolgstappen.
Als de query gelukt is, dan voer je de rest bij voorkeur in die statement uit.
@Adoptive: Lijn 7 is fout. Je wilt de error van je connectie zien.
@all: Ik ga van de week een bijgewerkte versie van deze boilerplate online zetten. Mét SQL-file.
Gewijzigd op 15/05/2022 19:05:23 door - Ariën -
Maak dan van "proceduraal" meteen even procedureel. Want zo is er geen touw aan vast te knopen...
Gewijzigd op 15/05/2022 21:17:52 door - Ariën -
De code heb ik aangepast en het werkt. Echter ik wil maar 5 regels zien ik krijg de hele tabel te zien terwijl ik wel heb aangegeven dat ik maar 5 regels wil zien!
De code tot zover
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
require_once('config.php');
if(isset($_GET['page']))
{
$page= $_GET['page'];
}
else
{
$page = 1;
}
$num_per_page = 05;
$start_from = ($page-1)*05;
$query = "SELECT * FROM pagination LIMIT $start_from, $num_per_page";
$result = mysqli_query($con, $query);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Pagination in PHP with Next and Previous</title>
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet">
<body>
<table class="table table-striped">
<tr>
<td>User ID</td>
<td>User name</td>
<td>Email</td>
</tr>
<tr>
<?php
while($row = mysqli_fetch_assoc($result))
{
//echo '<pre>' . print_r( $row, true ) . '</pre>';
?>
<td><?php echo $row['ID'] ?></td>
<td><?php echo $row['Username'] ?></td>
<td><?php echo $row['Email'] ?></td>
</tr>
<?php
}
?>
</table>
<?php
$pr_query = "SELECT * FROM pagination";
$pr_result = mysqli_query($con, $pr_query);
$total_record = mysqli_num_rows($pr_result);
$total_page = ceil($total_record / $num_per_page);
if($page>1)
{
echo "<a href = 'index4.php?page=".($page-1)."' class= 'btn btn-danger'>Previous</a>";
}
for($i=1;$i<$total_page;$i++)
{
echo "<a href = 'index4.php?page=".$i."' class= 'btn btn-primary'>$i</a>";
}
if($i>$page)
{
echo "<a href = 'index4.php?page=".($page+1)."' class= 'btn btn-danger'>Next</a>";
}
?>
</body>
</html>
Wie kan me helpen?
Echo eens $query. Dan weet je wat er uitgevoerd wordt. Vooral ideaal bij dynamische queries met variabelen.
Dit komt er uit:
SELECT * FROM pagination LIMIT 0, 5
Toevoeging op 17/05/2022 16:36:58:
DE eerste keer krijg ik 5 recirds te zien aks ik dan op next duw krijg ik er weer 12.
Gewijzigd op 17/05/2022 17:09:13 door - Ariën -
Dan zie je 1 — 2 ipv 12
Probleem opgelost. Ik had index5 gemaakt en de verwijzingen waren naar index4