zoeken in een database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Rein Broekman

rein Broekman

15/12/2006 21:02:00
Quote Anchor link
kan iemand mij vertellen waarom ik deze foutmeldingen krijg.
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /nfsn/content/mldn/htdocs/zoeken.php on line 40

Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /nfsn/content/mldn/htdocs/zoeken.php on line 41

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /nfsn/content/mldn/htdocs/zoeken.php on line 42

als ik dit script op mijn site set om de database te doorzoeken.
en wat ik moet veranderen
bvd

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
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
// Variabele voor de ingevoerde zoekterm:
$trefwoord = "";
// Variabele voor titel van de webpagina:
$paginatitel = "Zoeken";
// Variabele voor (fout)meldingen:
$melding = "<p>Typ een trefwoord in het invoervak en klik op de knop Zoeken.</p>";

// Ordernummer doorgeven als sessie-id (sid) in URL's:
if (isset($_GET['sid'])) {
    $url1 = "?sid=" . $_GET['sid'];
    $url2 = "&amp;sid=" . $_GET['sid'];
}
else {
    $url1 = "";
    $url2 = "";
}


if (isset($_GET['q'])) {
    $trefwoord = $_GET['q'];             // Trefwoord uit het vak 'q'
    $trefwoord = strip_tags($trefwoord); // Tags en code verwijderen
    $trefwoord = trim($trefwoord);       // Witruimte verwijderen
    // Zoeken alleen starten als er een trefwoord is ingevoerd:

    if (strlen($trefwoord) > 1) {
        // MySQL-selectiequery met reguliere expressies:
        $sql  = 'SELECT `ean`, `naam`, `omschrijving` ';
        $sql .= 'FROM `producten` ';
        $sql .= 'WHERE `naam` REGEXP "' . $trefwoord . '" ';
        $sql .= 'OR `omschrijving` REGEXP "' . $trefwoord . '" ';
        $sql .= 'OR `details` REGEXP "' . $trefwoord . '" ';
        $sql .= 'ORDER BY `prijs` DESC ';
        // Databaseverbinding openen en query uitvoeren:
        include "databaseinloggen.php";
        /*define("MYSQL_SERVER", "localhost");
        define("MYSQL_GEBRUIKERSNAAM", "root");
        define("MYSQL_WACHTWOORD", "");
        $verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
        mysql_select_db("test") or die(mysql_error());
        $resultaat = mysql_query($sql) or die(mysql_error());
        */// Is er een record gevonden?

        if (mysql_num_rows($resultaat) < 1) {
            mysql_free_result($resultaat); // Resultaatset vrijgeven
            mysql_close($verbinding);      // Databaseverbinding sluiten
            $melding = "<p>Er zijn geen resultaten gevonden voor " . $trefwoord . ".</p>";
        }
else {
            $paginatitel = "Zoekresultaten voor " . $trefwoord;
            $melding  = "<p>Er zijn ";
            $melding .= mysql_num_rows($resultaat);
            $melding .= " resultaten gevonden voor " . $trefwoord . ":</p>\n";
            // Begin van een genummerde opsomming:
            $melding .= "<ol>";
            // De gevonden producten toevoegen aan de melding:
            while ($rij = mysql_fetch_assoc($resultaat)) {
                $melding .= '<li><strong><a href="product.php?ean=';
                // Primaire sleutel van het product:
                $melding .= $rij["ean"];
                $melding .= $url2;
                $melding .= '">';
                // Naam van het product:
                $melding .= $rij["naam"];
                $melding .= '</a></strong><br>';
                // Omschrijving van het product:
                $melding .= $rij["omschrijving"];
                $melding .= "</li>\n";
            }

            // Resultaatset vrijgeven en databaseverbinding sluiten:
            mysql_free_result($resultaat);
            mysql_close($verbinding);
            // Einde van de genummerde opsomming:
            $melding .= "</ol>\n";
            // Trefwoord opvallend markeren in de resultaten:
            $melding = eregi_replace($trefwoord, '<strong class="iv">' . $trefwoord . '</strong>', $melding);
        }
    }
}


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php echo $paginatitel; ?></title>
<link href="p.css" media="print" rel="stylesheet" type="text/css">
<link href="xp.css" media="screen" rel="stylesheet" type="text/css">
</head>
<body lang="nl">

<form action="zoeken.php<?php echo $url1; ?>" method="get">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td align="right"><input name="q" size="55" value="<?php echo $trefwoord; ?>"></td>
      <td align="left">
<?php
// Eventueel ordernummer doorgeven als verborgen formulierveld:
if (isset($_GET['sid'])) {
    echo '<input name="sid" type="hidden" value="' . $_GET['sid'] . '">';
}

?>

        <input style="width: 75px; height: 23px;" type="submit" value="Zoeken">
      </td>
    </tr>
  </table>
</form>
Gewijzigd op 01/01/1970 01:00:00 door Rein Broekman
 
PHP hulp

PHP hulp

17/01/2022 01:11:28
 
Niek s

niek s

15/12/2006 21:08:00
Quote Anchor link
Omdat $resultaat niet is geset!

Je moet wel $resultaat een waarde geven...
 
Rein Broekman

rein Broekman

15/12/2006 21:09:00
Quote Anchor link
kun je me een eindje op weg helpen hoe ik dat ga doen
 
Jan Koehoorn

Jan Koehoorn

15/12/2006 21:14:00
Quote Anchor link
Je begint elk script met:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
    ini_set ('display_errors', 1);
    error_reporting (E_ALL);
?>

dan kijken wat voor errors en notices je krijgt.
 
Niek s

niek s

15/12/2006 21:16:00
Quote Anchor link
rein, zo te zien heb je dat ook wel gedaan, maar is het nu commentaar geworden.
Probeer dit eens:
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
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<?php
// Variabele voor de ingevoerde zoekterm:
$trefwoord = "";
// Variabele voor titel van de webpagina:
$paginatitel = "Zoeken";
// Variabele voor (fout)meldingen:
$melding = "<p>Typ een trefwoord in het invoervak en klik op de knop Zoeken.</p>";

// Ordernummer doorgeven als sessie-id (sid) in URL's:
if (isset($_GET['sid'])) {
    $url1 = "?sid=" . $_GET['sid'];
    $url2 = "&amp;sid=" . $_GET['sid'];
}
else {
    $url1 = "";
    $url2 = "";
}


if (isset($_GET['q'])) {
    $trefwoord = $_GET['q'];             // Trefwoord uit het vak 'q'
    $trefwoord = strip_tags($trefwoord); // Tags en code verwijderen
    $trefwoord = trim($trefwoord);       // Witruimte verwijderen
    // Zoeken alleen starten als er een trefwoord is ingevoerd:

    if (strlen($trefwoord) > 1) {
        // MySQL-selectiequery met reguliere expressies:
        $sql  = 'SELECT `ean`, `naam`, `omschrijving` ';
        $sql .= 'FROM `producten` ';
        $sql .= 'WHERE `naam` REGEXP "' . $trefwoord . '" ';
        $sql .= 'OR `omschrijving` REGEXP "' . $trefwoord . '" ';
        $sql .= 'OR `details` REGEXP "' . $trefwoord . '" ';
        $sql .= 'ORDER BY `prijs` DESC ';
        // Databaseverbinding openen en query uitvoeren:
        include "databaseinloggen.php";
        define("MYSQL_SERVER", "localhost");
        define("MYSQL_GEBRUIKERSNAAM", "root");
        define("MYSQL_WACHTWOORD", "");
        $verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
        mysql_select_db("test") or die(mysql_error());
        $resultaat = mysql_query($sql) or die(mysql_error());
        // Is er een record gevonden?
        if (mysql_num_rows($resultaat) < 1) {
            mysql_free_result($resultaat); // Resultaatset vrijgeven
            mysql_close($verbinding);      // Databaseverbinding sluiten
            $melding = "<p>Er zijn geen resultaten gevonden voor " . $trefwoord . ".</p>";
        }
else {
            $paginatitel = "Zoekresultaten voor " . $trefwoord;
            $melding  = "<p>Er zijn ";
            $melding .= mysql_num_rows($resultaat);
            $melding .= " resultaten gevonden voor " . $trefwoord . ":</p>\n";
            // Begin van een genummerde opsomming:
            $melding .= "<ol>";
            // De gevonden producten toevoegen aan de melding:
            while ($rij = mysql_fetch_assoc($resultaat)) {
                $melding .= '<li><strong><a href="product.php?ean=';
                // Primaire sleutel van het product:
                $melding .= $rij["ean"];
                $melding .= $url2;
                $melding .= '">';
                // Naam van het product:
                $melding .= $rij["naam"];
                $melding .= '</a></strong><br>';
                // Omschrijving van het product:
                $melding .= $rij["omschrijving"];
                $melding .= "</li>\n";
            }

            // Resultaatset vrijgeven en databaseverbinding sluiten:
            mysql_free_result($resultaat);
            mysql_close($verbinding);
            // Einde van de genummerde opsomming:
            $melding .= "</ol>\n";
            // Trefwoord opvallend markeren in de resultaten:
            $melding = eregi_replace($trefwoord, '<strong class="iv">' . $trefwoord . '</strong>', $melding);
        }
    }
}


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title><?php echo $paginatitel; ?></title>
<link href="p.css" media="print" rel="stylesheet" type="text/css">
<link href="xp.css" media="screen" rel="stylesheet" type="text/css">
</head>
<body lang="nl">

<form action="zoeken.php<?php echo $url1; ?>" method="get">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td align="right"><input name="q" size="55" value="<?php echo $trefwoord; ?>"></td>
      <td align="left">
<?php
// Eventueel ordernummer doorgeven als verborgen formulierveld:
if (isset($_GET['sid'])) {
    echo '<input name="sid" type="hidden" value="' . $_GET['sid'] . '">';
}

?>

        <input style="width: 75px; height: 23px;" type="submit" value="Zoeken">
      </td>
    </tr>
  </table>
</form>
Gewijzigd op 01/01/1970 01:00:00 door niek s
 
Rein Broekman

rein Broekman

15/12/2006 21:29:00
Quote Anchor link
OK ik wilde slim zijn en mijn database gegevens include maar miste de check
dus nu heb ik geen foutmelding meer.
maar hij laat ook geen resultaat zien.
alleen weer het invoerveld met wat ik ingevoerd heb en de knop zoeken weer.
 
Rein Broekman

rein Broekman

15/12/2006 21:33:00
Quote Anchor link
ok sorry was wat gehaast moest nog even een echo erbij zetten hij laat nu resultaat zien dus kan ik weer even verder.
mijn dank is groot
 



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.