Hulp nodig met search engine

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Atmin Habib

Atmin Habib

05/03/2011 19:37:22
Quote Anchor link
Hoi, ik ben nieuw met php, wel kan ik html en css.
Ik ben sinds kort bezig met een website waarin ik een php/mysql search engine wil hebben. Ik wil dat elke resultaat, die de gebruiKker gevonden heeft, een eigen pagina heeft. (die zelf gegenereerd word, waarin informatie erover staat die uit de database gehaald word)

Ik heb al een index.php en een search.php
Kunt iemand mij misschien helpen.
 
PHP hulp

PHP hulp

22/12/2024 08:48:59
 
Pim -

Pim -

05/03/2011 19:46:26
Quote Anchor link
Hier is wat meer informatie voor nodig.
Wat is je huidige code?
Waarin wil je zoeken?
 
Atmin Habib

Atmin Habib

05/03/2011 19:54:29
Quote Anchor link
Index.php
Quote:
<form action='search.php' method='GET'>


<div class="zoek">
<p><font size="5" face="sans-serif"><div class="zoek">
<input type='text' size='20' name='search'> <input type='submit' name='submit' value='Search'></font></p>

</div>


</form>



Search.php
Quote:
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
<?php


//get data
$button = $_GET['submit'];
$search = $_GET['search'];


$s = $_GET['s'];
if (!$s)
$s = 0;


$e = 8; // Just change to how many results you want per page


$next = $s + $e;
$prev = $s - $e;




 if (strlen($search)<=2)
  echo "Must be greater then 3 chars";
 else
 {
  echo "";
  
  //connect to database
  mysql_connect("localhost","laatiknietzien","laatiknietzien");
  mysql_select_db("laatiknietzien");
  
   //explode out search term
   $search_exploded = explode(" ",$search);
  
   foreach($search_exploded as $search_each)
   {

  
        //construct query
    $x++;
    if ($x==1)
     $construct .= "keywords LIKE '%$search_each%'";
    else
     $construct .= " OR keywords LIKE '%$search_each%'";
  
   }

  
  //echo outconstruct
  $constructx = "SELECT * FROM searchengine WHERE $construct";
  
  $construct = "SELECT * FROM searchengine WHERE $construct LIMIT $s,$e";
  $run = mysql_query($constructx);
  
  $foundnum = mysql_num_rows($run);


  $run_two = mysql_query("$construct");
  
  if ($foundnum==0)
   echo "No results found for <b>$search</b>";
  else
  {
   echo "";
  
   while ($runrows = mysql_fetch_assoc($run_two))
   {

    //get data
   $title = $runrows['title'];
   $url = $runrows['url'];
  
   echo "<table width='300px'>
   <h4><a href='$url'><b>$title</b></a><br />
  
   <font color='757575'>$url</font></table></h4>
   "
;
   }

?>


<table width='100%'>
<tr>
<td>
<div align="center">

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
if (!$s<=0)
 echo "<a href='search.php?search=$search&s=$prev'>Prev</a>";

$i =1;
for ($x=0;$x<$foundnum;$x=$x+$e)
{



 echo " <a href='search.php?search=$search&s=$x'>$i</a> ";


$i++;


}


if ($s<$foundnum-$e)
  echo "<a href='search.php?search=$search&s=$next'>Next</a>";

    }
}
  


?>


Ik hoop dat je hier iets aan hebt
 
Pim -

Pim -

05/03/2011 21:12:24
Quote Anchor link
En wat werkt er nu niet?
 
Atmin Habib

Atmin Habib

07/03/2011 16:58:06
Quote Anchor link
Nou, ik wil nog een pagina. En daarop staat een code waarmee de informatie van een bepaalde film word weergegeven. (die vanuit mijn DB gelaad word)
 
Rick  -

Rick -

07/03/2011 17:34:44
Quote Anchor link
wat staat er allemaal in je database dat is wel handig
waarschijnlijk dingen zoals:
-titel
-jaar
-afbeelding

het is denk ik het makkelijkst dat als je erop klikt dat je naar een pagina gaat en dan dmv een url variabelen waarin het id van de video uit je database en dan alle data eruit halen.

EDIT:
even voorbeeld code
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
<?php
###################
## Film.php #######
## door Rick6213 ##
###################


$id = ($_GET['id']);

?>

<!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>Film</title>
        
</head>

<body>

    <?php
// Config.php

$host = "localhost"; // Je host
$user = "root"; // Je MySQL gebruikersnaam
$pass = "wachtwoord"; // Je MySQL wachtwoord
$datb = "films"; // Je MySQL database

// Verbinding maken

mysql_connect($host, $user, $pass) or die ("Er is een fout bij het connectie maken met de DataBase");
mysql_select_db($datb) or die ("Er is een fout bij het selecteren van de DataBase");



// Alles uit db halen laatste bericht als eerste.
$sql = mysql_query("SELECT
                        *,
                      
                    FROM
                       films
                    WHERE id IN ("
.$id.")
                    
                    DESC
                    "
);

// Als de query is gelukt
if($sql)
{

    // Als er items zijn
    if(mysql_num_rows($sql) > 0)
    {

        // Items neerzetten
        while($rec = mysql_fetch_assoc($sql))
        {

         // Alles echoën
            echo 'Titel: '.$rec['Titel']; //Titel
            echo '<br>Jaar: '.$rec['jaar']; //Jaartal
             echo '<br>beschrijving:'.$rec['beschrijving']; //beschrijving
        
              
        }
    }

    // Anders
    else
    {
        // film niet bestaat
        echo 'Error 404, de door jouw gevraagde pagina bestaat niet';
    }    
}

// Anders
else
{
    // MySql error
    echo 'Er is een fout opgetreden in de query: <br />';
    echo mysql_error();
}

?>

 

</body>
</html>

ik ga hierbij uit dat je tabel in de database zo uit ziet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
id, Titel, Jaar, Beschrijving
-----------------------------
1, New Kids turbo, 2010, Een film over jongeren uit maaskantje
2, nog een film, het jaartal, beschrijving ervan
-----------------------------


De pagina roep je simpel aan als:
film.php?id=1

hierbij is 1 dan het video id dus is het id van je video 8 dan is het:
film.php?id=8

ik zou er nog wel even een functie in maken dat als er geen id is dat je dan een error pagina krijgt ipv een heleboel mysql errors

Succes
Gewijzigd op 07/03/2011 17:49:39 door Rick -
 
Atmin Habib

Atmin Habib

08/03/2011 13:50:53
Quote Anchor link
De tabellen in mijn DB zijn zo: ID, Titel, Beschrijving, Tags en link
De link moet volgens mij naar de film.php

Bedankt voor verdere hulp, Ik kijk even verder en als er iets niet goed is laat ik het horen.
Gewijzigd op 08/03/2011 13:54:08 door Atmin Habib
 

08/03/2011 13:53:37
Quote Anchor link
wijzig ze dan!
 
Atmin Habib

Atmin Habib

08/03/2011 13:59:05
Quote Anchor link
Ik heb nog de probleem hoe ik eigenlijk naar film.php moet linken.
(dat er staat: film.php?id=1)

Alvast bedankt
 
Pim -

Pim -

08/03/2011 15:51:18
Quote Anchor link
Een aanrader: De PHP port van Lucene door Zend. Een echte zoekengine in php.
 
Rick  -

Rick -

10/03/2011 11:11:33
Quote Anchor link
Bij $url moet je hem aanpassen
ik heb nu geen zin om je hele script door te spitten testen en aanpassen
ik heb die code ook uit verveling geschreven vraag anders iemand het te doen voor geld
dat is een stuk makkelijker

EDIT:
volgens mij moet je:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
 //get data
   $title = $runrows['title'];
   $url = $runrows['url'];
  
   echo "<table width='300px'>
   <h4><a href='$url'><b>$title</b></a><br />
  
   <font color='757575'>$url</font></table></h4>
   "
;
?>


aanpassen naar
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?
 //get data
   $title = $runrows['title'];
 //$url = $runrows['url'];
   $filmid = $runrows['id']; //om het id ervan te verkrijgen
  
   echo "<table width='300px'>
   <h4><a href='film.php?id="
.$filmid."'><b>$title</b></a><br /> //$url is vervangen door film.php?id=$filmid
  
   <font color='757575'>$url</font></table></h4>
   "
;
?>


Probeer dit eens en als je error krijgt post dan de aangepaste code
Gewijzigd op 10/03/2011 13:35:28 door Rick -
 



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.