Avatar billede JJ77 Juniormester
09. februar 2006 - 20:17 Der er 39 kommentarer og
3 løsninger

søgefunktion som også skal sortere efter postnumre

Jeg har nedenstående søgefunktion, og den virker da også.. bare ikke med at hente efter landsdel også. Er her nogle som ved hvordan jeg får løst dette problem?
Den skal kunne hente de annoncer som kommer fra en hvis landsdel og som indeholder et søgeord som man indtaser. Desuden skal det også være muligt at bare at vælge landsdel, trykke søg, og så skal den vise alle annocer fra denne landsdel.
Håber jeg har udtrykt mig klart nok:)


<form action="salgsannoncer.php" method="GET">
                <div align="left">
                        <table width="339" border="0" cellspacing="5" cellpadding="0" height="42">
                        <tr height="37">
                            <td width="164" height="37"><span class="lille">Søgeord:</span><br>
                    <div align="left">
                        <input type="text" name="search"> </div>
                </td>
                <td width="175" height="37"><span class="lille">Omr&aring;de:</span><br>
                    <select name="selectName" size="1">
                        <option value="0">Hele Danmark</option>
                        <option value="0">---------------------------------</option>
                        <option value="0">Stork&oslash;benhavn</option>
                        <option value="0">Århus</option>
                        <option value="0">Odense</option>
                        <option value="0">---------------------------------</option>
                        <option value="0">Sjælland</option>
                        <option value="0">Nordsjælland</option>
                        <option value="0">Sydsjælland</option>
                        <option value="0">Jylland</option>
                        <option value="0">Nordjylland</option>
                        <option value="0">Midt- & vestjylland</option>
                        <option value="0">Østjylland</option>
                        <option value="0">Sønderjylland</option>
                        <option value="0">Bornholm</option>
                    </select>&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Søg"></td>
            </tr>
                    </table>
                </div>
            </form>



sqlllen-------------
$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_GET['search']."%' order by id desc limit $s,$pr_side") or die(mysql_error());
Avatar billede olebole Juniormester
09. februar 2006 - 20:53 #1
<ole>

Du sørger for, at der vælges en landsdel, når annoncen oprettes - og at denne indsættes i DB'en - så der er noget at søge på.

Du kan finde officielle lister over danske postnumre, men ikke lister over postnumre i bestemte landsdele, så den vej rundt er der ikke noget at hente

/mvh
</bole>
Avatar billede JJ77 Juniormester
09. februar 2006 - 21:09 #2
Når der bliver oprettet en annonce indtaster man et postnr... Kan man ikke under de forskellige valgmuligheder indsætte noget ala "storkøbenhavn" ml 1000 og 2000
Avatar billede JJ77 Juniormester
09. februar 2006 - 21:32 #3
Nordsjælland 3000-3670
Storkøbenhavn 1000-2990
Vest Midt og sydsjælland 4000-4990
Avatar billede JJ77 Juniormester
09. februar 2006 - 21:34 #4
Så mit spg. går altså på. kan man ikke indsætte en værdi i
<option value="3000-3670">Nordsjælland</option> og så få den indsat i sqllen, så den søger på noget ala where postnr er mellem 3000 og 3670?
Avatar billede JJ77 Juniormester
09. februar 2006 - 22:43 #5
måske noget med WHERE postNr BETWEEN '$værdi1' AND '$værdi2'
Men hvordan får jeg så sat to værdier i min option value? osv..
Avatar billede wetdog Nybegynder
09. februar 2006 - 22:50 #6
Du kan jo bare lave forskellige sql sætninger afhængig af hvad der vælges. F.eks.

if($selectName=='3000-3670') {
  lav sql´len så den selekterer på dette interval
}

osv...
Avatar billede JJ77 Juniormester
09. februar 2006 - 22:51 #7
kan du ikke venligst uddybbe en smule..
Avatar billede wetdog Nybegynder
09. februar 2006 - 22:53 #8
dog ikke en særlig pæn løsning. Du kunne også skille strengen ad og opdele den i 2 variabler som du kan bruge i din sql
Avatar billede JJ77 Juniormester
09. februar 2006 - 22:55 #9
øhhh.. hehe.. er lidt lost nu... kan du ikke venligst uddybe en anelse :)
Avatar billede wetdog Nybegynder
09. februar 2006 - 22:58 #10
øjeblik
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:05 #11
du har via din form fået tildelt variablen $selectName en værdi. F.eks. :

<option value="3000-3670">Nordsjælland</option>

så er $selectName = "3000-3670". Denne værdi vil du bruge som et interval i din sql. Dette kan gøres således:

$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_GET['search']."%' AND salgAfProdukt.postNr BETWEEN LEFT(".$selectName.",4) AND RIGHT(".$selectName.",4) order by id desc limit $s,$pr_side") or die(mysql_error());

dette er ganske utestet, men prøv det
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:06 #12
ok.. prøver lige :)
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:09 #13
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 '4) AND RIGHT(,4) order by id desc limit 0,20' at line 1
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:11 #14
ok - prøv så denne:

$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_GET['search']."%' AND salgAfProdukt.postNr BETWEEN LEFT('".$selectName."',4) AND RIGHT('".$selectName."',4) order by id desc limit $s,$pr_side") or die(mysql_error());
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:14 #15
det er muligt du skal erstatte $selectName i sql´len med $_GET['selectName']
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:22 #16
Ved godt at det lige umiddelbart virker af meget kode. Men det ser ud til at virke nogenlunde, dog viser den kun nogle få annoncer når siden åbnes. Det er først når man trykker på søgknappen uden at vælge noget at alle annoncer vises. Desuden lader det til at den også tager annoncer med som intet postnr har.
Ved ikke om det hjælper at se det hele:)





<body scroll="auto">
    <div><?php echo "DEBUG: <b>" . $_SERVER['QUERY_STRING'] . "</b>";?></div>
<div align="center">
    <form action="salgsannoncer.php" method="GET">
                <div align="left">
                        <table border="0" cellspacing="5" cellpadding="0" height="42">
                        <tr height="37">
                            <td height="37"><span class="lille">Søgeord:</span><br>
                    <div align="left">
                        <input type="text" name="search"> </div>
                </td>
                <td height="37"><span class="lille">Omr&aring;de:</span><br>
                    <select name="selectName" size="1">
                        <option value="0-9999">Hele Danmark</option>
                        <option value="0">---------------------------------</option>
                        <option value="1000-2990">Stork&oslash;benhavn</option>
                        <option value="0">Århus</option>
                        <option value="0">Odense</option>
                        <option value="0">---------------------------------</option>
                        <option value="900-4990">Sjælland</option>
                        <option value="3000-3670">Nordsjælland</option>
                        <option value="4000-4990">Sydsjælland</option>
                        <option value="0">Jylland</option>
                        <option value="0">Nordjylland</option>
                        <option value="0">Midt- & vestjylland</option>
                        <option value="0">Østjylland</option>
                        <option value="0">Sønderjylland</option>
                        <option value="0">Bornholm</option>
                    </select>&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Søg"></td>
            </tr>
                    </table>
                </div>
            </form>
        </div>


<table width="560" border="0" cellspacing="0" cellpadding="0"bgcolor="#000000">
            <tr>
                    <td><span class="mini">&nbsp;</span></td>
                </tr>
        </table>
<table width="560" border="0" cellspacing="5" cellpadding="0" bgcolor="#FFFFFF">
<tr>
        <td width="360" valign="top"><span class="stor"><b><u>Annonce</u></b></span></td>
        <td width="70" align="center" valign="top"><span class="stor"><b><u>Pris</u></b></span></td>
        <td width="130" align="center" valign="top"><span class="stor"><b><u>Område</u></b></span></td>
    </tr>
    </table>
<table width="560" border="0" cellspacing="0" cellpadding="0"bgcolor="#000000">
            <tr>
                    <td><span class="mini">&nbsp;</span></td>
                </tr>
        </table> 
   
   
   
<?php
require("../members/common.php");
//  Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)

function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
    $punktum  = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
    $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
    $mere      = "..."; // punktummer hvis mere tekst

    if (strlen($tekst) <= $laengde + $tolerance) {
        $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
        $mere = ""; // ikke andet
    } elseif ($punktum !== false) {
        $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
    } elseif ($mellemrum !== false) {
        $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
    } else {
        $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}

echo "<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>";

$pr_side = "20"; //Definerer antal resultater pr. side

if (!isset($s))
{
    $s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}

$g_total = mysql_query("select count(id) as total from salgAfProdukt WHERE produkt LIKE '%".$_GET['search']."%' AND salgAfProdukt.postNr BETWEEN LEFT('".$selectName."',4) AND RIGHT('".$selectName."',4)") or die(mysql_error());
$total = mysql_result($g_total,0);
if($total>$pr_side)
{
if ($total > $s+5){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes 
    echo "<a href='?s=$previous_s'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
}
echo "</tr></td></table>";
  echo "  <table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_GET['search']."%' AND salgAfProdukt.postNr BETWEEN LEFT('".$selectName."',4) AND RIGHT('".$selectName."',4) order by id desc limit $s,$pr_side") or die(mysql_error());

while($row = mysql_fetch_array($query)){
   
echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"visSalgsannoncer.php?id=$row[Id]\" target=\"vs\">$row[produkt]</a></span> <br><span class=\"lille\">".klip($row['supplerendeTekst'])."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['pris'].",-</span></td>
  <td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['bynavn']."</span></td></tr></table>


<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";
   

}

echo "<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>";

$total = mysql_result($g_total,0);
if($total>$pr_side){

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes 
    echo "<a href='?s=$previous_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
echo "</tr></td></table>";

?>
</body>
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:42 #17
ok - prøv så dette:

$var1 = substr($_GET['selectName'],0,4); //find de 4 første tegn i strengen
$var2 = substr($_GET['selectName'],5,8); //find de 4 sidste tegn i strengen

$query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_GET['search']."%' AND salgAfProdukt.postNr BETWEEN ".$var1." AND ".$var2." order by id desc limit $s,$pr_side") or die(mysql_error());
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:42 #18
Men tror faktisk at det med at den tager postnumre med som ikke er der ikke er en fejl.. det er bare fordi at jeg har oprettet nogle annoncer som har et postnr som ikke eksistere, og det kan den jo ikke gardere sig imod her... det skal jeg jo bare have lavet i selve oprettelsen af annoncen... så tror faktisk at der kun er et problem ved selve det når man trykker på linket som henter ovenstående side.. der vises ikke for hele dk. der henter den kun de annoncer som har postnr=0
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:44 #19
$var2 = substr($_GET['selectName'],5,8); //find de 4 sidste tegn i strengen

skal rettes til:

$var2 = substr($_GET['selectName'],5,4); //find de 4 sidste tegn i strengen
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:46 #20
Skal jeg stadig rette det du lige skrev? selve søgningen virker jo?? det er kun når man trykker på linket som henter siden der er problemer nu ;)
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:48 #21
selve debuggen ser således ud når jeg søger på ordet "ord" og select "nordsjælland":
Er det ikke fint nok?

DEBUG: search=ord&selectName=1000-2990&submit=S%F8g
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:52 #22
det er det vel hvis du har defineret nordsjælland til at være 1000-2990. Det kan jeg bare ikke se du har :

<option value="3000-3670">Nordsjælland</option>
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:54 #23
min fejl.. sorry

søgt på nordsjælland
DEBUG: search=ord&selectName=3000-3670&submit=S%F8g
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:55 #24
men nej - hvis min forespørgsel med LEFT og RIGHT funktionerne i sql´len virker, skal du ikke rette den. Det er vist den mest elegante
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:55 #25
så tror jeg den er hjemme - god fornøjelse
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:56 #26
Så det lader til at det virker... men hvordan får jeg den til at hente alle annoncer når man trykker på linket som henter siden.. det er der det er lidt mystisk nu? :)
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:58 #27
DU skal ihvertfald have mange tak for hjælpen.. Det var sku en super hjælp :)
Avatar billede wetdog Nybegynder
09. februar 2006 - 23:58 #28
det er vel ikke spor mystisk - du har jo fortalt at du kun vil hente annoncer fra et givent postnr interval, eller er der noget jeg har misforstået ?
Avatar billede JJ77 Juniormester
09. februar 2006 - 23:59 #29
når man trykker på linket som skal vise siden med annoncer skal den bare vise alle altså fra postNr ml. 0-9999
Avatar billede olebole Juniormester
10. februar 2006 - 00:00 #30
800 => Høje Tåstrup
877 => Valby
925 => Nes, Vágur
926 => Lopra
927 => Akrar
928 => Vikarbyrgi
950 => Porkeri
960 => Hov
970 => Sumba
3700-3790 => Bornholmske postnumre
3900-3985 => Grøndlandske postnumre

- det er som sagt ikke så let. Jeg ved det, fordi jeg har lavet adskillige af den slags løsninger - både på baggrund af søgninger i postnumre alene, på kort i forhold til postnumre og regioner, amter og kommuner i forhold til postnumre. Der er ikke den slags helt faste intervaller, som ville gøre projektet let  :)
Avatar billede JJ77 Juniormester
10. februar 2006 - 00:04 #31
Jeg har fundet en liste med postnrfordelingen over dk, fordelt på landsdel.. fra postdanmarks hjemmeside :)
Avatar billede wetdog Nybegynder
10. februar 2006 - 00:04 #32
er du på MSN ?
Avatar billede JJ77 Juniormester
10. februar 2006 - 00:05 #33
ja
Avatar billede JJ77 Juniormester
10. februar 2006 - 00:06 #34
Kan man skrive sin msn her
Avatar billede wetdog Nybegynder
10. februar 2006 - 00:06 #35
hvad er din mail
Avatar billede olebole Juniormester
10. februar 2006 - 00:06 #36
montana >> hvad er linket?
Avatar billede JJ77 Juniormester
10. februar 2006 - 00:07 #37
bjaerg76@hotmail.com
Avatar billede olebole Juniormester
10. februar 2006 - 00:08 #38
montana >> lægger du et link til filen hos PostDanmark?
Avatar billede JJ77 Juniormester
10. februar 2006 - 00:12 #39
Ja.. skal lige finde det igen.. downloade nemlig siden så jeg havde den :)
Avatar billede JJ77 Juniormester
10. februar 2006 - 00:17 #40
Avatar billede wetdog Nybegynder
10. februar 2006 - 01:04 #41
montana - husk lige at poste den færdige kode herinde, så andre kan få glæde af den også
Avatar billede JJ77 Juniormester
10. februar 2006 - 10:35 #42
Her er koden som virker:)

<body scroll="auto">
    <div><?php echo "DEBUG: <b>" . $_SERVER['QUERY_STRING'] . "</b>";?></div>
<div align="center">
    <form action="salgsannoncer.php" method="GET">
                <div align="left">
                        <table border="0" cellspacing="5" cellpadding="0" height="42">
                        <tr height="37">
                            <td height="37"><span class="lille">Søgeord:</span><br>
                    <div align="left">
                        <input type="text" name="search"> </div>
                </td>
                <td height="37"><span class="lille">Omr&aring;de:</span><br>
                    <select name="selectName" size="1">
                        <option value="0000-9999">Hele Danmark</option>
                        <option value="0">---------------------------------</option>
                        <option value="1000-2990">Stork&oslash;benhavn</option>
                        <option value="0">Århus</option>
                        <option value="0">Odense</option>
                        <option value="0">---------------------------------</option>
                        <option value="0900-4990">Sjælland</option>
                        <option value="3000-3670">Nordsjælland</option>
                        <option value="4000-4990">Sydsjælland</option>
                        <option value="0">Jylland</option>
                        <option value="0">Nordjylland</option>
                        <option value="0">Midt- & vestjylland</option>
                        <option value="0">Østjylland</option>
                        <option value="0">Sønderjylland</option>
                        <option value="0">Bornholm</option>
                    </select>&nbsp;&nbsp;&nbsp;<input type="submit" name="submit" value="Søg"></td>
            </tr>
                    </table>
                </div>
            </form>
        </div>


<table width="560" border="0" cellspacing="0" cellpadding="0"bgcolor="#000000">
            <tr>
                    <td><span class="mini">&nbsp;</span></td>
                </tr>
        </table>
<table width="560" border="0" cellspacing="5" cellpadding="0" bgcolor="#FFFFFF">
<tr>
        <td width="360" valign="top"><span class="stor"><b><u>Annonce</u></b></span></td>
        <td width="70" align="center" valign="top"><span class="stor"><b><u>Pris</u></b></span></td>
        <td width="130" align="center" valign="top"><span class="stor"><b><u>Område</u></b></span></td>
    </tr>
    </table>
<table width="560" border="0" cellspacing="0" cellpadding="0"bgcolor="#000000">
            <tr>
                    <td><span class="mini">&nbsp;</span></td>
                </tr>
        </table>


<?php
require("../members/common.php");
//  Funktion, der "klipper" en tekst over på det mest hensigtsmæssige sted (".", " ", )
// str klip(str tekst, int længde, int tolerance)

function klip($tekst, $laengde = 200, $tolerance = 10) // $laengde og $tolerance kan udelades
{
    $punktum  = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), "."); // position af punktum
    $mellemrum = strpos(substr($tekst, $laengde-$tolerance, 2*$tolerance), " "); // position af mellemrum
    $mere      = "..."; // punktummer hvis mere tekst

    if (strlen($tekst) <= $laengde + $tolerance) {
        $slut_pos = strlen($tekst); // slutposition = slut på tekst, da denne er kortere end $laengde og $tolerance
        $mere = ""; // ikke andet
    } elseif ($punktum !== false) {
        $slut_pos = $laengde-$tolerance+$punktum; // slutposition = punktum
    } elseif ($mellemrum !== false) {
        $slut_pos = $laengde-$tolerance+$mellemrum; // slutposition = mellemrum
    } else {
        $slut_pos = $laengde; // slutposition $laengde (ikke noget at gøre - skær ord over)
    }

    return substr($tekst, 0, $slut_pos) . $mere; // udskriv del + evt. punktummer
}

echo "<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>";

$pr_side = "20"; //Definerer antal resultater pr. side

if (!isset($s))
{
    $s = "0"; //Tjekker om $s - som står for start - er sat, hvis ikke sættes den
}

if(!isset($_GET['selectName']) || $_GET['selectName']=="") {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt WHERE produkt LIKE '%".$_GET['search']."%'") or die(mysql_error());
} else {
    $g_total = mysql_query("select count(id) as total from salgAfProdukt WHERE produkt LIKE '%".$_GET['search']."%' AND salgAfProdukt.postNr BETWEEN LEFT('".$selectName."',4) AND RIGHT('".$selectName."',4)") or die(mysql_error());
}
$total = mysql_result($g_total,0);
if($total>$pr_side)
{
if ($total > $s+5){
##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
    echo "<a href='?s=$previous_s'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
}
echo "</tr></td></table>";
  echo "  <table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";

if(!isset($_GET['selectName']) || $_GET['selectName']=="") {
    $query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_GET['search']."%' order by id desc limit $s,$pr_side") or die(mysql_error());
} else {
    $query = mysql_query("select * from salgAfProdukt left join postnr on salgAfProdukt.postNr = postnr.postnr WHERE produkt LIKE '%".$_GET['search']."%' AND salgAfProdukt.postNr BETWEEN LEFT('".$selectName."',4) AND RIGHT('".$selectName."',4) order by id desc limit $s,$pr_side") or die(mysql_error());
}

while($row = mysql_fetch_array($query)){

echo "
  <table width=\"560\" border=\"0\" cellspacing=\"5\" cellpadding=\"0\" bgcolor=\"#FFFFFF\">
  <tr>
  <td width=\"360\" valign=\"top\"><span class=\"mellem\"><a href=\"visSalgsannoncer.php?id=$row[Id]\" target=\"vs\">$row[produkt]</a></span> <br><span class=\"lille\">".klip($row['supplerendeTekst'])."</span></td>
  <td width=\"70\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['pris'].",-</span></td>
  <td width=\"130\" align=\"center\" valign=\"top\"><span class=\"lilleS\">".$row['bynavn']."</span></td></tr></table>


<table width=\"560\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"bgcolor=\"#CAD9EA\">
            <tr>
                    <td><span class=\"mini\">&nbsp;</span></td>
                </tr>
        </table>";


}

echo "<table border=\"0\" cellspacing=\"5\" cellpadding=\"0\"><tr><td>";

$total = mysql_result($g_total,0);
if($total>$pr_side){

##
#Find ud af om derskal være et Forrige link
##
if ($s >= $pr_side) { //Tjekker om værdien af $s er større eller lig $pr_side
    $previous_s = $s-$pr_side; //Regner ud hvor mysql skal starte hvis forrige side kaldes
    echo "<a href='?s=$previous_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Forrige</font></a> "; //Udskriver linket
}

##
#Find ud af hvis/hvor mange sider der er rows til
##
$page = 1; //Definerer hvor sidetal skal starte
for($start=0; $total > $start; $start=$start+$pr_side){ //For-løkke der kører indtil der ikke er nok rows til en side mere
    if ($start != $s) { //Tjekker om linket vil komme til at pege på den side man er på
        echo "<a href='?s=$start&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">$page</font></a> "; //...hvis ikke, udskrives link med værdien af $page
    } else { //Ellers, dvs. hvis linket vil pege på den side man er på..
        echo "<font color=\"#000000\">$page </font>"; //...udskrives værdien af $page bare, altså ikke som link
    }
    $page++; //Lægger en til $page til næste gang løkken køres
}

##
#Find ud af om der skal være et næste link
##
if ($total > $s+$pr_side) { //Tjekker om der er flere sider
    $next_s = $s+$pr_side; //Regner ud hvor mysql skal starte hvis næste side kaldes
    echo "<a href='?s=$next_s&search=$_GET[search]&selectName=$_GET[selectName]'><font color=\"#4682B4\">Næste</font></a>"; //Udskriver linket "næste"
}
}
echo "</tr></td></table>";

?>
</body>
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