zoek functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas

Bas

30/01/2009 15:35:00
Quote Anchor link
ik probeer een zoekfunctie te maken voor een forum, maar hij werkt niet

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

if(isset($_POST['submit'])){
    if($_POST['in'] = 'all'){
        $sql = "SELECT titel,bericht FROM topics WHERE titel = '".$_POST['zoek']."'";
        $query = mysql_query($sql);
        $sql2 = "SELECT titel,bericht FROM topics WHERE bericht = '".$_POST['zoek']."'";
        $query2 = mysql_query($sql2);
        $rij = mysql_fetch_object($query);
        $rij2 = mysql_fetch_object($query2);
        if((mysql_num_rows($query) > 0) && (mysql_num_rows($query2) > 0)){
            echo 'Lukt';
        }
else{
            echo 'Niks gevonden <a href="zoek.php">Terug</a>';
        }
    }
else{
        if($_POST['in'] = 'titel'){
            $sql = "SELECT titel,bericht FROM topics WHERE titel = '".$_POST['zoek']."'";
            $query = mysql_query($sql);
            if(mysql_num_rows($query) > 0){
                echo 'Lukt';
            }
else{
                echo 'Niks gevonden <a href="zoek.php">Terug</a>';
            }
        }
else{
            if($_POST['in'] = 'bericht'){
                $sql2 = "SELECT titel,bericht FROM topics WHERE bericht = '".$_POST['zoek']."'";
                $query2 = mysql_query($sql2);
                if(mysql_num_rows($query2) > 0){
                    echo 'Lukt';
                }
else{
                    echo 'Niks gevonden <a href="zoek.php">Terug</a>';
                }
            }
else{ echo '<a herf="zoek.php">Terug</a>'; }
        }
    }
}
else{
?>

   <form method="post" action="zoek.php">
    <table>
     <tr>
      <td>Zoeken in: </td><td><select name="in"><option value="all" selected>In titel en bericht</option><option value="titel">Alleen in titel</option><option value="bericht">Alleen in bericht</option></select></td>
     </tr>
     <tr>
      <td>Zoeken naar: </td><td><input type="text" name="zoek" /></td>
     </tr>
     <tr>
      <td></td><td><input type="submit" name="submit" value="Zoek" /></td>
     </tr>
    </table>
   </form>
<?
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Bas
 
PHP hulp

PHP hulp

29/03/2024 07:20:08
 
Tamara

Tamara

30/01/2009 15:58:00
Quote Anchor link
wat doet het dan precies niet?

geeft hij foutmeldingen? probeer het probleem specifieker aan te gevn!
 
Bas

Bas

30/01/2009 15:59:00
Quote Anchor link
ik voer gwn iets in in het formulier en wat ik ook invul hij zegt elke keer "Niks gevonden"
 
Rens nvt

Rens nvt

30/01/2009 16:43:00
Quote Anchor link
Ik zou beginnen met foutafhandeling in je queries, en onderstaande bovenaan je script zetten:

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);
?>


Verder is het een beetje onzin om queries af te vuren om te zoeken op bericht en / of titel, kan ook in 1 query. Ook zoek je nu op een exacte match. Lijkt me stug dat je bij een zoekfunctie het volledige bericht in moet voeren om iets te vinden. Kijk eens naar de mysql methode LIKE
 
Bas

Bas

30/01/2009 16:51:00
Quote Anchor link
dat staat in de config.php

hoe dan???
Gewijzigd op 01/01/1970 01:00:00 door Bas
 
Erik Rijk

Erik Rijk

30/01/2009 16:59:00
Quote Anchor link
Wat voer je in?
Want je doet nu een controle die exact overeen moet komen.

Als er een titel: "lord of the rings" is en jij zoekt op: " lord" dan verbaast het me niks dat je niks vind...

hmm, ik was te lui om het volledige bericht van Jens te lezen, maar indd... gebruik LIKE

als in: WHERE naam LIKE '%titel%'
Gewijzigd op 01/01/1970 01:00:00 door Erik Rijk
 
Bas

Bas

30/01/2009 17:02:00
Quote Anchor link
ok ik zal het proberen

Edit:

ik heb nu dit:

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

if(isset($_POST['submit'])){
    if($_POST['in'] = 'all'){
        $sql = "SELECT titel,bericht FROM topics WHERE titel LIKE '".$_POST['zoek']."'";
        $query = mysql_query($sql);
        $sql2 = "SELECT titel,bericht FROM topics WHERE bericht LIKE '".$_POST['zoek']."'";
        $query2 = mysql_query($sql2);
        $rij = mysql_fetch_object($query);
        $rij2 = mysql_fetch_object($query2);
        if((mysql_num_rows($query) > 0) && (mysql_num_rows($query2) > 0)){
            echo 'Lukt';
        }
else{
            echo 'Niks gevonden <a href="zoek.php">Terug</a>';
        }
    }
else{
        if($_POST['in'] = 'titel'){
            $sql = "SELECT titel,bericht FROM topics WHERE titel LIKE '".$_POST['zoek']."'";
            $query = mysql_query($sql);
            if(mysql_num_rows($query) > 0){
                echo 'Lukt';
            }
else{
                echo 'Niks gevonden <a href="zoek.php">Terug</a>';
            }
        }
else{
            if($_POST['in'] = 'bericht'){
                $sql2 = "SELECT titel,bericht FROM topics WHERE bericht LIKE '".$_POST['zoek']."'";
                $query2 = mysql_query($sql2);
                if(mysql_num_rows($query2) > 0){
                    echo 'Lukt';
                }
else{
                    echo 'Niks gevonden <a href="zoek.php">Terug</a>';
                }
            }
else{ echo '<a herf="zoek.php">Terug</a>'; }
        }
    }
}
else{
?>

   <form method="post" action="zoek.php">
    <table>
     <tr>
      <td>Zoeken in: </td><td><select name="in"><option value="all" selected>In titel en bericht</option><option value="titel">Alleen in titel</option><option value="bericht">Alleen in bericht</option></select></td>
     </tr>
     <tr>
      <td>Zoeken naar: </td><td><input type="text" name="zoek" /></td>
     </tr>
     <tr>
      <td></td><td><input type="submit" name="submit" value="Zoek" /></td>
     </tr>
    </table>
   </form>
<?
}
?>

maar het wekrt nog niet
Gewijzigd op 01/01/1970 01:00:00 door Bas
 
Erik Rijk

Erik Rijk

30/01/2009 17:06:00
Quote Anchor link
Lees mn edit nog even ;)
 
Bas

Bas

30/01/2009 17:07:00
Quote Anchor link
wat dan?
 
Erik Rijk

Erik Rijk

30/01/2009 17:10:00
Quote Anchor link
Kijk eens naar je LIKE... ik doel dan op het procent % teken..
Ga eens naar google en tik eens in: sql LIKE...

Beetje moeite doen kan geen kwaad :)
 
Bas

Bas

30/01/2009 17:12:00
Quote Anchor link
hey tanx man, nu werkt het
 
Bas

Bas

30/01/2009 17:31:00
Quote Anchor link
hoe laat ik hem nu testen of hij niet dubbel een topic er neer zet

dus als ik in vul

Zoeken in : titel en bericht
Zoeken naar : New

en dan heb ik een bericht (zelf geplaatst)
met als titel : New
en met als bericht ook : New

als ik dan op zoek klik komt er :
Topic :
New door bas
New door bas

dus 2 keer
hoe voorkom ik dat

Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Bas
 
Bas

Bas

30/01/2009 17:46:00
Quote Anchor link
laat maar ik heb het al
 
Bas

Bas

30/01/2009 17:58:00
Quote Anchor link
laat maar ik heb het al
 
Jesper Diovo

Jesper Diovo

30/01/2009 18:00:00
Quote Anchor link
Lekker joh, 4x achter elkaar bumpen... Post je oplossing ook even voor mensen die in de toekomst misschien hier mee te maken gaan krijgen :-).
 



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.