Avatar billede hmmhelpinghmm Nybegynder
28. juli 2004 - 18:39 Der er 9 kommentarer og
1 løsning

Hjælp til mysql sætning!

Jeg har brug for hjælp til at lave en mysql sætning, sikkert ret enkelt!

Det den skal er i tekst dette:

Hente alle felter fra chat hvor rum = en variable

(KUN de 10 sidste meddelser)

noget med

$sql = "SELECT * FROM chat WHERE rum = '$rum' ORDER BY id ASC"

Det jeg ikke kan er at få den til kun at hente de ti sidste rækker, og så en sætning mere der sletter dem derover i det angivende rum

$del = "DELETE FROM chat WHERE rum = '$rum'"

Igen kun dem der er overnover de 10 sidste fra det rum,

spørg hvis i ikke forstår,
på forhånd tak :)
Avatar billede kasper.h Nybegynder
28. juli 2004 - 18:44 #1
$sql = "SELECT * FROM chat WHERE rum = '$rum' ORDER BY id ASC LIMIT 10"
Avatar billede kasper.h Nybegynder
28. juli 2004 - 18:45 #2
og så skal det være DESC i stedet for ASC, hvis det skal være de 10 højeste (sidste) id'er den skal hente.
Avatar billede hmmhelpinghmm Nybegynder
28. juli 2004 - 18:45 #3
er det så de ti sidste, er det så ikke de ti første?
Avatar billede hmmhelpinghmm Nybegynder
28. juli 2004 - 18:45 #4
ok, hvad så når den skal slette demi den næste sætning, hvad gør jeg der?
Avatar billede hmmhelpinghmm Nybegynder
28. juli 2004 - 18:53 #5
og så en sætning mere der sletter dem derover i det angivende rum

$del = "DELETE FROM chat WHERE rum = '$rum'"

Igen kun dem der er overnover de 10 sidste fra det rum,
Avatar billede kasper.h Nybegynder
28. juli 2004 - 18:53 #6
Du kan f.eks hente den højeste id, og slette alle felter hvor id < den højeste-10. Jeg tror ikke du kan gøre det i en query uden at bruge subqueries, hvilket kun er understøttet i de sidste beta udgaver af MySQL.
Avatar billede hmmhelpinghmm Nybegynder
28. juli 2004 - 18:55 #7
ok, takker, det gør jeg så! :)
Avatar billede kasper.h Nybegynder
28. juli 2004 - 18:56 #8
:)
Avatar billede hmmhelpinghmm Nybegynder
28. juli 2004 - 20:15 #9
Jeg kom i tanke om det jo gerne skal være den nyeste der står nederst, hvordan kan jeg det, or hvis jeg siger ASC så er det jo de ti ældste der bliver vist, kan man ikke sortere sådan at det er DESC, og så senere lave den modsat, eller hvad?


<title>Chat / © FRIENDSAVISEN</title>

<?

$rum = $_GET['rum'];

if ( $rum == "" ) {
    $rum = "friends";
}

include("access.php");
$hch = mysql_query("SELECT * FROM chat WHERE rum = '$rum' ORDER BY id DESC LIMIT 1")or die("MySQL fejl: " . mysql_error());
while($goc = mysql_fetch_array($hch)) {

echo "<b>$goc[navn]: </b>";
echo "$goc[chat]<br>";


}
?>
Avatar billede kasper.h Nybegynder
24. september 2004 - 20:28 #10
det nemmeste er at køre en ny query, hvor du skriver ASC i stedet for DESC.
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