zoekfunctie in MYSQLI

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pierre Web

Pierre Web

27/11/2016 18:11:32
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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
  

<?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
 
PHP hulp

PHP hulp

29/04/2024 11:40:01
 
Obelix Idefix

Obelix Idefix

27/11/2016 18:37:52
Quote Anchor link
Haal die @ er uit; geen foutmeldingen onderdrukken.
Zet error reporting aan.
Van mysql naar mysql is meer dan alleen een i toevoegen.
 
- Ariën  -
Beheerder

- Ariën -

27/11/2016 18:50:13
Quote Anchor link
Lijn 32/34 kloppen ook niet.

Of je gebruikt procedureel, met mysqli_query (..)
Of je gebruikt OOP (Object Oriënted) met $mysqli->query (...)

Maar beiden doorelkaar is vragen om problemen.
 
Pierre Web

Pierre Web

27/11/2016 19:33:25
Quote Anchor link
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.



Die staat erin geeft geen melding
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php error_reporting( E_ALL ); ?>

Haal die @ er uit; geen foutmeldingen onderdrukken. ?
 
- Ariën  -
Beheerder

- Ariën -

27/11/2016 19:34:14
Quote Anchor link
Zie mijn post ^
 
Pierre Web

Pierre Web

27/11/2016 19:35:35
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
   <?php $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)  // A
    {
        while ($row = mysqli_fetch_array($res)) //B
        { ?>


Dan zal nu A en B nog niet goed zijn.
Gewijzigd op 27/11/2016 23:50:32 door - Ariën -
 
- Ariën  -
Beheerder

- Ariën -

27/11/2016 20:01:28
Quote Anchor link
Er klopt weinig van. Je maakt een query en die gooi je in een andere querie? En ook nog steeds procedurele code gemengd met OOP code.
En dan een query tussen quotes.

Kortom: Een rommeltje! Ik zal zodra ik thuis ben ook je UBBcodes in je post even fatsoeneren.
 
Pierre Web

Pierre Web

27/11/2016 20:21:01
Quote Anchor link
Sorry ik heb nu

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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...


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
 
- Ariën  -
Beheerder

- Ariën -

27/11/2016 20:38:50
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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...

Dit is een stuk beter!
 
Obelix Idefix

Obelix Idefix

27/11/2016 20:54:09
Quote Anchor link
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).
 
Thomas van den Heuvel

Thomas van den Heuvel

28/11/2016 14:51:05
Quote Anchor link
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).
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.