Avatar billede dklap3 Nybegynder
20. april 2005 - 02:42 Der er 14 kommentarer og
1 løsning

Udskriv søgning i Table

Jeg har en simpel søgefunktion, hvor der bliver vist et navn og et billede (tilhørende navnet). Jeg vil gerne have lavet så resultaterne bliver udskrevet i en tabel med 9 hits på hver side, og så man kan bladre mellem de forskellige sider.

Sådan her ser det ud nu: http://www.herningshuse.dk/temp/sog1.jpg

Og sådan skulle det gerne komme til at se ud: http://www.herningshuse.dk/temp/sog2.jpg (meget groft sat op :-) )


Her er min kode:

    $query = mysql_query("select * from herning_bygninger where navn like '%$search%' or adresse like '%$search%' or keywords like '%$search%' ORDER by 'adresse'");
    $antal = mysql_num_rows($query);
    $id = $row["id"];

  if ($antal == 0) {
echo "Der blev ikke fundet nogle resultater.<p>Bygningen eller adressen du søgte efter er muligvis ikke kommet med endnu.";


  else if ($antal == 1) {
echo "Der blev fundet ".$antal." resultat:<p>";
        while ($row = mysql_fetch_array($query)) {
echo "<a href='bygning.php?id=" . ($row["id"]) ."'>" . $row['navn'] . "</a><br>";
echo "<a href='bygning.php?id=" . ($row["id"]) ."'><img src=\"billeder/thumbs/" . $row['id'] . "_1.jpg\"></a><br>";
   
}  }

  else if ($antal > 1) {
            echo "Der blev fundet ".$antal." resultater:<p>";
        while ($row = mysql_fetch_array($query)) {
            echo "<a href='bygning.php?id=" . ($row["id"]) ."'>" . $row['navn'] . "</a><br>";
            echo "<a href='bygning.php?id=" . ($row["id"]) ."'><img src=\"billeder/thumbs/" . $row['id'] . "_1.jpg\"></a><p>";
           
            }}}
?>

Nogen der ved hvordan det kan laves? Jeg synes ikke rigtig jeg kan få den til at sætte det ind i en tabel på nogen måde så den viser 3 i hver række.
Avatar billede busschou Praktikant
20. april 2005 - 07:47 #1
At sætte dem ind i en tabel er rimelig nemt. Du skal blot tælle kolonner og rækker
---------
$col_count = 0
$row_count = 0
echo "<table>";
while ($row = mysql_fetch_array($query)) {
if ($col_count == 0){
  echo "<tr>";
}
echo "<td>";
echo "<a href='bygning.php?id=" . ($row["id"]) ."'>" . $row['navn'] . "</a><br>";
echo "<a href='bygning.php?id=" . ($row["id"]) ."'><img src=\"billeder/thumbs/" . $row['id'] . "_1.jpg\"></a><p>";
echo "</td>";
$col_count = $col_count+1;
if ($col_count == 3){
  echo "</tr>";
  $col_count=0;
  $row_count = $row_count+1;
}
if ($row_count = 3){
  echo "</table>"; //OG DROP UD AF WHILE LØKKEN!
}
}
Avatar billede busschou Praktikant
20. april 2005 - 07:51 #2
Side vælgeren er lidt værre ;o) og den har jeg vist kun ord på hvordan kunne virke desværre
Avatar billede dklap3 Nybegynder
20. april 2005 - 12:39 #3
Jeg må indrømme jeg har lidt svært ved at få det sat rigtigt ind. Skal delen du har skrevet ikke komme efter dette i min oprindelige kode:

else if ($antal > 1) {
echo "Der blev fundet ".$antal." resultater:<p>";

?
Avatar billede busschou Praktikant
20. april 2005 - 12:42 #4
jo men i øvrigt gør du jo præcis det samme hvis =1 eller >1
Du kan spare denne kode væk
-----
else if ($antal == 1) {
echo "Der blev fundet ".$antal." resultat:<p>";
        while ($row = mysql_fetch_array($query)) {
echo "<a href='bygning.php?id=" . ($row["id"]) ."'>" . $row['navn'] . "</a><br>";
echo "<a href='bygning.php?id=" . ($row["id"]) ."'><img src=\"billeder/thumbs/" . $row['id'] . "_1.jpg\"></a><br>";
 
}  }
----
Avatar billede busschou Praktikant
20. april 2005 - 12:44 #5
sådan her:
----
$query = mysql_query("select * from herning_bygninger where navn like '%$search%' or adresse like '%$search%' or keywords like '%$search%' ORDER by 'adresse'");
$antal = mysql_num_rows($query);
$id = $row["id"];

if ($antal == 0) {
  echo "Der blev ikke fundet nogle resultater.<p>Bygningen eller adressen du søgte efter er muligvis ikke kommet med endnu.";
}

else if ($antal == 1) {
  echo "Der blev fundet ".$antal." resultat:<p>";
}
else if ($antal > 1) {
  echo "Der blev fundet ".$antal." resultater:<p>";
}
$col_count = 0
$row_count = 0
echo "<table>";
while ($row = mysql_fetch_array($query)) {
  if ($col_count == 0){
    echo "<tr>";
  }
  echo "<td>";
  echo "<a href='bygning.php?id=" . ($row["id"]) ."'>" . $row['navn'] . "</a><br>";
  echo "<a href='bygning.php?id=" . ($row["id"]) ."'><img src=\"billeder/thumbs/" . $row['id'] . "_1.jpg\"></a><p>";
  echo "</td>";
  $col_count = $col_count+1;
  if ($col_count == 3){
    echo "</tr>";
    $col_count=0;
    $row_count = $row_count+1;
  }
  if ($row_count = 3){
    echo "</table>"; //OG DROP UD AF WHILE LØKKEN!
  }
}
?>
Avatar billede busschou Praktikant
20. april 2005 - 12:46 #6
njaa ok måske var det en dum ide
Men det skal i hvert fald kun udskrives hvis der er mere end een jo
Og jeg kommer egentlig i tvivl om hvordan det reagerer hvis der er færre end ni
Avatar billede dklap3 Nybegynder
20. april 2005 - 12:54 #7
Ja det er jo det at den før skrev "1 Resultat" hvis der kun var et hit, og "X ResultateR" hvis der var flere. Har prøvet med din kode alligevel, den giver mig en fejl:

Parse error: parse error, unexpected T_VARIABLE in /customers/herningshuse.dk/herningshuse.dk/httpd.www/de/results.php on line 51


Linje 51 er: $row_count = 0
Avatar billede busschou Praktikant
20. april 2005 - 12:55 #8
det er fordi jeg glemte at lave ; efter linjerne i farten tror jeg :/
Avatar billede dklap3 Nybegynder
20. april 2005 - 13:04 #9
Okay, har smidt et par ";"er ind, men nu ser det ikke rigtig ud til at der er nogen table overhovedet. Du kan følge den her: http://www.herningshuse.dk/de/results.php?search=bredgade+1
Avatar billede busschou Praktikant
20. april 2005 - 13:08 #10
prøv lige poste din kode som den er nu
Ser ud som om den mangler at lave en <table>
Avatar billede dklap3 Nybegynder
20. april 2005 - 13:11 #11
Her er koden:

$query = mysql_query("select * from herning_bygninger where navn like '%$search%' or adresse like '%$search%' or keywords like '%$search%' ORDER by 'adresse'");
$antal = mysql_num_rows($query);
$id = $row["id"];

if ($antal == 0) {
  echo "Der blev ikke fundet nogle resultater.<p>Bygningen eller adressen du søgte efter er muligvis ikke kommet med endnu.";
}

else if ($antal == 1) {
  echo "Der blev fundet ".$antal." resultat:<p>";
}
else if ($antal > 1) {
  echo "Der blev fundet ".$antal." resultater:<p>";
}
$col_count = 0;
$row_count = 0;
echo "<table>";
while ($row = mysql_fetch_array($query)) {
  if ($col_count == 0){
    echo "<tr>";
  }
  echo "<td>";
  echo "<a href='bygning.php?id=" . ($row["id"]) ."'>" . $row['navn'] . "</a><br>";
  echo "<a href='bygning.php?id=" . ($row["id"]) ."'><img src=\"../billeder/thumbs/" . $row['id'] . "_1.jpg\"></a><p>";
  echo "</td>";
  $col_count = $col_count+1;
  if ($col_count == 3){
    echo "</tr>";
    $col_count=0;
    $row_count = $row_count+1;
  }
  if ($row_count = 3){
    echo "</table>"; //OG DROP UD AF WHILE LØKKEN!
  }
}}
?>
Avatar billede busschou Praktikant
20. april 2005 - 13:14 #12
den sidste selvfølgelig
if ($row_count == 3){
    echo "</table>"; //OG DROP UD AF WHILE LØKKEN!
  }
Avatar billede dklap3 Nybegynder
20. april 2005 - 13:39 #13
Så var den der. Har lige erstattet den sidste med:

  if ($row_count == 100){
    echo "</table>"; //OG DROP UD AF WHILE LØKKEN!
  }

Så den bare bliver ved med at vise 3 på hver linje, i hvert fald indtil jeg finder ud af noget med de sideskift.

Mange tak for hjælpen:-) Smider du lige et svar, så du kan få nogle point.
Avatar billede busschou Praktikant
20. april 2005 - 13:45 #14
Det gør jeg da :o)
Et foreslag vil være at holde øje med om du kan fylde 9 ud
For hvis det skal se pænt ud så hvis der kun er 5 eller 7 billeder så skal den jo stadig lave resten som blanke (synes jeg personligt)
Avatar billede dklap3 Nybegynder
20. april 2005 - 13:48 #15
Ja enig, det ser ikke så pænt ud hvis der mangler en i det nederste hjørne. Skal også lige have rettet css'en lidt til med farver og sådan, men det må lige vente lidt da jeg er på vej ud af døren. Nu er jeg i hvert fald kommet godt i gang, så nu skulle det være noget lettere. Endnu engang tak for hjælpen.
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