Avatar billede klaaes Nybegynder
21. august 2005 - 12:53 Der er 7 kommentarer og
1 løsning

Skriv fra MySQL

Her er lidt hjemmebryg, som ikke virker efter hensigten:

<?php
if (isset($_GET['q'])) {
    echo '<hr>';
    echo '<h2>Resultater af din søgning på: "'.$_GET['q'].'"</h2>';
    include('config.php');
    $q =  $_GET['q'];
    $sort = $_GET['sort'];
    $order = $_GET['order'];
    $query = mysql_query("SELECT id,header,name,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE (header LIKE '%$q%' OR message LIKE '%$q%') ORDER BY $sort $order LIMIT $offset,$range") 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="40%">Overskrift</th><th width="30%">Forfatter</th><th width="30%">Dato</th><th nowrap>Indlæg</th>';
        echo '</tr>';
        while($row = mysql_fetch_assoc($query)) {
            echo '<tr>';
            echo "<td width='40%'>";
            if ($row[parent] == 0){
            echo "<a href='laes.php?id=$row[id]'>$row[header]</a></b></td>";
            } else {
            echo "<a href='laes.php?id=$row[id]'>".mysql_result(mysql_query("SELECT header FROM sladder WHERE id=&row[parent]"),0)."</a></b></td>";
            }
            echo '<td width="30%">'.$row['name'].'</td>';
            echo '<td width="30%">'.$row['date'].'</td>';
            echo '<td nowrap>'.mysql_result(mysql_query("SELECT COUNT(*) FROM sladder WHERE parent=$row[id]"),0).'</td>';
            echo '</tr>';
        }
        echo '</table>';
    }
    echo '<br>';

    $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM sladder WHERE parent=0 AND (header LIKE '%$q%' OR message LIKE '%$q%')"),0);
    if ($offset >= $range) {
        $forrige = $offset-$range;
        echo "<a href='?q=$q&sort=$sort&order=$order&offset=$forrige'>Forrige</a> | ";
    } else {
        echo 'Forrige | ';
    }
    if ($antal > $offset+$range) {
        $naeste = $offset+$range;
        echo "<a href='?q=$q&sort=$sort&order=$order&offset=$naeste'>Næste</a>";
    } else {
        echo 'Næste';
    }
}
?>

Det er et søge-script, som jeg skal udvide, så det også kan søge i kommentarerne inden i trådene.
Det nye ved scriptet er:

if ($row[parent] == 0){
            echo "<a href='laes.php?id=$row[id]'>$row[header]</a></b></td>";
            } else {
            echo "<a href='laes.php?id=$row[id]'>".mysql_result(mysql_query("SELECT header FROM sladder WHERE id=&row[parent]"),0)."</a></b></td>";
            }

Men den reagerer fuldstændig ligesom, da der bare stod:

echo "<a href='laes.php?id=$row[id]'>$row[header]</a></b></td>";


Hjælp søges!
Avatar billede bromer Nybegynder
21. august 2005 - 12:58 #1
Og du har undersøgt at $row['parent'] er noget andet end 0?
Avatar billede klaaes Nybegynder
21. august 2005 - 13:04 #2
Jeg søgte på et tilfældigt ord(ordet 'ved'). Og der finder den fem indlæg. 2 af dem er det første indlæg i en tråd(parent=0) og de tre andre er bare indlæg i en anden tråd(parent!=0).

Så det er jeg ret sikker på.
Avatar billede bromer Nybegynder
21. august 2005 - 13:07 #3
Men du har rent faktisk ikke undersøgt om din kode er enig? Jeg kan da egentlig se fejlen nu. Du henter ikke parent med ud i din SQL.
Avatar billede bromer Nybegynder
21. august 2005 - 13:10 #4
Hvilket vil sige at du nok skal have følgende:

$query = mysql_query("SELECT id,header,name,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE (header LIKE '%$q%' OR message LIKE '%$q%') ORDER BY $sort $order LIMIT $offset,$range") or die(mysql_error());

om til:

$query = mysql_query("SELECT id,parent,header,name,DATE_FORMAT(date,'%e/%c-%y %T') AS date FROM sladder WHERE (header LIKE '%$q%' OR message LIKE '%$q%') ORDER BY $sort $order LIMIT $offset,$range") or die(mysql_error());
Avatar billede klaaes Nybegynder
21. august 2005 - 13:12 #5
Nu skete der noget, men jeg får denne fejl:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /customers/123y.dk/123y.dk/httpd.www/falkobilleder/forum/soeg.php on line 55


Linie 55:
echo "<a href='laes.php?id=$row[id]'>".mysql_result(mysql_query("SELECT header FROM sladder WHERE id=&row[parent]"),0)."</a></b></td>";
Avatar billede bromer Nybegynder
21. august 2005 - 13:29 #6
Det er da også forkert. Tror du ikke du vil have et dollar-tegn istedet så det bliver:

echo "<a href='laes.php?id=$row[id]'>".mysql_result(mysql_query("SELECT header FROM sladder WHERE id=$row[parent]"),0)."</a></b></td>";
Avatar billede klaaes Nybegynder
21. august 2005 - 20:08 #7
Hov, det var noget værre noget..

Tak for hjælpen, bromer.
Avatar billede bromer Nybegynder
21. august 2005 - 20:14 #8
Det var så lidt.
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