Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[HTML ] + [PHP] aanroepen zoekformulier

Pagina: 1
Acties:
  • 51 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een probleem met het aanroepen van een zoek formulier op http://www.spelletjesrij.nl/
Wanneer ik een zoekopdracht invul, krijg ik altijd alle resultaten te zien. Nu gebruik ik op mijn andere site dezelfde php code in zoeken.php en daar gaat het wel goed: (http://www.spelstaat.nl/zoeken.php?zoek= (zoekform link onderaan)

Deze code gebruik ik om op spelletjesrij zoeken.php aan te roepen
PHP:
1
2
3
4
<form method="get" action="http://www.spelletjesrij.nl/zoeken.php" name="zoeken">
 <img src="http://www.spelletjesrij.nl/images/go.png" alt="Zoeken!" onclick="document.zoeken.submit();" onmouseover="this.style.cursor='pointer';"/>
 <input type="text" name="zoeken" value="zoeken" />
</form>


Deze code gebruik ik om op spelstaat zoeken.php aan te roepen:
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
 
<?php
include("config.php");

//<--paging
    $iSpellenPerPagina = 34; #het aantal spellen per pagina
    #------------------------------------------------------
    $currentPage = 0;
    if(isset($_GET['page'])){$currentPage = $_GET['page'] - 1;}
    $query = mysql_query("SELECT mg.game_id FROM module_games mg, module_games_cat mgc WHERE mgc.cat_id = mg.cat_id AND titel LIKE '%" . add_slashes($_GET['zoek']) . "%'");
    
    $counted = mysql_num_rows($query);
    $maxPage = ceil($counted / $iSpellenPerPagina);
    if($currentPage < 0){$currentPage = 0;}
    if($currentPage > $maxPage){$currentPage = $maxPage;}
    $limit = ($currentPage) * $iSpellenPerPagina;
    if($currentPage > 0){$tijdelijk = $currentPage;$plot .= ' | <a href="./zoeken.php?zoek='.$_GET['zoek'].'&page=1"><font color=#FFFFFF>««</font></a> | <a href="./zoeken.php?zoek='.$_GET['zoek'].'&page='.$tijdelijk.'"><font color=#FFFFFF>«</font></a>';}
    for($i = 0; $i < $maxPage; $i++)
    {
        $plot .= ' | ';
        if($i == $currentPage){$plot.='<font size=3>';}
        $plot .= '<a href="./zoeken.php?zoek='.$_GET['zoek'].'&page='.($i + 1).'"><font color=#FFFFFF>'.($i + 1).'</font></a>';
        if($i == $currentPage){$plot.='</font>';}
    }
    if($currentPage < $maxPage){$tijdelijk = $currentPage + 1;$plot .= ' | <a href="./zoeken.php?zoek='.$_GET['zoek'].'&page='.$tijdelijk.'"><font color=#FFFFFF>»</font></a> | <a href="./zoeken.php?zoek='.$_GET['zoek'].'&page='.$maxPage.'"><font color=#FFFFFF>»»</font></a>';}
    $plot .= ' | ';
//-->paging

$query = "SELECT mg.game_id, mgc.categorie, mg.titel, mg.views, mg.rating, mg.thumb FROM module_games mg, module_games_cat mgc WHERE mgc.cat_id = mg.cat_id AND titel LIKE '%" . add_slashes($_GET['zoek']) . "%'  LIMIT $limit, $iSpellenPerPagina";
if($result = mysql_query($query))
{
    while($row = mysql_fetch_assoc($result))
    {
            print '<div class="game licht">';
            print '<a href="http://www.spelletjesrij.nl/spelen/' . str_replace(' ', '_', $row['categorie']) . '/' . $row['game_id'] . '_' . str_replace(' ', '_', $row['titel']) . '.html">';
            if(empty($row['thumb']))
            {
                print '<img width="90" height="60" src="http://www.spelstaat.nl/thumbs/leeg.jpg" alt="" />';
            }
            else
            {
                print '<img width="90" height="60" src="http://www.spelstaat.nl/thumbs/'.$row['thumb'].'" alt="" />';
            }
                                                                            
            print '';
            print '<p>';
            print '<b>Naam: </b>' . $row['titel'] . '<br /></a>';
            print '<b>Categorie: </b>' . $row['categorie'] . '<br />';
            print '<b>Gespeeld: </b>' . $row['views'] . '<br />';
            print '<b>Score: </b>' . round($row['rating'] * 10) / 10;
            print '</p>';
            print '</div>';
            
            
            
            
        }
        print '';
    }
    else
    {
        databaseError(mysql_error() . " : " . $query);
    }   
    ?>
    <br /><br />
                    <center><b><?echo $plot;?></b></center> <br />


iemand enig idee waar het fout gaat?

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Als je alle rows terugkrijgt, is de logische stap dat je de uitgevoerde query bekijkt. Dus altijd de uitgevoerde query inspecteren in zo'n geval.

In dit geval zal $_GET['zoek'] wel niet geset zijn, waardoor je zoekt op '%%' en daar matcht alles mee.

{signature}


  • Psychokiller
  • Registratie: Oktober 2001
  • Niet online
Je hebt
PHP:
1
<input type="text" name="zoeken" value="zoeken" />

en je doet:
PHP:
1
LIKE '%" . add_slashes($_GET['zoek']) . "%'


Lijkt me vrij basic iets waar je wel achter had kunnen komen in de tijd dat je het topic had gemaakt ;)

Verwijderd

Topicstarter
8)7 8)7 8)7 8)7

hele diepe zucht hier..... bedankt

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 30-11 15:10

Creepy

Tactical Espionage Splatterer

Oftewel: zelf debuggen :)
We gaan er eigenlijk ook vanuit dat je dat in eerse instantie probeert en dat je ook aangeeft in je startpost wat je nu hebt geprobeerd. Dit laat je nu totaal achterwege. Nu dump je wat code en vraag je aan ons om je code te gaan debuggen en dat is hier niet de bedoeling. Het is hier geen helpdesk maar een discussie forum. Lees voor een volgende keer aub Programming Beleid eens door en let dan met name op Programming Beleid - De Quickstart zodat je weet wat we hier eigenlijk van je verwachten voordat je een topic opent en zodat je weet welke informatie we graag terug willen zien.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Dit topic is gesloten.