Avatar billede elskermad.dk Nybegynder
16. januar 2003 - 17:03 Der er 11 kommentarer og
1 løsning

MySQL-sætning som giver ingenting! :)

$visantalmsg = "25";
$result = mysql_query("select id from chat_msg") or die(mysql_error());
$antalmsg = mysql_num_rows($result);
$framsg = $antalmsg-$visantalmsg;

$foresp = mysql_query("SELECT * FROM chat_msg ORDER BY id DESC LIMIT $framsg, $visantalmsg") or die(mysql_error());

Jeg skal bruge dette til min chat således at det bliver muligt at kunne se teksten fra bunden og op istedet for om vendt, men som det er nu, så udskriver den ikke nogle rækker, hvad er fejlen?

- MAMSTERen
Avatar billede jakoba Nybegynder
16. januar 2003 - 17:11 #1
$visantalmsg = 25;    // uden "-tegn om. det er et tal.

men det er en lille fejl, php kompenserer ofte korrekt for den.
hvis der ikke kommer nogen fejlmeldinger, så prøv at debugge lidt.

echo "framsg, antalmsg, visantalmsg = " .$framsg .", " .$antalmsg .", " .$visantalmsg;

mvh JakobA
Avatar billede elskermad.dk Nybegynder
16. januar 2003 - 17:19 #2
det med "-tegnet hjalp ikke, og forstår ikk det andet! :( Skal det i mysql queryen?
Avatar billede jakoba Nybegynder
16. januar 2003 - 17:24 #3
næe skriv det som en php-kommando for sig selv.

$visantalmsg = "25";
$result = mysql_query("select id from chat_msg") or die(mysql_error());
$antalmsg = mysql_num_rows($result);
$framsg = $antalmsg-$visantalmsg;

$foresp = mysql_query("SELECT * FROM chat_msg ORDER BY id DESC LIMIT $framsg, $visantalmsg") or die(mysql_error());

echo "framsg, antalmsg, visantalmsg = " .$framsg .", " .$antalmsg .", " .$visantalmsg ."<br>";

så vi får at vide hvad der står i de variable på det tidspunkt.
Avatar billede elskermad.dk Nybegynder
16. januar 2003 - 17:32 #4
dette er hvad den så udskriver:
framsg, antalmsg, visantalmsg = 676, 701, 25
Avatar billede jakoba Nybegynder
16. januar 2003 - 17:35 #5
det skulle så føre til at de 25 først indtastede linier (dem med lavest id) bliver udskrevet.

hvis du vil have de 25 sidst indtastede (dem med højest id) skal det være:

$foresp = mysql_query("SELECT * FROM chat_msg ORDER BY id DESC LIMIT 0, $visantalmsg") or die(mysql_error());
Avatar billede elskermad.dk Nybegynder
16. januar 2003 - 17:37 #6
okay... havde jeg ikk tænkt på!
Men jeg skal have sådan at den vender rækkefølgen, således at de med de højeste id-værdier kommer til at være nederst når de bliver udskrevet! men der skal stadig kun være 25 rækker... Hvordan gøres det?
Avatar billede jakoba Nybegynder
16. januar 2003 - 17:41 #7
$foresp = mysql_query("SELECT * FROM chat_msg ORDER BY id ASC LIMIT $framsg, $visantalmsg") or die(mysql_error());
Avatar billede elskermad.dk Nybegynder
16. januar 2003 - 17:43 #8
så viser den igen ikke noget!
Avatar billede elskermad.dk Nybegynder
16. januar 2003 - 17:47 #9
spooky! nu gør den! mange tak for hjælpen! læg et svar..
lige en hurtig ting sådan jeg slipper for at oprette en spm hvis du gider.. Hvordan finder man ud af om en variable indeholder et mellemrum?
Avatar billede jakoba Nybegynder
16. januar 2003 - 17:47 #10
Hvordan ser den kode ud der står nedenunder? Det du bruger til at udskrive med.

ny testlinie:
echo der blev funder " .mysql_num_rows( $foresp ) ." rækker<br>";
Avatar billede jakoba Nybegynder
16. januar 2003 - 20:14 #11
ved at tilføje et bogstav på begge sider i en testlinie:
    echo "variabel er >" .$variabel ."< <br>";
så kan du se det i udskrivten.
eller du kan teste direkte med explode funktionen
    if ( count( explode( " ", $variabel ) ) >= 2 ) {
        // der er et eller flere blanktegn i
    }

mvh JakobA
Avatar billede elskermad.dk Nybegynder
16. januar 2003 - 21:02 #12
mange 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