Avatar billede delphiuser Mester
14. marts 2007 - 18:42 Der er 35 kommentarer og
1 løsning

søgemaskine

Hej eksperter

hårber i kan hjælpe mig med min søgemaskine. jeg har nogle problemer med den.

Jeg vil gerne have at alle mine kategorier skal stå som norget i denne stil jeg viser nu
******************************************************************

  Edb              Netbutikker          Samfund
 
  Erhverv          Nyheder              Spil

  Fritid          Reference            Sport

  Hus og Fritid    Regional              Sundhed

  Kultur          Videnskab

******************************************************************

er det muligt at få dem til at stp sådan der og lige under hver kategori skal der komme en under kategori. jeg har lavet alt mit kode kan bare ikke få den til at virke. så håbe i vil hjælpe mig...

Her kommer min kode jeg bruger....

******************************************************************

<?php
        $vis=20;
if(!$aa)$aa=0;

if ($seek) {
$connection = mysql_connect("***","***","***"); //Ændre disse indstillinger omkring din Mysql database
mysql_select_db("***", $connection);
$result = mysql_query("select * from search where headline like '%$seek%' or cat like '%$seek%' ORDER BY id DESC LIMIT $aa,$vis");
$result2 = mysql_query("select * from search where cat like '%$seek%' or headline like '%$seek%'");
$number = mysql_num_rows($result2);
print "Din søgning på: <b>$seek</b> gav $number ud af resultater<p></p>";
while ($row = mysql_fetch_array($result)) {
print "<b>$row[headline]</b><br>$row[comment]<br><br><a href=\"$row[link]\">$row[link]</a><p>";

}
$resul = mysql_query("SELECT * FROM search");
$tal = mysql_num_rows($resul);
if($aa>($vis-1))echo "<a link href=\"$PHP_self?aa=".($aa-$vis)."&seek=$seek\"><< Forrige $vis </a>";
if(($aa+$vis)<$tal)echo "<a link href=\"$PHP_self?aa=".($aa+$vis)."&seek=$seek\"> Næste $vis >> </a>";
} elseif ($sog) {
print "Du skrev ikke noget søgeord!!";
} else {
echo '<br>';
$cat = mysql_query("SELECT cate_id, category FROM category ORDER BY category") or die(mysql_error());
while ($row1 = mysql_fetch_array($cat)) {
echo '<table border="0" width="550" align="center">';
echo '<tr><td><h2><a href="cat.php?id="'.$row1['cate_id'].'">'.$row1['category'].'</a></h2></td></tr>';
echo '<tr><td>';
$sub = mysql_query("SELECT sub_id, cat_id, scat, cate_id FROM sub_cat, category WHERE $cate_id = '%$cat_id%' ORDER BY scat DESC LIMIT 5")or die(mysql_error());
while ($row2 = mysql_fetch_array($sub)) {
echo '<h5><a href="cat.php?id="'.$row2['sub_id'].'">'.$row2['scat'].'</a></h5> ';
}
echo '</td></tr>';
echo '</table>';
}
}
?>
******************************************************************

ud fra denne kode får jeg følgende fejl og den vil heller ikke finde id numre på mine kategorier...
min fejl kommer her....

******************************************************************
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '= '%%' ORDER BY scat DESC LIMIT 5' at line 1
******************************************************************

håber i kan hjælpe mig. på forhand tak

Michael Hansen
Avatar billede jakobdo Ekspert
14. marts 2007 - 19:03 #1
Har du mere kode end du viser her?
$seek skal vel sættes via:

$seek = $_GET['seek'];
eller
$seek = $_POST['seek'];
Avatar billede jakobdo Ekspert
14. marts 2007 - 19:04 #2
Ved nærmere eftertanke, er det noget her: $cat_id

Den skal du rette til: $row1[id] tror jeg.
Avatar billede delphiuser Mester
15. marts 2007 - 08:55 #3
nu kommer under kategorien da frem. men hvordan kan jeg få det hele placeret sådan at du ikke bare står i en lang række
Avatar billede delphiuser Mester
15. marts 2007 - 09:07 #4
men det der er det vigtigste for mig lige nu er at det som bliver kaldt frem her nu som er mine kategorier bliver vist ligesom på andre søgesider.

og det er denne kode del her som er den der henter det frem...

<?php
$cat = mysql_query("SELECT cate_id, category FROM category ORDER BY category") or die(mysql_error());
while ($row1 = mysql_fetch_array($cat)) {
echo '<tr><td><h2><a href="cat.php?id="'.$row1['cate_id'].'">'.$row1['category'].'</a></h2></td></tr>';
echo '<tr><td>';
$sub = mysql_query("SELECT sub_id, scat, cat_id FROM sub_cat, category WHERE cat_id = $row1[cate_id] ORDER BY scat LIMIT 5")or die(mysql_error());
while ($row2 = mysql_fetch_array($sub)) {
echo '<h5><a href="cat.php?id="'.$row2['sub_id'].'">'.$row2['scat'].'</a></h5> ';
}
echo '</td></tr>';
}
}
?>
Avatar billede jakobdo Ekspert
15. marts 2007 - 10:59 #5
Det er svært at fejlsøge i kode, når man ikke kan se hvordan det ser ud nu, og hvordan det skal se ud.
Du må give lidt links og tegne og fortælle lidt.
Avatar billede delphiuser Mester
16. marts 2007 - 08:41 #6
www.joy-palaze.dk/jpnew/search.php

det er min søgeside.
Avatar billede jakobdo Ekspert
16. marts 2007 - 08:46 #7
Det står bare i en lang køre ja! Og det er vel problemet?
Avatar billede delphiuser Mester
16. marts 2007 - 09:15 #8
ja vil gerne have det til at stå sådan i kategorier hvor der bliver vist nogle af underkategorierne som høre til hver af kategorierne. ligesom på ekspertens forside...
Avatar billede jakobdo Ekspert
16. marts 2007 - 09:24 #9
Noget i denne stil:

<?php
$antal = 3;

$cat = mysql_query("SELECT cate_id, category FROM category ORDER BY category") or die(mysql_error());
while ($row1 = mysql_fetch_array($cat))
{
    echo '<tr><td><h2><a href="cat.php?id="'.$row1['cate_id'].'">'.$row1['category'].'</a></h2></td></tr>';
    echo '<tr><td>';
   
    $count = 0;
   
    echo '<table><tr>';
   
    $sub = mysql_query("SELECT sub_id, scat, cat_id FROM sub_cat, category WHERE cat_id = $row1[cate_id] ORDER BY scat LIMIT 5")or die(mysql_error());
    while ($row2 = mysql_fetch_array($sub))
    {
        if(!$count % $antal)
        {
            echo '</tr><tr>';
        }
        echo '<td><h5><a href="cat.php?id="'.$row2['sub_id'].'">'.$row2['scat'].'</a></h5></td>';
    }
   
    echo '</tr></table>';
   
    echo '</td></tr>';
}
?>
Avatar billede delphiuser Mester
16. marts 2007 - 09:44 #10
nu har jeg prøvet at sætte din kode ind. men du kan jo lige prøve at se hvordan det ser ud for det står stadigvæk i en lang køre....

www.joy-palaze.dk/jpnew/search.php
Avatar billede jakobdo Ekspert
16. marts 2007 - 10:09 #11
if(!$count % $antal)
        {
            echo '</tr><tr>';
        }
        echo '<td><h5><a href="cat.php?id="'.$row2['sub_id'].'">'.$row2['scat'].'</a></h5></td>';
$count++; //havde glemt denne....
    }
Avatar billede delphiuser Mester
16. marts 2007 - 10:13 #12
det står ikke helt som håbet endnu... :(
Avatar billede jakobdo Ekspert
16. marts 2007 - 11:21 #13
Det kan jeg godt se!
Jeg må lige lege med det, det skal virke!
Tror det er denne som fejler: if(!$count % $antal)
Prøv evt at ret den til:
if(($count % $antal)==0)
Avatar billede dkfire Nybegynder
16. marts 2007 - 15:46 #14
Husk lige at ændre dine links, lige nu laves de ikke rigtigt
Virker IKKE:
<a href="cat.php?id="6">
Virker:
<a href="cat.php?id=6">

echo '<td><h5><a href="cat.php?id='.$row2['sub_id'].'">'.$row2['scat'].'</a></h5></td>';
Avatar billede jakobdo Ekspert
16. marts 2007 - 16:31 #15
Kan jeg ikke lige få et dump af dine 2 tabeller?
Avatar billede delphiuser Mester
16. marts 2007 - 22:04 #16
jo jeg sender lige mine tabeller her nu
Avatar billede delphiuser Mester
16. marts 2007 - 22:06 #17
her er tabellen category....

CREATE TABLE `category` (
  `cate_id` int(11) NOT NULL auto_increment,
  `category` varchar(40) NOT NULL default '',
  PRIMARY KEY  (`cate_id`)
) TYPE=MyISAM AUTO_INCREMENT=15 ;

her kommer tabellen sub_cat

CREATE TABLE `sub_cat` (
  `sub_id` int(11) NOT NULL auto_increment,
  `cat_id` int(11) NOT NULL default '0',
  `scat` varchar(40) NOT NULL default '',
  PRIMARY KEY  (`sub_id`)
) TYPE=MyISAM AUTO_INCREMENT=347 ;
Avatar billede jakobdo Ekspert
19. marts 2007 - 08:31 #18
Så tror jeg den var der:
http://www.codebreaker.dk/exp/767979exp.php

<?php

$antal_cat = 3;
$antal_sub = 2;

$count_cat = 0;

$query_cat = mysql_query("SELECT cate_id, category FROM tbl_767979_cat ORDER BY category") or die(mysql_error());
if(mysql_num_rows($query_cat)>0)
{
    //Hoved Tabel Start
    echo '<table><tr>'."\r\n";
    while ($row_cat = mysql_fetch_array($query_cat))
    {
        if(($count_cat % $antal_cat)==0)
        {
            echo '</tr><tr>'."\r\n";
        }
       
        //Kategori Tabel Start
        echo '<td valign="top"><table>'."\r\n";
        echo '<tr><td><caption><h2><a href="cat.php?id="'.$row_cat['cate_id'].'">'.$row_cat['category'].'</a></h2></caption></td></tr>'."\r\n";
 
        $count_sub = 0;
     
        $query_sub = mysql_query("SELECT sub_id, scat FROM tbl_767979_sub WHERE cat_id = '".$row_cat['cate_id']."' ORDER BY scat")or die(mysql_error());
        while($row_sub = mysql_fetch_array($query_sub))
        {
            if(($count_sub % $antal_sub)==0)
            {
                echo '</tr><tr>'."\r\n";
            }
            echo '<td><b><a href="cat.php?id="'.$row_sub['sub_id'].'">'.$row_sub['scat'].'</a></b></td>'."\r\n";
            $count_sub++; //havde glemt denne....
        }
       
        //Sub Tabel Stop
        echo '</tr></table></td>'."\r\n";
       
        $count_cat++;
    }
   
    //Hoved Tabel Stop
    echo '</table>'."\r\n";
}
?>
Avatar billede delphiuser Mester
20. marts 2007 - 14:27 #19
hvad er fejlen i denne kode

<?php
if (isset($_GET['id'])) {
  $id = $_GET['id'];
  $query = mysql_query("SELECT cate_id, sub_id, scat FROM category, subcat WHERE id = $cate_id OREDER BY scat");
  $row = mysql_fetch_array($query);
  echo '<a href="link.php?id='.$row['sub_id'].'">'.$row['scat'].'</a> ';
  }
  }
?>
Avatar billede delphiuser Mester
20. marts 2007 - 14:29 #20
dette er lille php script jeg har skrevet nu er når man vælger en hoved kategori skal den liste alle under kategorierne men kan ikke lige selv finde fejlen
Avatar billede jakobdo Ekspert
20. marts 2007 - 15:20 #21
Jeg har rettet lidt her:
<?php
if(is_numeric($_GET['id']))
{
    $id = intval($_GET['id']);
  $query = mysql_query("SELECT cate_id, sub_id, scat FROM category, subcat WHERE id = $id OREDER BY scat");
  $row = mysql_fetch_array($query);
    echo '<a href="link.php?id='.$row['sub_id'].'">'.$row['scat'].'</a> ';
}
?>

Din fejl var:

  $query = mysql_query("SELECT cate_id, sub_id, scat FROM category, subcat WHERE id = $scat_id OREDER BY scat"); //SCAT_ID skal rettes til ID

Og du trækker kun en række ud, skal du ikek have en while?
Avatar billede delphiuser Mester
20. marts 2007 - 15:30 #22
Jeg får denne fejl

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in d:\homepage\joy\jpnew\cat.php on line 67
Avatar billede jakobdo Ekspert
20. marts 2007 - 15:37 #23
ret lige:
$query = mysql_query("SELECT cate_id, sub_id, scat FROM category, subcat WHERE id = $id OREDER BY scat");
til:
$query = mysql_query("SELECT cate_id, sub_id, scat FROM category, subcat WHERE id = $id OREDER BY scat") or die(mysql_error());
Avatar billede delphiuser Mester
20. marts 2007 - 15:42 #24
den skriver dette nu

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'OREDER BY scat' at line 1
Avatar billede jakobdo Ekspert
20. marts 2007 - 16:11 #25
ORDER MÅSKE? :o)
Avatar billede dkfire Nybegynder
20. marts 2007 - 16:43 #26
Der er fejl i forespørgelsen. Husk at angivev hvilke tabeller i henter de forskellige felter henne.

"SELECT tabel1.felt3 tabel2.felt1 FROM tabel1, tabel2 WHERE tabel1.id=$id ORDER BY tabel1.felt2 ASC"
Avatar billede delphiuser Mester
20. marts 2007 - 21:39 #27
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'OREDER BY sub_cat.scat ASC' at line 1

nu ser koden sådan her ud

<?php
if(is_numeric($_GET['id']))
{
    $id = intval($_GET['id']);
  $query = mysql_query("SELECT categoty.cate_id, sub_cat.sub_id, sub_cat.scat FROM category, subcat WHERE category.cate_id = $id OREDER BY sub_cat.scat ASC") or die(mysql_error());
  $row = mysql_fetch_array($query);
    echo '<a href="link.php?id='.$row['sub_id'].'">'.$row['scat'].'</a> ';
}
}
?>
Avatar billede jakobdo Ekspert
20. marts 2007 - 21:54 #28
Der skal stå ORDER og ikke OREDER.
Det skrev jeg også tidligere.
Avatar billede dkfire Nybegynder
20. marts 2007 - 23:30 #29
Der mangler lige en sidste ting. Hvilket felt forbinder de to tabeller ??
Avatar billede jakobdo Ekspert
21. marts 2007 - 07:48 #30
Denne sql burde kunne klare det du vil: SELECT cate_id, sub_id, scat FROM subcat WHERE cate_id = $id ORDER BY scat ASC
Avatar billede delphiuser Mester
21. marts 2007 - 09:03 #31
det virker nu som sådan. den viser nu bare kun en under kategori når jeg går ind og klikker på Edb eller en anden kategori.

<?php
$antal_sub = 8;

if(is_numeric($_GET['id']))
{
    $id = intval($_GET['id']);
    $count_sub = 0;
  $query = mysql_query("SELECT cat_id, sub_id, scat FROM sub_cat WHERE cat_id = $id ORDER BY scat ASC") or die(mysql_error());
  $row = mysql_fetch_array($query);
  if(($count_sub % $antal_sub)==0)
            {
    echo '<a href="link.php?id='.$row['sub_id'].'">'.$row['scat'].'</a> ';
}
}
}
?>
Avatar billede jakobdo Ekspert
21. marts 2007 - 10:03 #32
Er det ikke sådan du vil have det da?
Avatar billede delphiuser Mester
22. marts 2007 - 22:24 #33
jo men mår jeg klikker på f.eks Edb skal den vise alle de under kategorier som relatere til hovedkategorien Edb
Avatar billede jakobdo Ekspert
23. marts 2007 - 06:17 #34
<?php
$antal_sub = 8;

if(is_numeric($_GET['id']))
{
    $id = intval($_GET['id']);
    $count_sub = 0;
    $query = mysql_query("SELECT cat_id, sub_id, scat FROM sub_cat WHERE cat_id = $id ORDER BY scat ASC") or die(mysql_error());
    while($row = mysql_fetch_array($query))
    {
            echo '<a href="link.php?id='.$row['sub_id'].'">'.$row['scat'].'</a> ';
    }
}
?>
Avatar billede delphiuser Mester
28. juli 2010 - 13:51 #35
lukker
Avatar billede jakobdo Ekspert
28. juli 2010 - 15:28 #36
Hvad blev din løsning ?
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