Avatar billede egeriis Nybegynder
05. februar 2007 - 15:45 Der er 9 kommentarer og
1 løsning

Kriterier er opfyldt, men der kommer ingen resultater

SELECT answerto, MAX( timestamp ) AS timestamp
FROM messages
WHERE recipient = 'RE'
AND `show` =1
AND `answerto`!=0
GROUP BY answerto


Hvorfor giver dette ingen return på trods af der ér rækker som opfylder kriterierne?

Hvis jeg fjerner answerto kriteriet, så kommer der nogle frem, men ellers ikke.
Avatar billede fixxxer Nybegynder
05. februar 2007 - 16:01 #1
I hvilken sammenhæng bruger du det?
Avatar billede egeriis Nybegynder
05. februar 2007 - 16:07 #2
Skal hente det højeste timestamp fra hver answerto-ID
Avatar billede fixxxer Nybegynder
05. februar 2007 - 16:09 #3
Jeg tænkte mere om du brugte i et PHP script, eller lignende.
Avatar billede egeriis Nybegynder
05. februar 2007 - 16:10 #4
Ja, det gør jeg.
Avatar billede fixxxer Nybegynder
05. februar 2007 - 16:12 #5
Så post den relevante kode der har med den SQL at gøre.. det er ganske sikkert en fejl i dit PHP-script og ikke i selve SQL.

Du kan jo evt. prøve at smide den SQL streng ind i en frontend til mysql-databasen og se hvilket resultat den giver der - hvis du altså ikke tror på at det kan være en fejl i dit php-script.
Avatar billede egeriis Nybegynder
05. februar 2007 - 16:15 #6
Jeg har prøvet at smide den i phpMyAdmin, der kommer ingen resultater.

Men her er den del af PHP-koden:

$q = $db->query("SELECT answerto,MAX(timestamp) as timestamp FROM " . $tables['messages'] . " WHERE recipient='" . $user . "' AND answerto!=0 AND `show`=1 GROUP BY answerto")
    or die($db->error(115));

while ($r = mysql_fetch_array($q)) {

    $logq = $db->query("SELECT MAX(timestamp) FROM " . $tables['messagelog'] . " WHERE mid='" . $r['answerto'] . "'")
        or die($db->error(117));

    list($timestamp) = mysql_fetch_array($logq);
    if ($r['timestamp'] > $timestamp) $count++;

}
Avatar billede fixxxer Nybegynder
05. februar 2007 - 16:22 #7
Hvis der ikke er noget resultat på en direkte forespørgelse i databasen, så er der ikke noget resultat.

Prøv evt.

SELECT answerto, MAX( timestamp ) AS timestamp
FROM messages
WHERE recipient = 'RE'
AND `show` =1
AND `answerto` <> 0
GROUP BY answerto
Avatar billede egeriis Nybegynder
05. februar 2007 - 16:37 #8
Nå ja, selvfølgelig, det er da min egen fejl. Garrh. Det er for sent på arbejdet ;)
Avatar billede fixxxer Nybegynder
05. februar 2007 - 19:13 #9
Fik du det til at virke?
Avatar billede egeriis Nybegynder
06. februar 2007 - 21:51 #10
Ja, det gjorde jeg. Tror bare jeg snupper pointene selv :)
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
Computerworld tilbyder specialiserede kurser i database-management

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