Avatar billede delphiuser Mester
29. august 2006 - 21:57 Der er 24 kommentarer og
1 løsning

søgemaskine

Hej eksperter...

Jeg er igang med at lave en søgemaskine men har nogle små problemer med den. kan i ikke lige hjælpe mig og sige hvad der er gjort helt galt... Men jeg prøver også at lave den kategori opdelt på den måde at hvis man vil finde noget uden at søge skal man kunne gøre det ved at trykke på den kategori man vil kigge under... nogen som kan hjælpe med dette

dette er selve søge formen....

<form action="<?php $php_self ?>" method="get">Søg: <input type="text" name="seek" size="55" maxlength="200" /> <input type="submit" value="Søg" /></form>

her kommer så mit php script...

<?php
if $_POST['$submit'] {
 
mysql_connect("xxx","xxx","xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());
         
$seek = mysql_query("Select * from search where $seek like '%seek%'");
list($index,$navn))=mysql_fetch_row(mysql_query($seek));

echo '<table border="0">';
echo '<tr><td>'. $row['index'] .'';
echo '<tr><td>'. $row['beskrivelse'] .'';
echo '<tr><td><a href="'. $row['link'] .'" target="_BLANK">'. $row['url'] .'</a>';
echo '</table>';
}
else {
mysql_query("select * from kategorier order by id")
while mysql_fetch_array($row) {
echo '<a href="cat.php?id">'. $row['cat'] .'</a>';
}
}
?>
Avatar billede delphiuser Mester
29. august 2006 - 21:59 #1
Jeg får forresten denne fejl... linien har jeg indrammet med stjerner

Parse error: parse error, unexpected T_VARIABLE, expecting '(' in d:\homepage\joy\test\index.php on line 41

<?php
***************************
if $_POST['$submit'] {
*************************** 
mysql_connect("xxx","xxx","xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());
         
$seek = mysql_query("Select * from search where $seek like '%seek%'");
list($index,$navn))=mysql_fetch_row(mysql_query($seek));

echo '<table border="0">';
echo '<tr><td>'. $row['index'] .'';
echo '<tr><td>'. $row['beskrivelse'] .'';
echo '<tr><td><a href="'. $row['link'] " target="_BLANK">'. $row['url'] .'</a>';
echo '</table>';
}
else {
mysql_query("select * from kategorier order by id")
while mysql_fetch_array($row) {
echo '<a href="cat.php?id">'. $row['cat'] .'</a>';
}
}
?>
Avatar billede shooka Nybegynder
29. august 2006 - 22:05 #2
Jeg formoder, at dette er linie 41:

list($index,$navn))=mysql_fetch_row(mysql_query($seek));

Den skal være:

list($index,$navn)=mysql_fetch_row(mysql_query($seek);
Avatar billede delphiuser Mester
29. august 2006 - 22:13 #3
men ser mit søgescript eller meget godt ud?
Avatar billede shooka Nybegynder
29. august 2006 - 22:15 #4
Ups...

Sådan skal den være:

list($index,$navn)=mysql_fetch_row(mysql_query($seek));
Avatar billede shooka Nybegynder
29. august 2006 - 22:15 #5
Sikkerheden er ikke så god.
Avatar billede delphiuser Mester
29. august 2006 - 22:15 #6
den kommer stadigvæk med denne fejl....

Parse error: parse error, unexpected T_VARIABLE, expecting '(' in d:\homepage\joy\test\index.php on line 41

og det er i denne line

if $_post['$submit'] {
Avatar billede delphiuser Mester
29. august 2006 - 22:16 #7
hvad ville du gøre med sikkerheden? hvad ville du bygge på og kan du eventuelt hjælpe mig lidt?
Avatar billede shooka Nybegynder
29. august 2006 - 22:17 #8
F.eks. henter den fra din søgetabel, bare ved at kigge på siden.
Avatar billede shooka Nybegynder
29. august 2006 - 22:18 #9
Det skal selvfølgelig være:

if($_post['submit']) {
Avatar billede delphiuser Mester
29. august 2006 - 22:18 #10
hvad skal jeg gøre for at rette den?
Avatar billede shooka Nybegynder
29. august 2006 - 22:21 #11
Er det ok, at jeg laver helt om i det?

Der er nemlig en del fejl.
Avatar billede delphiuser Mester
29. august 2006 - 22:24 #12
nu får jeg denne fejl...

Parse error: parse error, unexpected T_WHILE in d:\homepage\joy\test\index.php on line 57

og det er i denne linie

while ($row = mysql_fetch_array($get)) {
Avatar billede delphiuser Mester
29. august 2006 - 22:24 #13
du laver det om du vil min ven
Avatar billede shooka Nybegynder
29. august 2006 - 22:52 #14
Den er måske ikke helt professionel, men den burde virke ;)

<form action="" method="get">Søg: <input type="text" name="search" size="55" maxlength="200" /> <input type="submit" value="Søg" /></form>
<?php
if(isset($_GET['search']))
{
mysql_connect("xxx","xxx","xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());
if($_GET['kategori'] != "")
{
$category = $_GET['kategori'];
$search = mysql_query("SELECT * FROM search WHERE kategori='$category'");
}
else
{
$getsearch = $_GET['search'];
$search = mysql_query("SELECT * FROM search WHERE beskrivelse LIKE '$getsearch'");
}
while($row = mysql_fetch_row($search));
{
echo "<table border=\"0\">";
echo "<tr><td>".$row['titel']."</td></tr>";
echo "<tr><td>".$row['beskrivelse']."</td></tr>";
echo "<tr><td>".$row['kategori']."</td></tr>";
echo "<tr><td><a href=\"".$row['url']."\" target=\"_blank\">".$row['url']."</a></td></tr></table>";
}
}
else
{
$cat = mysql_query("select * from kategorier");
while($row1 = mysql_fetch_array($cat))
{
echo "<a href=\"?kategori=".$row1['ID']."\">".$row1['navn']."</a> - ";
}
}
?>

Kan du selv rette din MySQL Database?
Avatar billede shooka Nybegynder
29. august 2006 - 22:54 #15
Jeg kan allerede se en fejl:

Ret

if($_GET['kategori'] != "")
{
$category = $_GET['kategori'];
$search = mysql_query("SELECT * FROM search WHERE kategori='$category'");
}
else
{
$getsearch = $_GET['search'];
$search = mysql_query("SELECT * FROM search WHERE beskrivelse LIKE '$getsearch'");
}

til

if($_GET['kategori'] != "")
{
$category = $_GET['kategori'];
$search = mysql_query("SELECT * FROM search WHERE kategori='$category'");
}
else if($_GET['search'] != "")
{
$getsearch = $_GET['search'];
$search = mysql_query("SELECT * FROM search WHERE beskrivelse LIKE '$getsearch'");
}
Avatar billede delphiuser Mester
30. august 2006 - 09:15 #16
hvordan skal min side se ud hvis jeg vælger at trykke mig igennem via categorierne i stedet for at skrive et søgeord? og samtidig skal den skrive hvor mange indlæg der er i hver categori. hvordan skal det se ud.

eksempel på kategori. Erhverv (100) | Sport (15)

så dat kommer til at se ud på den måde?
Avatar billede shooka Nybegynder
30. august 2006 - 11:03 #17
Du skal lige være opmærksom på, at der er ændret i din kode, så du skal rette i den først.
Avatar billede delphiuser Mester
30. august 2006 - 11:35 #18
Jeg har lavet en tabel der hedder kategorier hvor jeg har mine kategorier stående...
så vil jeg lave det sådan at det id nummer som står ud for den pægælende kategori også fremgår i min tabel der hedder search hvor alt andet kommer til at ligge... er det en god eller en dårlig måde at gøre det på?
Avatar billede shooka Nybegynder
30. august 2006 - 11:38 #19
Så er det klaret:

<form action="" method="get">Søg: <input type="text" name="search" size="55" maxlength="200" /> <input type="submit" value="Søg" /></form>
<?php
// Forbindelse til databasen start
mysql_connect("xxx","xxx","xxx") or die(mysql_error());
mysql_select_db("xxx") or die(mysql_error());
// Forbindelse til databasen slut
if($_GET['kategori'] != "") // Hvis en kategori er valgt
{
$category = $_GET['kategori'];
$search = mysql_query("SELECT * FROM search WHERE kategori='$category'");
$tal = "1";
}
else if($_GET['search'] != "") // Hvis et søgeord er skrevet
{
$getsearch = $_GET['search'];
$search = mysql_query("SELECT * FROM search WHERE beskrivelse LIKE '%$getsearch%'");
$tal = "1";
}
// Udskriver fra databasen
while($row = mysql_fetch_row($search));
{
echo "<table border=\"0\">";
echo "<tr><td>".$row["titel"]."</td></tr>";
echo "<tr><td>".$row["beskrivelse"]."</td></tr>";
echo "<tr><td>".$row["kategori"]."</td></tr>";
echo "<tr><td><a href=\"".$row["url"]."\" target=\"_blank\">".$row["url"]."</a></td></tr></table>";
}
if($tal != "1") // Hvis hverken kategori er valgt eller søgeord er skrevet, så vis alle kategorierne
{
$cat = mysql_query("select * from kategorier");
while($row1 = mysql_fetch_array($cat))
{
$sql = "SELECT count(*) AS antal FROM search WHERE kategori='".$row1["navn"]."'";
$result = mysql_query($sql) or die(mysql_error());
$row2 = mysql_fetch_assoc($result);
echo "<a href=\"?kategori=".$row1["navn"]."\">".$row1["navn"]."</a> (".row2["antal"].") | ";
}
}
?>
Avatar billede delphiuser Mester
30. august 2006 - 11:40 #20
det er kanont... kom lige med et svar så kan du få dine point... men lige en ting... når jeg klikker på en kategori vil den så forblive på samme side og bare gå ind under den kategori jeg har valgt?
Avatar billede shooka Nybegynder
30. august 2006 - 11:43 #21
while($row = mysql_fetch_row($search));
{
echo "<table border=\"0\">";
echo "<tr><td>".$row["titel"]."</td></tr>";
echo "<tr><td>".$row["beskrivelse"]."</td></tr>";
echo "<tr><td>".$row["kategori"]."</td></tr>";
echo "<tr><td><a href=\"".$row["url"]."\" target=\"_blank\">".$row["url"]."</a></td></tr></table>";
}

Skal ændres til:

if($tal == "1")
{
while($row = mysql_fetch_row($search));
{
echo "<table border=\"0\">";
echo "<tr><td>".$row["titel"]."</td></tr>";
echo "<tr><td>".$row["beskrivelse"]."</td></tr>";
echo "<tr><td>".$row["kategori"]."</td></tr>";
echo "<tr><td><a href=\"".$row["url"]."\" target=\"_blank\">".$row["url"]."</a></td></tr></table>";
}
}

Ellers ville den udskrive noget, som ikke var angivet, og så ville der sikkert komme en masse fejl.
Avatar billede shooka Nybegynder
30. august 2006 - 11:56 #22
Den vil forblive på samme side ;)

Held og lykke med din nye søgemaskine.
Avatar billede shooka Nybegynder
30. august 2006 - 11:56 #23
Svar...
Avatar billede delphiuser Mester
30. august 2006 - 15:10 #24
jeg får lige denne fejl...

Parse error: parse error, unexpected '[', expecting ',' or ';' in d:\homepage\joy\test\index.php on line 78

det er i denne linie...

echo '<a href="?kategori='.$row1["navn"].'">'.$row1["navn"].'</a> ('.row2["antal"].') | ';
Avatar billede shooka Nybegynder
30. august 2006 - 15:21 #25
Prøv denne:
echo "<a href=\"?kategori=".$row1['navn']."\">".$row1['navn']."</a> (".row2['antal'].") | ";
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester