een while () loop tellen....

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark

Mark

27/04/2009 22:33:00
Quote Anchor link
Goedenavonden allemaal,

Ik ben bezig een zoekfunctie in te bouwen op een website voor iemand, dat werkt allemaal prima met onderstaande code alleen nu wil ik graag laten weergeven hoeveel resultaten er gevonden zijn...
Hoe tel ik de while() loop??

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
<?
    //-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
    if (!@mysql_select_db("databasenaam", @mysql_connect("localhost", "gebruikersnaam", "wachtwoord")))
    {

        echo "Er kan geen database connectie gemaakt worden.";
        exit();
    }


    //-- $HTTP_POST_VARS[zoekterm] is de naam van het zoekveld in het formulier wat we
    //-- hebben gemaakt in het vorige 'hoofdstuk'. Dit is dus de SQL code:

    $sql = "SELECT id,content FROM vprod_content WHERE content LIKE '%$HTTP_POST_VARS[zoekterm]%'";
    
    //-- voer de SQL code uit en zet dit in een variabele zodat we zometeen kunnen
    //-- kijken of er een resultaat is

    $res = mysql_query($sql);
    
    //-- bekijk nu of er een resultaat is, of het zoekwoord dus gevonden is of niet
    if (mysql_num_rows($res) >= 1)
    {

    
    //-- Het aantal resultaten tellen:
        $aantal= count("$row");
    
            echo "<p>Aantal gevonden resultaten: <b> $aantal</b></p><br>";

        
        //-- er is een resultaat gevonden, toon de resultaten via een while () loop
        while ($row = mysql_fetch_array($res))
        {

            echo "<p>Gevonden pagina: <b><a href=\"index.php?id=$row[id]\">$row[id]</a></p></b>";
            echo "Gevonden in deze tekst: <b>$row[content]</b></p><br><br>";
        }

        
        echo "<a href=\"index.php?id=zoeken\" title=\"zoek opnieuw\">zoek opnieuw</a>";
    }

    //-- als er geen resultaat is gevonden, dus als het zoekwoord niet gevonden is:
    else
    {
        echo "<p>Er is niets gevonden op uw zoekterm:<b> $HTTP_POST_VARS[zoekterm]</b></p>";
        
        echo "<p><a href=\"index.php?id=zoeken\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
    }

?>
Gewijzigd op 01/01/1970 01:00:00 door Mark
 
PHP hulp

PHP hulp

19/11/2024 21:40:35
 
Mark

Mark

27/04/2009 22:34:00
Quote Anchor link
ok, ik weet niet waarom hij het 2x weergeeft, en krijg het ook niet weg. excuus
 
Mark

Mark

27/04/2009 22:41:00
Quote Anchor link
ok iemand heeft voor me oplossing gevonden maar het direct gezegd, ik zal ff de oplossing hier plaatsen.

ik laat nu het aantal resultaten vinden door:
[linebreak]$aantal = mysql_num_rows($res);[linebreak]
 
Pieter van Linschoten

Pieter van Linschoten

27/04/2009 22:49:00
Quote Anchor link
1.)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
mysql_num_rows($res);
?>

Dit geeft het aantal gevonden rijen die matchen met je query.

2.) Zoeken met %LIKE% is niet de beste manier om te zoeken, als je in grotere stukken tekst wilt zoeken.
Ga eens opzoek naar FULLTEXT search.

3.) $HTTP_POST_VARS[zoekterm]..

Welkom in de 20e eeuw. Tegenwoordig gebruiken we $_POST ipv HTTP_POST_VARS. Nieuwe servers zijn waarschijnlijk niet eens meer compateble met je scriptje.

4.) Verder is het niet echt veilig, de variabelen worden rechtstreeks in de QUERY te zetten.
Zodra iemand ook maar een ' in je zoekstring gooit, gaat het op z'n gat, laat staan als iemand met kwade bedoelingen dit script gebruikt.
Kijk eens naar SQL Injection

5.) Variabelen halen we buiten de quotes. Dus
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
echo "Ik ben een $variable binnen haakjes";
#wordt dan
echo "en ik ben een ".$variabele." buiten haakjes";
?>

Zeg nou zelf, wat is duidelijker als je een stukje script aan het doorspitten bent, naar fouten?

6.) Het is niet netjes om een array waarde (bv $_POST['lala']) aan te roepen als $_POST[lala] (dus zonder haakjes). Dit kan als gevolg hebben dat PHP je input 'lala' als CONSTANTE herkent, en dus niet de variabele aanroept, die je zou willen.
Gewijzigd op 01/01/1970 01:00:00 door Pieter van Linschoten
 
- SanThe -

- SanThe -

28/04/2009 00:15:00
Quote Anchor link
Mark schreef op 27.04.2009 22:34:
ok, ik weet niet waarom hij het 2x weergeeft, en krijg het ook niet weg. excuus


Pas je post even aan en gebruik de Afbeelding knop om dit te doen.

Gelieve 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.
 
Mark

Mark

28/04/2009 00:32:00
Quote Anchor link
I know i know....
Maar ik krijg die 2x niet weg omdat ik die niet zie staan als ik op het wijzig icoontje klik
 
- SanThe -

- SanThe -

28/04/2009 01:09:00
Quote Anchor link
Jij had [php] gebruikt in plaats van . Hoe het komt dat het dan twee keer wordt weergegeven is mij ook een raadsel.
 



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.