In databas zoeken.

Overzicht

Sponsored by: Vacatures door Monsterboard

22/01/2011 20:28:12
Anchor link
Ik wil een databasezoekscript:
voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
blabla
<form id="Zoeken" name="Zoeken" method="post" action="zoekendatabase?zoek">
  <
label for="Zoeken">Zoeken</label>
  <
input type="text" name="Zoeken" id="Zoeken" />
<
/form>
blabla
<hr />
show=&result
?>


Weet dit is een gamel voorbeeld maar hoop dat jullie misschien weten waar ik een databasezoekscript.
 
PHP hulp

PHP hulp

28/04/2024 16:13:06
 
Niels K

Niels K

22/01/2011 20:30:13
Anchor link
- Full Text Search?
- Like search?

Kortom geeef eens wat meer informatie als je wilt?
 
Joren de Wit

Joren de Wit

22/01/2011 20:45:35
Anchor link
Het zoeken in een database is eigenlijk niet meer dan het opstellen van de juiste query die je door de database wilt laten uitvoeren. Daar zul je dus moeten beginnen en dan komt het formulier dat je wilt gebruiken later wel...
 

23/01/2011 14:46:04
Anchor link
Zo goed?

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
  <?php
  $sql
= '  SELECT * FROM `members` LIKE `$trefwoord");
'
;
  ?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="">
  <label for="Zoeken">Zoeken</label>:
  <input name="Zoeken" type="text" id="Zoeken" value="<?php echo $trefwoord; ?>" size="28" />
  <input type="submit" name="Verzend" id="Verzend" value="Verzend" />
  <?php
  $sql
= '  SELECT * FROM `members` LIKE `$trefwoord");
'
;
  ?>

</form>
</body>
</html>


Gebruik [code][/code] tags voor het overzichtelijk weergeven van code. Zie ook de FAQ.[/modedit]
Gewijzigd op 23/01/2011 15:58:36 door Joren de Wit
 
- SanThe -

- SanThe -

23/01/2011 14:48:11
Anchor link
Nee.

Lees eens wat tutorials door.
www.phptuts.nl
 
Jordi Kroon

Jordi Kroon

23/01/2011 14:49:44
Anchor link
@thee boris

Backticks horen niet in een select
en variabelen buiten de quotes halen
 
- Ariën  -
Beheerder

- Ariën -

24/01/2011 16:03:25
Anchor link
Ik raad aan om een while() loop te gebruiken, en een mysql_fetch_assoc().
 

25/01/2011 13:05:17
Anchor link
denk al iets gevonden te hebben :) straks na school neem ik de tijd!
Gewijzigd op 25/01/2011 13:05:46 door
 
- Ariën  -
Beheerder

- Ariën -

25/01/2011 14:12:56
Anchor link
Ben benieuwd, houd ons op de hoogte ;-)

Lijkt me dat je gewoon bovengenoemde nog nodig hebt.
 

25/01/2011 16:09:21
Anchor link
De zoek functie en gebruikersnaam ipadres werkt niet :(
resultaat.php:
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
<?
   //-- natuurlijk moet er eerst een connectie met de database worden gemaakt:
    if (!@mysql_select_db("databasenaam", @mysql_connect("localhost", "database-user", "database-pass")))
    {

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

        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 gebruikersnaam FROM members WHERE gebruikersnaam LIKE '%$HTTP_POST_VARS[zoekterm]%'";
    
       $sql2 = "SELECT ipadres FROM members WHERE ipadres 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)
    {

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

            echo "<p>Resultaat gebruikersnaam: <b>$row[gebruikersnaam]</b><br>";
            echo "Resultaat gebruikersnaam: <b>$row[$sql2]</b></p>";
        }

        
        echo "<a href=\"zoek.php\" 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 jou zoekterm:<b> $HTTP_POST_VARS[zoekterm]</b></p>";
        
        echo "<p><a href=\"zoek.php\" title=\"zoek opnieuw\">zoek opnieuw</a></p>";
    }

?>

[code/]
Zoek.php:

<?
    echo "<HTML>\n
    <HEAD><TITLE>Zoeken</TITLE></HEAD>
    <BODY>
    
    <p><b>Zoek in de database:</b></p>
    
    <p>
    <FORM METHOD=\"POST\" ACTION=\"resultaat.php\">
    Zoekterm:<br>
    <input type=\"text\" name=\"zoekterm\" size=\"30\"><br>
    <input type=\"submit\" name=\"submit\" value=\"Zoeken\">
    </p>
    
    </BODY>
    </HTML>"
;
?>




<?
    echo "<HTML>\n
    <HEAD><TITLE>Zoeken</TITLE></HEAD>
    <BODY>
    
    <p><b>Zoek in de database:</b></p>
    
    <p>
    <FORM METHOD=\"POST\" ACTION=\"resultaat.php\">
    Zoekterm:<br>
    <input type=\"text\" name=\"zoekterm\" size=\"30\"><br>
    <input type=\"submit\" name=\"submit\" value=\"Zoeken\">
    </p>
    
    </BODY>
    </HTML>"
;
?>
Gewijzigd op 25/01/2011 16:10:13 door
 
- Ariën  -
Beheerder

- Ariën -

25/01/2011 16:14:17
Anchor link
Thee boris op 25/01/2011 16:09:21:
De zoek functie en gebruikersnaam ipadres werkt niet :(

Wat gebeurt er dan? Gaat de server roken, zie je een typisch Blauw Scherm in WIndows, wordt je internetverbinding spontaan verbroken?
Wat werkt er niet? Wees eens wat duidelijker a.u.b.?

Over je script....
Gooi maar weg:

- Foutafhandeling ontbreekt.
- $HTTP_POST_VARS[zoekterm] is verouderd. Zeer verouderd.
- Variabelen staan buiten quotes, dat hoort niet
- exit() wordt te onpas gebruikt
- SQL-injection is ook hier een feest. Ik heb je hier pas nog voor gewaarschuwd en het bewijs nog geleverd.
- Waarom gemixde upper en lowercase in je HTML?

Waarom ga je niet zelf wat in elkaar proberen te maken i.p.v. oude rotzooi op te vissen?

En wat is een databas?
Gewijzigd op 25/01/2011 16:22:53 door - Ariën -
 

29/01/2011 14:57:53
Anchor link
ik heb al iets:
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
<?php                                            
// De variabelen die je naar eigen belangen moet invullen
$db_user = '1';      // Gebruiker voor MySQL
$db_pass = '2';          // Wachtwoord voor MySQL
$db_host = '3'; // Host voor MySQL; standaard localhost
$db_db =   '4';          // Database
$tabel =   '5';          // De tabel waarin gezocht moet worden
$eerste =  'gebruikersnaam';     // De 1e rij in je tabel waain hij moet zoeken
$tweede =  'ipadres';     // De 2e rij in je tabel waain hij moet zoeken

// Met onze database connecten

mysql_connect($db_host,$db_user,$db_pass) or die(mysql_error());
mysql_select_db($db_db) or trigger_error(mysql_error());

// Onze functie voor het afkorten. Later meer.
function afkorten($var, $lengte) {
  if (strlen($var) > $lengte) {
    $var = substr($var, 0, $lengte-3)."...";
  }

  return $var;
}
  

// Als er een id is in de url de volledige tekst laten zien
if(isset($_GET['id']) and !empty($_GET['id']) and is_numeric($_GET['id'])){  
    
        // Resultaten ophalen
    $result = mysql_query("SELECT * FROM ".$tabel." WHERE id=" .  mysql_real_escape_string(  $_GET['id'] )  . "");
    
        // Checken of het tekst id wel bestaat
    if (mysql_num_rows($result) >= 1) {    
        
            // De resultaten even in een $_ROW['']; stoppen
        $row = mysql_fetch_assoc($result);  
                                          
            // Resultaten tonen
          echo $row[''.$eerste.''];
          echo '<br /><br />';
          echo $row[''.$tweede.''];  
          echo $row[''.$derde.''];  
          echo $row[''.$vierde.''];  

    }

    else {    // Als het tekst id niet bestaat:
        echo 'Dit id bestaat niet!';
    }
}
                            
 // Als er een zoekterm in de url staat en niet leeg is...  
else if(isset($_GET['zoekterm']) and !empty($_GET['zoekterm'])){
  if($_GET['waar'] == $eerste)           // En de waar is 'titel'..
  {
    $sqlquery = "SELECT * FROM ".$tabel." WHERE ".$eerste." LIKE '%" .  mysql_real_escape_string(  $_GET['zoekterm'] )  . "%'";       // De goede query uitvoeren
    
    $results = mysql_query($sqlquery) or die(mysql_error());;   // De goede resultaten ophalen    
            // Als er resultaten zijn:

        if (mysql_num_rows($results) >= 1) {            
            while($row = mysql_fetch_assoc($results)) {                                            
            
                echo '<a href="?id='.$row['id'].'">'.$row[''.$eerste.''].'</a><br />';  // De titel als linkje met daarna de afgekorte tekst
                $tekst = $row[''.$tweede.''];
                echo afkorten($tekst,25);  // Onze functie aan roepen. De 25 staat voor 25 tekens
                echo "<br /><br />";  // En dan ook maar een paar entertjes
            }
        }

        else {   // Als er geen resultaten zijn:
            echo "Er zijn geen resultaten";
        }
  }

  else if($_GET['waar'] == $tweede)    // Of de waar is 'tekst'...
  {
    $sqlquery = "SELECT * FROM ".$tabel." WHERE ".$tweede." LIKE '%" .  mysql_real_escape_string(  $_GET['zoekterm'] )  . "%'";        // Een andere query uitvoeren          
    
    
    $results = mysql_query($sqlquery) or die(mysql_error());;   // De goede resultaten ophalen    
            // Als er resultaten zijn:

        if (mysql_num_rows($results) >= 1) {            
            while($row = mysql_fetch_assoc($results)) {                                            
            
                echo '<a href="?id='.$row['id'].'">'.$row[''.$eerste.''].'</a><br />';  // De titel als linkje met daarna de afgekorte tekst
                $tekst = $row[''.$tweede.''];
                echo afkorten($tekst,25);  // Onze functie aan roepen. De 25 staat voor 25 tekens
                echo "<br /><br />";  // En dan ook maar een paar entertjes
            }
        }

        else {   // Als er geen resultaten zijn:
            echo "Er zijn geen resultaten";
        }
  }
                                                
  else if($_GET['waar'] == 'overal')    // En als de waar 'overal' is
  {
    $sqlquery = "SELECT * FROM ".$tabel." WHERE ".$eerste." LIKE '%" .  mysql_real_escape_string(  $_GET['zoekterm'] ) . "%' OR ".$tweede."
    LIKE '%"
.  mysql_real_escape_string(  $_GET['zoekterm'] ) . "%'";                // Weer een andere query uitvoeren        
        
            
    $results = mysql_query($sqlquery) or die(mysql_error());;   // De goede resultaten ophalen    
            // Als er resultaten zijn:

        if (mysql_num_rows($results) >= 1) {            
            while($row = mysql_fetch_assoc($results)) {                                            
            
                echo '<a href="?id='.$row['id'].'">'.$row[''.$eerste.''].'</a><br />';  // De titel als linkje met daarna de afgekorte tekst
                echo afkorten($row[''.$tweede.''],25);  // Onze functie aan roepen. De 25 staat voor 25 tekens
                echo "<br /><br />";  // En dan ook maar een paar entertjes
            }
        }

        else {   // Als er geen resultaten zijn:
            echo "Er zijn geen resultaten";
        }
  }
else {
      echo 'Hier kan ik niet in zoeken!';
  }
  
}

else {     // Als er niks bruikbaars in de url staat:

           // Ons zoekformuliertje laten zien

    echo '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">
            <input type="text" name="zoekterm"><br />
            <select name="waar">
              <option>overal
              <option>'
.$eerste.'
              <option>'
.$tweede.'
           </select><br />
           <input type="submit" value="Zoek">
         </form>'
;  
}

?>

[code/]
 
Joren de Wit

Joren de Wit

29/01/2011 15:00:07
Anchor link
En heb je er nu nog een vraag over, of werkt het zoals je wilt?
 

29/01/2011 15:08:18
Anchor link
ja :)
 
- Ariën  -
Beheerder

- Ariën -

29/01/2011 15:08:43
Anchor link
is het trouwens niet toffer om zelf eens PHP te leren i.p.v. overal en nergens wat script vandaan te halen en riskeren dat je script niet goed werkt.

Je weet drommels goed dat ik je vanwege zo'n feit al eens eerder gewaarschuwd heb voor SQL injection... ;-)

PHP is leuk, maar weet waar je mee bezig bent.
 
Jordy R

Jordy R

14/08/2013 10:33:07
Anchor link
hoi ben met de laatste search code bezig die hier op de site wordt gegeven ben pas 2 dagen bezig met php en heb er weinig verstand van ( vindt het wel intressant) mijn script blijft aangeven "kan hier niet zoeken" ( de echo bij het else statment op 108 )zie niet aan welke voorwaarde ik niet voldoe of welke waarde niet goed is kan iemand mij helpen
alvast bedankt gr jordy
 
- Ariën  -
Beheerder

- Ariën -

14/08/2013 11:59:11
Anchor link
Hoe roep je het script aan?
 
Jordy R

Jordy R

14/08/2013 13:04:47
Anchor link
de code recht streek in me script geplaats of hoe bedoel je
 
- Ariën  -
Beheerder

- Ariën -

14/08/2013 13:36:41
Anchor link
Hoe roep je het aan? Je moet wel een ?waar= argument meegeven in de URL, welke gebruikersnaam, ipadres of overal bevat.

Toevoeging op 14/08/2013 14:07:56:

Gezien je al verder bent gegaan in dit topic sluit ik deze dan maar.
Gewijzigd op 14/08/2013 13:37:58 door - Ariën -
 
 

Dit topic is gesloten.



Overzicht

 
 

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.