06. juli 2005 - 01:30Der er
14 kommentarer og 1 løsning
Der skal KUN vises private beskeder.
$br = mysql_query("SELECT * FROM brugersystem WHERE Brugernavn = '$_SESSION[Brugernavn]'"); $bruger = mysql_fetch_array($br);
$rest = mysql_query("SELECT * FROM textsystem WHERE rum = '$bruger[rum]' && timee > $_SESSION[roomtxt] && privat = 0 OR privat = 1 AND tilbruger = $bruger[id] ORDER BY id DESC LIMIT 30"); while($rowt = mysql_fetch_array($rest)){
Denne kode viser kun private beskeder til den person som de er sendt til, men uheldigvis viser den det i ALLE de rum man er i, og de forsvinder ikke når "timee" er udløbet..!
Det første jeg lige ville prøve, var at indsætte nogen paranteser, for måske MySQL misforstår din hensigt lidt. Jeg har forsøgt:
$rest = mysql_query("SELECT * FROM textsystem WHERE (rum = '$bruger[rum]'( AND (timee > $_SESSION[roomtxt]) AND (privat = 0 OR privat = 1) AND (tilbruger = $bruger[id]) ORDER BY id DESC LIMIT 30");
Måske ikke rigtig, så check dem lige.
Og forresten kunne du nok have forsvaret at tilføje dette til dit tidligere spørgsmål, der misforstod jeg dig - beklager...
$rest = mysql_query("SELECT * FROM textsystem WHERE ( rum = '$bruger[rum]' AND timee > $_SESSION[roomtxt] AND privat = 0 ) OR ( privat = 1 AND tilbruger = $bruger[id] ) ORDER BY id DESC LIMIT 30");
Jeg lavede den sådan, men har stadigvæk samme problem som før: [quote] Denne kode viser kun private beskeder til den person som de er sendt til, men uheldigvis viser den det i ALLE de rum man er i, og de forsvinder ikke når "timee" er udløbet..! [/quote]
Hm, så prøv lige at få den udskrevet for at se, om de variabler du sender nu også er de rigtige:
echo "SELECT * FROM textsystem WHERE ( rum = '$bruger[rum]' AND timee > $_SESSION[roomtxt] AND privat = 0 ) OR ( privat = 1 AND tilbruger = $bruger[id] ) ORDER BY id DESC LIMIT 30");
echo "SELECT * FROM textsystem WHERE ( rum = '$bruger[rum]' AND timee > $_SESSION[roomtxt] AND privat = '0' ) OR ( privat = '1' AND tilbruger = '$bruger[id]' ) ORDER BY id DESC LIMIT 30");
giver resultatet:
Parse error: parse error, expecting `','' or `';'' in c:\apache\htdocs\websitev2\v2\chat3\upd.php on line 10
Nok den sidste afsluttende parantes der giver dig problemer: echo "SELECT * FROM textsystem WHERE ( rum = '$bruger[rum]' AND timee > $_SESSION[roomtxt] AND privat = '0' ) OR ( privat = '1' AND tilbruger = '$bruger[id]' ) ORDER BY id DESC LIMIT 30";
$rest = mysql_query("SELECT * FROM textsystem WHERE ( rum = '$bruger[rum]' AND timee > $_SESSION[roomtxt] AND privat = '0' ) OR ( privat = '1' AND tilbruger = '$bruger[id]' AND rum = '$bruger[rum]' AND timee > $_SESSION[roomtxt] ) ORDER BY id DESC LIMIT 30");
Ok, så er variablerne jo nok gode nok. Så er det et spørgsmål om dine paranteser, det må det være.
SELECT * FROM textsystem WHERE (rum = '3') AND (timee > 1120606021) AND (privat = '0' OR privat = '1') AND (tilbruger = '1') ORDER BY id DESC LIMIT 30
Men hvis du så skifter rum, og så prøver at udskrive den igen, får du så WHERE rum = '3' eller WHERE rum = 'rigtige-rum' ?
Synes godt om
Ny brugerNybegynder
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.