zoekfunctie in MYSQLI
Ik heb deze zoekfunctie overgenomen:
https://www.phphulp.nl/php/tutorial/overig/zoeken-in-mysql-tabel/100/tonen-van-het-resultaat-in-php/174/
die heb ik veranderd in MYSQLI (i.p.v MYSQL ) , alleen krijg ik in de MYSQLI versie geen resultaat terug.
////////////////////////////// MYSQL /////////////////////////////
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
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
<?php
if (!@mysql_select_db("test", @mysql_connect("localhost", "test", "x")))
{
echo "Er kan geen database connectie gemaakt worden.";
exit();
}
$sql = "SELECT * FROM me_events WHERE title LIKE '%" . mysql_real_escape_string($_POST['zoekterm']) . "%'";
$res = mysql_query($sql);
if (mysql_num_rows($res) >= 1)
{
while ($row = mysql_fetch_array($res))
{
echo '<p>Resultaat dat: <b>' . $row['id'] . '</b><br>';
echo 'Resultaat tekst: <b>' . htmlspecialchars($row['title']) . '</b></p>';
}
echo '<a href="zoek.php" title="zoek opnieuw">zoek opnieuw</a>';
}
else
{
echo '<p>Er is niets gevonden op jou zoekterm: <b>' . $_POST['zoekterm'] . '</b></p>';
echo '<p><a href="zoek.php" title="zoek opnieuw">zoek opnieuw</a></p>';
}
?>
////////////////////////////// MYSQLI /////////////////////////////
<?php
echo "Welcome ". $_POST['zoekterm']. "<br />";
$query = $mysqli->query("SELECT * FROM me_events WHERE title LIKE '%" . mysqli_real_escape_string($_POST['zoekterm']) . "%'");
$res = mysqli_query($query);
if (mysqli_num_rows($res) >= 1)
{
while ($row = mysqli_fetch_array($res))
{
echo '<p>Resultaat id: <b>' . $row['id'] . '</b><br>';
echo 'Resultaat tekst: <b>' . htmlspecialchars($row['title']) . '</b></p>';
}
echo '<a href="zoek-form.php" title="zoek opnieuw">zoek opnieuw</a>';
}
else
{
echo '<p>Er is niets gevonden op jou zoekterm: <b>' . $_POST['zoekterm'] . '</b></p>';
echo '<p><a href="zoek-form.php" title="zoek opnieuw">zoek opnieuw</a></p>';
}
?>
Gewijzigd op 27/11/2016 18:13:06 door Pierre Web
Zet error reporting aan.
Van mysql naar mysql is meer dan alleen een i toevoegen.
Of je gebruikt procedureel, met mysqli_query (..)
Of je gebruikt OOP (Object Oriënted) met $mysqli->query (...)
Maar beiden doorelkaar is vragen om problemen.
Obelix en Idefix op 27/11/2016 18:37:52:
Haal die @ er uit; geen foutmeldingen onderdrukken.
Zet error reporting aan.
Van mysql naar mysql is meer dan alleen een i toevoegen.
Zet error reporting aan.
Van mysql naar mysql is meer dan alleen een i toevoegen.
Die staat erin geeft geen melding
Code (php)
1
2
3
2
3
Zie mijn post ^
En dan een query tussen quotes.
Kortom: Een rommeltje! Ik zal zodra ik thuis ben ook je UBBcodes in je post even fatsoeneren.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$query = $mysqli->query("SELECT *,
FROM me_events WHERE title LIKE '%" . mysqli_real_escape_string($_POST['zoekterm']) . "%'");
$res = "mysqli->query($query)";
if ($result = $mysqli->query(($res) >= 1))
{
while ($row = $result->fetch_object()){
echo...
FROM me_events WHERE title LIKE '%" . mysqli_real_escape_string($_POST['zoekterm']) . "%'");
$res = "mysqli->query($query)";
if ($result = $mysqli->query(($res) >= 1))
{
while ($row = $result->fetch_object()){
echo...
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in ...zoek-resultaat.php on line 8
Warning: mysqli::query(): Empty query in ....zoek-resultaat.php on line 15
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$res = $mysqli->query("SELECT *,
FROM me_events WHERE title LIKE '%" . $mysqli->real_escape_string($_POST['zoekterm']) . "%'");
if ($mysqli->num_rows(($res) >= 1))
{
while ($row = $result->fetch_object()){
echo...
FROM me_events WHERE title LIKE '%" . $mysqli->real_escape_string($_POST['zoekterm']) . "%'");
if ($mysqli->num_rows(($res) >= 1))
{
while ($row = $result->fetch_object()){
echo...
Dit is een stuk beter!
Pierre Web op 27/11/2016 20:21:01:
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in ...zoek-resultaat.php on line 8
Obelix en Idefix op 27/11/2016 18:37:52:
Van mysql naar mysql is meer dan alleen een i toevoegen.
Al opgezocht hoe de syntax is van mysqli_real_escape_string is?
Kijk bv. eens op https://stackoverflow.com/questions/25636975/warning-mysqli-real-escape-string-expects-exactly-2-parameters-1-given-wh (even zoeken met Google op je foutmelding).
Quote:
Maar beiden doorelkaar is vragen om problemen.
Strikt genomen maakt dit niet uit, MySQLi werkt enkel met objecten. Of dit verstandig is is een tweede.
Lijn 34 is gewoon fout, de topicstarter probeert hier (opnieuw) een query uit te voeren met een mysqli_result object (of false, afhankelijk van het slagen van de query op regel 32).