Gå til innhold

Legge til om ikke eksisterer i siste 5 rader


Anbefalte innlegg

hei.

Jeg ønsker og skjekke om navnet til en bruker f.eks har blit skrevet inn i en rad dem siste 3 innlegga.

Jeg prøvde med denne.

$sqlc1= mysql_query("SELECT * FROM chat WHERE navn='$navn' ORDER BY id DESC LIMIT 0, 3");

if(mysql_num_rows($sqlc1) =="0"){

//Legge til innlegg

}

else {

echo "Du kan ikke skrive i chatten enda";

}

 

Men det funket jo ikke. Noen som har en ide om hvordan det kan funke ?

den velger liksom alle rader, og ignonerer LIMIT 0, 3.

Har det noe med mysql_num_rows funksjonen og gjøre?

Endret av stianiquniez
Lenke til kommentar
Videoannonse
Annonse
hei.

Jeg ønsker og skjekke om navnet til en bruker f.eks har blit skrevet inn i en rad dem siste 3 innlegga.

Jeg prøvde med denne.

$sqlc1= mysql_query("SELECT * FROM chat WHERE navn='$navn' ORDER BY id DESC LIMIT 0, 3");

if(mysql_num_rows($sqlc1) =="0"){

//Legge til innlegg

}

else {

echo "Du kan ikke skrive i chatten enda";

}

 

Men det funket jo ikke. Noen som har en ide om hvordan det kan funke ?

den velger liksom alle rader, og ignonerer LIMIT 0, 3.

Har det noe med mysql_num_rows funksjonen og gjøre?

5911590[/snapback]

 

Får du alltid ut at personen ikke kan skrive? Det du sier er "velg de tre siste innleggene som Ola Dunk har skrevet". Hvis han overhode har skrevet noe i chatten din vil resultat aldri bli 0.

 

Så vidt jeg forstår ønsker du å vite om Ola Dunk har postet et innlegg som er blant de tre siste innleggene lagt inn (noe sånt?)

 

Da må du endre where-clausen din til noe slikt som dette:

$query = mysql_query("select navn from chat where navn not in(select navn from chat where navn=$navn) limit 0,3");
if(!mysql_num_rows($query) == 0){
// post innlegg
}else{
// skriv ut melding til bruker om at han ikke kan chatte enda
}

 

Edit: liten kortslutning i hjernen, denne koden vil aldri funke.

Endret av CruellaDeVille
Lenke til kommentar

Uhhmm ... da får du jo ut de 3 siste innleggene som ikke er skrevet av den brukeren. Poenget er jo å bare finne de 3 siste og sjekke om en eller flere av de er skrevet av den brukeren. Altså:

SELECT * FROM chat WHERE navn = '$navn' AND navn in (SELECT navn FORM chat ORDER BY id DESC LIMIT 0, 3)

Endret av Ernie
Lenke til kommentar
Uhhmm ... da får du jo ut de 3 siste innleggene som ikke er skrevet av den brukeren. Poenget er jo å bare finne de 3 siste og sjekke om en eller flere av de er skrevet av den brukeren. Altså:

SELECT * FROM chat WHERE navn = '$navn' AND navn in (SELECT navn FORM chat ORDER BY id DESC LIMIT 0, 3)

5912241[/snapback]

 

I know. Det var derfor jeg redigerte innlegget mitt til å si at det aldri ville fungere.

 

Litt kortslutning i hjernen. sorry

Lenke til kommentar

hmm, den blir bare skrevet inn og inn, =)

Scriptet ser sli ut nå =)

$sqlc2 = mysql_query("SELECT * FROM chat WHERE navn = '$navn' AND navn in (SELECT navn FORM chat ORDER BY id DESC LIMIT 0, 3)");
if(mysql_num_rows($sqlc2)=="0") {
//skrive inn
}
else {
//feilmld
}

Endret av stianiquniez
Lenke til kommentar
hmm, den blir bare skrevet inn og inn, =)

Scriptet ser sli ut nå =)

$sqlc2 = mysql_query("SELECT * FROM chat WHERE navn = '$navn' AND navn in (SELECT navn FORM chat ORDER BY id DESC LIMIT 0, 3)");
if(mysql_num_rows($sqlc2)=="0") {
//skrive inn
}
else {
//feilmld
}

5912352[/snapback]

 

Tror (kanskje) jeg har løsningen for deg:

Du velger ut det antall navn du skal sammenligne med, putter de i en array. hvis verdien $navn finnes i arrayet skriv ut feilmelding, hvis ikke post data:

 

$sqlc2 = mysql_query("SELECT navn FROM chat LIMIT 0, 3)");
$row = mysql_fetch_array($query);
if(!in_array($navn, $row))
//skrive inn
}
else {
//feilmld
}

 

Du trenger ikke alt (*), du skal bare sammenligne navn. Du trenger ikke order by, eller id eller desc.

 

Prøv denne, virker den kan jeg legge meg med god samvittighet!

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...