Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 18:55 Der er 27 kommentarer og
1 løsning

Fejl i nyheds-søg?

På http://www.testingit.1go.dk/news.search.php er der en fejl. Hvis man får mere end det angivne antal søgeresultater (jeg angiver tallet i inc.config'en) skal man kunne trykke "Næste" eller trykke på 2'tallet for side 2.
Man så kommer intet frem. Hvad gør jeg galt?

Her er kilden til news.search:


<?php
$title = 'Det Radikale Venstre i Svendborg';
include('header.php');
?>

<h1>Søg efter tekst</h1>

Der søges i overskrift og tekst i de oprettede tekster. Hvis du ikke indtaster et søgeord vil alle resultater blive vist!<br><br>

<form action="news.search.php">
<table><tr>
<td>Søgeord:<br><input type="text" name="q">&nbsp;</td>
<td>Sorter efter:<br><select name="sort"><option value="title">Overskrift</option><option value="author">Forfatter</option><option value="id">Dato</option></select>&nbsp;</td>
<td>Sortering:<br><select name="order"><option value="desc">Faldende [z-a]</option><option value="asc">Stigende [a-z]</option></select></td>
</tr></table>
<input type="submit" value="Udfør">
</form>

<?php
if (isset($_GET['q'])) {
    echo '<hr>';
    echo '<h2>Resultater af din søgning på: "'.$_GET['q'].'"</h2>';
    include('inc.config.php');
    $q =  $_GET['q'];
    $sort = $_GET['sort'];
    $order = $_GET['order'];
    $query = mysql_query("SELECT id,title,author,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM news WHERE title LIKE '%$q%' OR text LIKE '%$q%' ORDER BY $sort $order LIMIT ".$offset.",".$cfg['limit']."") or die(mysql_error());
    if (mysql_num_rows($query) == 0){
        echo 'Ingen resultater af din søgning!<br>';
    } else {
        echo '<table id="list"><tr>';
        echo '<th width="50%">Overskrift</th><th width="50%">Forfatter</th><th nowrap>Dato</th>';
        echo '</tr>';
        while($row = mysql_fetch_assoc($query)) {
            echo '<tr>';
            echo '<td width="50%"><a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a></td>';
            echo '<td width="550%">'.$row['author'].'</td>';
            echo '<td nowrap>'.$row['date'].'</td>';
            echo '</tr>';
        }
        echo '</table>';

        echo '<br>';
        echo ($offset >= $cfg['limit']) ? '<a href="?offset='.($offset-$cfg['limit']).'">Forrige</a> ' : 'Forrige ';
        for ($start=$start_point;$start<$end_point;$start=$start+$cfg['limit']) {
            echo ($offset == $start) ? '<b>'.$page_number++.'</b> ' : '<a href="?offset='.$start.'">'.$page_number++.'</a> ';
        }
        echo ($total > $offset+$cfg['limit']) ? '<a href="?offset='.($offset+$cfg['limit']).'">Næste</a>' : 'Næste';
    }
}
?>

<div class="hr"></div>
<a href="index.php">Nyeste</a>

<?php
include('footer.php');
?>

Og i får alle mine points (udover 2)
Avatar billede jaw Nybegynder
07. juni 2004 - 19:04 #1
sikker på din $offset har en værdi? Altså, mangler du ikke:
$offset =  $_GET['offset']; ?
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:06 #2
Er ik så sikker i php endnu. Hvad menr du?
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:06 #3
HVor skulle den sættes ind?
Avatar billede jaw Nybegynder
07. juni 2004 - 19:07 #4
Jeg er heller ikke så sikker, når det er det med secure servers... Men jeg kan se, at du bruger:
    $q =  $_GET['q'];
    $sort = $_GET['sort'];
    $order = $_GET['order'];
Skal du ikke det samme med $offset?
Avatar billede jaw Nybegynder
07. juni 2004 - 19:07 #5
Samme sted som du har de 3
Avatar billede jaw Nybegynder
07. juni 2004 - 19:12 #6
hov nej, det er i dit link det er galt!
echo ($total > $offset+$cfg['limit']) ? '<a href="?q=$q&sort=$sort&order=$order&offset='.($offset+$cfg['limit']).'">Næste</a>' : 'Næste';
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:13 #7
hvordan ville kode så se ud?
- Så kunne jeg lave Ctrl-C  -  Ctrl-V
Avatar billede jaw Nybegynder
07. juni 2004 - 19:14 #8
Skulle jeg mene at have gjort dér... Prøv at udskifte med den linie du har i din kode nu...
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:20 #10
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 LIMIT 4,4' at line 1
Avatar billede jaw Nybegynder
07. juni 2004 - 19:21 #11
erhm, så må du jo:
echo ($total > $offset+$cfg['limit']) ? '<a href="?q='.$q.'&sort='.$sort.'&order='.$order.'&offset='.($offset+$cfg['limit']).'">Næste</a>' : 'Næste';
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:26 #12
Så virker det!

Du ved ik tilfældigvis hvad der sker for mine knapper??
(Du behøver ik at svare, men læg venligst et svar)
stylesheet:

html,body{margin:0px;padding:0px;}
a,a:visited,a:hover{color:black;}
td {
    background-color: #B2C3D5;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #333333;
}
img {
    border:1px solid #B2C3D5;
    border-width:1px 2px 2px 1px;
    background-color:#B2C3D5;
}
a.menu {
    background-color: #000000;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    color: #333333;
    font-weight: bold;
    border-bottom-width: 5px;
    border-bottom-style: solid;
    border-bottom-color: white;
}
a.menulink {
    display: block;
    width: 100%;
    text-align: left;
    text-decoration: none;
    font-family:arial;
    font-size:14px;
    color: #333333;
    border: 0px;
    border-bottom: 1px solid #FFFFFF;
    font-weight: bolder;
    padding: 5px;
?, FinishOpacity=?, Style=?, StartX=?, StartY=?, FinishX=?, FinishY=?);
}
a.menulink:hover {
    background-color:#6F9CC5;
    border-top: 1px none #FFFFFF;
    border-right: 1px none #FFFFFF;
    border-bottom: 1px solid #FFFFFF;
    border-left: 1px none #FFFFFF;
}
.titel {
    width: 100%;
    text-align: left;
    text-decoration: none;
    font-family:arial;
    font-size:20px;
    color: #333333;
    font-weight: bolder;
    padding:5px 5px 0px;
    border: none;
}
p {
    width: 100%;
    text-align: justify;
    text-decoration: none;
    font-family:arial;
    font-size:12px;
    color: #000000;
    BORDER: none;
    font-weight: normal;
    padding: 0px 5px 5px;
}
.copyright {
    display: block;
    width: 246px;
    text-align: center;
    text-decoration: none;
    font-family:arial;
    font-size:10px;
    color: #333333;
    border: 1px none #FFFFFF;
    font-weight: normal;
    padding: 20px 5px;
    background-color: #FFFFFF;
}
.footer {
    display: block;
    text-align: center;
    text-decoration: none;
    font-family:arial;
    font-size:10px;
    color: #333333;
    font-weight: normal;
}
h1 {
    width: 100%;
    text-align: left;
    text-decoration: none;
    font-family:arial;
    font-size:20px;
    color: #333333;
    font-weight: bolder;
    padding-top: 5px;
    padding-right: 5px;
    padding-left: 5px;
    border: none;
}
h2 {
    width: 100%;
    text-align: left;
    text-decoration: none;
    font-family:arial;
    font-size:12px;
    color: #000000;
    font-weight: bolder;
}
a.author {
    text-decoration: none;
    color: #CCC;
    float: right;
}
a.author:hover {
    text-decoration: none;
}

.hr {
    font-size: 0;
    height: 0;
    margin: 7px 0 7px 0;
    clear: both;
}
ul {
    list-style-type: square;
}
.image {
    background-color: #B2C3D5;
    float: right;
}
.frmobj {
    float: left;
    font-weight: bold;
    padding-top: 3px;
    width: 90px;
}
.frmtext {
    padding-left: 90x;
}
input,textarea,select {
    width: 100%;
    text-align: justify;
    text-decoration: none;
    font-family:arial;
    font-size:12px;
    color: #000000;
    BORDER: none;
    font-weight: normal;
    padding: 0px 5px 5px;
}
form {
    display: inline;
}
table {
    border-collapse: collapse;
}
#list table {
    width: 100%;
}
#list th {
    width: 100%;
    text-align: left;
    text-decoration: none;
    font-family:arial;
    font-size:20px;
    color: #000000;
    font-weight: bolder;
}
#list td {
    vertical-align: top;
    padding: 5px;
}
TD.indhold {
    padding:5px 5px 0px;
    width:480px; /* Prøv at ændre lidt på den for at få det til at passe */
}
TD.indhold P,TD.indhold H1, TD.indhold H2 {
    padding:0px;
}
Avatar billede jaw Nybegynder
07. juni 2004 - 19:28 #13
Hvad mener du med hvad der sker for dine knapper?

Jeg kan dog se, at det samme gælder for din "forrige" knap, der skal du også lige justere linket...
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:30 #14
De er bare så "lange".
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:32 #15
nærmere brede. Og hvad skal der ændres med tilbage-knappen?
Avatar billede jaw Nybegynder
07. juni 2004 - 19:33 #16
i din forrige knap skal du også tilføje ?q='.$q.'&sort=.$sort. osv.
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:34 #17
okay. så det bliver echo ($total > $offset+$cfg['limit']) ? '<a href="?q='.$q.'&sort='.$sort.'&order='.$order.'&offset='.($offset+$cfg['limit']).'">Forrige</a>' : 'Forrige';  ?
Avatar billede jaw Nybegynder
07. juni 2004 - 19:38 #18
echo ($offset >= $cfg['limit']) ? '<a href="?q='.$q.'&sore='.$sort.'&order='.$order.'&offset='.($offset-$cfg['limit']).'">Forrige</a> ' : 'Forrige ';
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:44 #19
ok. Takker
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:46 #20
Fejl... http://www.testingit.1go.dk/news.search.php?q=&sore=title&order=desc&offset=0
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 'desc LIMIT 0,4' at line 1
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:46 #21
Hele koden er således:
<?php
$title = 'Det Radikale Venstre i Svendborg';
include('header.php');
?>

<h1>Søg efter tekst</h1>

Der søges i overskrift og tekst i de oprettede tekster. Hvis du ikke indtaster et søgeord vil alle resultater blive vist!<br><br>

<form action="news.search.php">
<table><tr>
<td>Søgeord:<br><input type="text" name="q">&nbsp;</td>
<td>Sorter efter:<br><select name="sort"><option value="title">Overskrift</option><option value="author">Forfatter</option><option value="id">Dato</option></select>&nbsp;</td>
<td>Sortering:<br><select name="order"><option value="desc">Faldende [z-a]</option><option value="asc">Stigende [a-z]</option></select></td>
</tr></table>
<input type="submit" value="Udfør">
</form>

<?php
if (isset($_GET['q'])) {
    echo '<hr>';
    echo '<h2>Resultater af din søgning på: "'.$_GET['q'].'"</h2>';
    include('inc.config.php');
    $q =  $_GET['q'];
    $sort = $_GET['sort'];
    $order = $_GET['order'];
    $query = mysql_query("SELECT id,title,author,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM news WHERE title LIKE '%$q%' OR text LIKE '%$q%' ORDER BY $sort $order LIMIT ".$offset.",".$cfg['limit']."") or die(mysql_error());
    if (mysql_num_rows($query) == 0){
        echo 'Ingen resultater af din søgning!<br>';
    } else {
        echo '<table id="list"><tr>';
        echo '<th width="50%">Overskrift</th><th width="50%">Forfatter</th><th nowrap>Dato</th>';
        echo '</tr>';
        while($row = mysql_fetch_assoc($query)) {
            echo '<tr>';
            echo '<td width="50%"><a href="news.display.php?id='.$row['id'].'">'.$row['title'].'</a></td>';
            echo '<td width="550%">'.$row['author'].'</td>';
            echo '<td nowrap>'.$row['date'].'</td>';
            echo '</tr>';
        }
        echo '</table>';

        echo '<br>';
        echo ($offset >= $cfg['limit']) ? '<a href="?q='.$q.'&sore='.$sort.'&order='.$order.'&offset='.($offset-$cfg['limit']).'">Forrige</a> ' : 'Forrige ';
        for ($start=$start_point;$start<$end_point;$start=$start+$cfg['limit']) {
            echo ($offset == $start) ? '<b>'.$page_number++.'</b> ' : '<a href="?offset='.$start.'">'.$page_number++.'</a> ';
        }
        echo ($total > $offset+$cfg['limit']) ? '<a href="?q='.$q.'&sort='.$sort.'&order='.$order.'&offset='.($offset+$cfg['limit']).'">Næste</a>' : 'Næste';
    }
}
?>

<div class="hr"></div>
<a href="index.php">Nyeste</a>

<?php
include('footer.php');
?>
Avatar billede jaw Nybegynder
07. juni 2004 - 19:48 #22
no problemo...
og det med din knap, må skyldes et af de steder du har defineret: width=100% i din style - måske:
input,textarea,select {
    width: 100%;
    text-align: justify;
    text-decoration: none;
    font-family:arial;
    font-size:12px;
    color: #000000;
    BORDER: none;
    font-weight: normal;
    padding: 0px 5px 5px;
}

men den er jeg dog ikke 100% på
Avatar billede jaw Nybegynder
07. juni 2004 - 19:51 #23
du har skrevet "sore" i stedet for "sort"
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:55 #24
så hvad skal kode være?
- Får nemlig stadig fejl :(
Avatar billede jaw Nybegynder
07. juni 2004 - 19:57 #25
Får du fejl? Jeg får da ikke fejl mere...
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:57 #26
Sorry... Det virker.. HURAAH!
Avatar billede darkstylerdk Nybegynder
07. juni 2004 - 19:59 #27
Og så R der points ;o)
Avatar billede jaw Nybegynder
07. juni 2004 - 20:00 #28
hehe, fair nok... Takker for point :)
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

Seneste artiklerRSS
09:00
07:52
07:37
07:32
07:02
06:42
12:00
23/10
23/10
23/10
23/10