geen output bij mysqli
in een vorig topic had ik problemen om een where query uit te voeren als de waarde bij de where een aanhalingsteken bevat, nu heb ik uitgevonden dat je dat kan omzeilen met mysqli_stmt.
nu heb ik enkel het probleem dat enkel de waarden $topic_id en $topic_name worden geprint, en de 2de query niet wordt uitgevoerd? weet iemand waarom?
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
// maak verbinding met database:
$link = mysqli_connect("sql205.byethost10.com", "b10_3322909", "gameover", "b10_3322909_yourgamerpage");
//variabelen die in de query ingevuld worden:
$forum_id = "1";
$page = 1;
if(mysqli_connect_errno()){
printf("connect failed: %s\n", mysqli_connect_error());
exit();
}
/* maak een prepared statement aan, hiermee voer je nog _niet_ de query uit: */
//while (mysqli_stmt_fetch($stmt)){
$stmt = mysqli_prepare($link, "SELECT TOPIC_ID, TOPIC_NAME FROM WROX_TOPICS WHERE FORUM_ID=?") ;
$stmt2 = mysqli_prepare($link, "SELECT TIME, USER FROM WROX_MESSAGES WHERE TOPIC_NAME=? ORDER BY TIME");
/* vul de vraagtekens in de query in:
(eerste argument is statement, 2e argument zijn de types van de
variabelen die je in gaat vullen (s = string, i = integer, d = double),
3e en verdere argumenten zijn de waarden die je in gaat vullen in
de query ) */
mysqli_stmt_bind_param($stmt, "s", $forum_id);
/* voer de query daadwerkelijk uit */
mysqli_stmt_execute($stmt);
/* 'bind' het statement aan een variabele. Als je nu de resultaten van
de query ophaalt worden steeds de waarden van het eerste veld in
$district gezet. */
mysqli_stmt_bind_result($stmt, $topic_id, $topic_name);
/* haal het eerste record op: */
while(mysqli_stmt_fetch($stmt)){
mysqli_stmt_bind_param($stmt2, "s", $topic_name);
mysqli_stmt_execute($stmt2);
mysqli_bind_result($stmt2, $time, $user);
mysqli_stmt_fetch($stmt2);
$result1["topic_id"]=$topic_id;
$result1["topic_name"]=$topic_name;
$result2["time"] = $time;
$result2["user"] = $user;
print $topic_id;
print $topic_name;
print $time;
print $user;
}
/* sluit de statement af: */
//}
mysqli_stmt_close($stmt);
/* sluit de database-verbinding */
mysqli_close($link);
?>
// maak verbinding met database:
$link = mysqli_connect("sql205.byethost10.com", "b10_3322909", "gameover", "b10_3322909_yourgamerpage");
//variabelen die in de query ingevuld worden:
$forum_id = "1";
$page = 1;
if(mysqli_connect_errno()){
printf("connect failed: %s\n", mysqli_connect_error());
exit();
}
/* maak een prepared statement aan, hiermee voer je nog _niet_ de query uit: */
//while (mysqli_stmt_fetch($stmt)){
$stmt = mysqli_prepare($link, "SELECT TOPIC_ID, TOPIC_NAME FROM WROX_TOPICS WHERE FORUM_ID=?") ;
$stmt2 = mysqli_prepare($link, "SELECT TIME, USER FROM WROX_MESSAGES WHERE TOPIC_NAME=? ORDER BY TIME");
/* vul de vraagtekens in de query in:
(eerste argument is statement, 2e argument zijn de types van de
variabelen die je in gaat vullen (s = string, i = integer, d = double),
3e en verdere argumenten zijn de waarden die je in gaat vullen in
de query ) */
mysqli_stmt_bind_param($stmt, "s", $forum_id);
/* voer de query daadwerkelijk uit */
mysqli_stmt_execute($stmt);
/* 'bind' het statement aan een variabele. Als je nu de resultaten van
de query ophaalt worden steeds de waarden van het eerste veld in
$district gezet. */
mysqli_stmt_bind_result($stmt, $topic_id, $topic_name);
/* haal het eerste record op: */
while(mysqli_stmt_fetch($stmt)){
mysqli_stmt_bind_param($stmt2, "s", $topic_name);
mysqli_stmt_execute($stmt2);
mysqli_bind_result($stmt2, $time, $user);
mysqli_stmt_fetch($stmt2);
$result1["topic_id"]=$topic_id;
$result1["topic_name"]=$topic_name;
$result2["time"] = $time;
$result2["user"] = $user;
print $topic_id;
print $topic_name;
print $time;
print $user;
}
/* sluit de statement af: */
//}
mysqli_stmt_close($stmt);
/* sluit de database-verbinding */
mysqli_close($link);
?>
alvast bedankt
Jonas
Er zijn nog geen reacties op dit bericht.