Avatar billede blood Nybegynder
22. maj 2001 - 10:55 Der er 19 kommentarer og
1 løsning

Udskriv kun hvis

Jeg bruger denne for at hente noget text fra mysql

$result = mysql_query(\"SELECT * FROM beskeder WHERE til = \'$brugernavn\' OR fra = \'$brugernavn\' OR til = \'0\' ORDER by id DESC\");

Jeg vil også godt have den til at kun udskrive hvis logtid er støre end logintid men jeg kan ikke få den til det. + at den jo på samme tid kun skal hente texten hvis ens brugernavn er i feltet til eller fra eller hvis til er 0 men det har jeg lavet

logtid bliver hentet i tabellen beskeder og logintid bliver included fra en anden fil

Fårstår i?
Avatar billede barefoot Nybegynder
22. maj 2001 - 11:56 #1
Kan du ikke vise os et eksempel på logtid, og logintid ?
Så vi kan se hvordan det er sat op.
Det ville altså også være rart hvis du kunne sende noget mere kode! Det er altså svært med så lidt...
Avatar billede blood Nybegynder
22. maj 2001 - 12:23 #2
Her er noget mere kode

\"logtid\" er en almennelig time() som bliver gemt på hver besked når folk skriver på chatten
\"logintid\" er også en almennelig time() som bliver gemt i bruger oplysningerne hver gang brugeren loggeer ind p chatten og bliver lagt ind i variablen $logintid

Så er det jeg vil have den til at ikke udskrive de beskeder på chatten er er skrevet før brugeren er logget ind

Jeg har prøvet med

$result = mysql_query(\"SELECT * FROM beskeder WHERE til = \'$brugernavn\' OR fra = \'$brugernavn\' OR til = \'0\' AND logtid > \'$logintid\' ORDER by id DESC\");

Men det virker ikke

Mer her er noget mere kode




$result = mysql_query(\"SELECT * FROM beskeder WHERE til = \'$brugernavn\' OR fra = \'$brugernavn\' OR til = \'0\'
ORDER by id DESC\");
print \"
        <HTML>\\n
        <HEAD>\\n
        <META HTTP-EQUIV=\\\"Refresh\\\" CONTENT=\\\"$brugerconfigupdate; URL=chat_main.php\\\">\\n
        <TITLE>[$configchatnavn]</TITLE>\\n\\n\";

        while($row = mysql_fetch_array($result)){
                $beskedtid = $row[\'tid\'];
                $beskedtil = $row[\'til\'];
                $beskedfra = $row[\'fra\'];
                $besked = $row[\'beskeder\'];   
                if ($brugerconfigtid == \"ja\"){
                        if($beskedtil == \"0\"){
                                print \"
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext>$beskedfra</FONT> :
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext>$besked</FONT> :
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext COLOR=#FF00FF><I>$beskedtid</I></FONT><BR>\\n
                                \";
                        }
                        else {
                                print \"
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext COLOR=$configprivatfarve>$beskedfra >> $beskedtil</FONT> :
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext COLOR=$brugerconfigbeskedfarve>$besked</FONT>    :
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext COLOR=#FF00FF><I>$beskedtid</I></FONT><BR>\\n
                                \";
                        }
                }
                else {

                        if($beskedtil == \"0\"){
                                print \"
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext>$beskedfra</FONT> :
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext>$besked</FONT><BR>\\n
                                \";
                        }
                        else {
                                print \"
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext COLOR=$configprivatfarve>$beskedfra >> $beskedtil</FONT> :
                                        <FONT FACE=Verdana SIZE=$brugerconfigtext COLOR=$brugerconfigbeskedfarve>$besked</FONT><BR>\\n
                                \";
                        }

                }
               
        }
?>
Avatar billede andreas Nybegynder
22. maj 2001 - 13:46 #3
man, tager det ikke ret lang tid at få skrevet den side ud ???
Avatar billede blood Nybegynder
22. maj 2001 - 14:01 #4
andreas >> Nææ ca. 0,005 sek (localt) hvorfor?
Avatar billede blood Nybegynder
22. maj 2001 - 14:01 #5
Men kan du svare på det?
Avatar billede daae Nybegynder
22. maj 2001 - 14:16 #6
Prøv med:

$result = mysql_query(\"
SELECT *
FROM beskeder
WHERE
(til = \'$brugernavn\' OR fra = \'$brugernavn\' OR til = \'0\')
AND (logtid > \'$logintid\') ORDER by id DESC\");
Avatar billede andreas Nybegynder
22. maj 2001 - 14:20 #7
jeg kunne sikkert godt svare på det, men har ikke lige tid. Lokalt.. jamen der går det også meget hurtigere. Den skal være på 0,003 på nettet *S*
Avatar billede alvion Nybegynder
22. maj 2001 - 14:20 #8
Hvilken felttype gemmer du \"logtid\" i? DATE, DATETIME, TIME eller TIMESTAMP?
Avatar billede blood Nybegynder
22. maj 2001 - 14:46 #9
alvion >>  Jeg gemmer det meste i varchar
daae >> Gider ikke endgang teste :o)
Avatar billede daae Nybegynder
22. maj 2001 - 14:51 #10
Blood: Du kunne nu godt teste det for at se, at afgrænsningen virker med paranteser :o)

Ang. Alvions kommentar og feltet \'logtid\' så skal det gemmes som INT eller som en af Alvions forslag for at du kan sammenligne på det...
Avatar billede blood Nybegynder
22. maj 2001 - 14:54 #11
daae >> Hvor lang til har du programeret? Jeg har programeret i php/mysql i snart 2 år. Jeg ved godt hvad man kan og hvad man ikke kan. Og jo man kan godt samline tal i varchar.
Avatar billede daae Nybegynder
22. maj 2001 - 14:57 #12
blood >> Jeg har programmeret hele mit liv ... og hvis du kan sammenligne tal, der er skrevet i varchar, så prøv at sammenligne 2 og 12 og se, hvad der er størst... det vil 2 være, da 2 er større end 1, den første karakter i strengen \'12\'.

Så derfor: Brug INT eller lign. for at sammenligne tal.
Avatar billede blood Nybegynder
22. maj 2001 - 15:01 #13
daae >> Det er måske også derfor jeg har en tidstælder med inde i chatten som tælder online tid nu og online tid ialt og som er laver i varchar
Avatar billede daae Nybegynder
22. maj 2001 - 15:08 #14
Det giver ingen mening.

Et felt af typen varchar er en streng. Derfor vil MySQL sammenligne karakter for karakter og ikke sammenligne på hele værdien.

Derfor kan det ikke lade sig gøre at sammenligne på varchar i MySQL. Du bliver nødt til at bruge et værdi-felt som INT. Ellers vil \'3\' være større end \'12312\'.
Avatar billede blood Nybegynder
22. maj 2001 - 15:19 #15
daae >> Se selv!
http://cfp11299.d2g.com ALT er lavet i varchar
bruger: sss
pass: sss


Og jeg har prøvet at ændre \'logtid\' og \'logintid\' til INT og det gav ingen forskel så derfor har jeg ændret den tilbage
Avatar billede alvion Nybegynder
22. maj 2001 - 15:52 #16
daae -> Man kan godt sammenligne strenge og få noget ud af det, men som du siger er det en anden form for sammenligning.

blood -> Hvis du skal kunne lave en fornuftig sammenligning, skal din logtid i VARCHAR\'en gemmes i formatet \"YYYYMMDD\", \"YYYY-MM-DD\" eller lignende, så kan sammenligningen godt foretages.

Fortæl hvilket format det er gemt i, så skal jeg nok lave den korrekte sql.
Avatar billede blood Nybegynder
22. maj 2001 - 17:29 #17
Det er gemt med en almennelig time() (Unix time)
Så det må vel være MMDDYYYYHHMMSS Ikke sikker :o)
Avatar billede jd Nybegynder
22. maj 2001 - 17:42 #18
blood-> Det er altså rigtigt - det SKAL være en INT (eller tinyint, bigint eller lign.) for at sammenligne som du vil.

Det er fint at gemme som et timestamp (time())...

- Jonas
Avatar billede alvion Nybegynder
22. maj 2001 - 18:12 #19
Nej hvis du bare kalder time() så gemmer du \"antallet af sekunder der er gået siden 1. januar 1970\" - dvs. et tal. Og SÅ har daae og jd ret, det kan du ikke sammenligne på, med mindre din felttype også er et tal.
Avatar billede blood Nybegynder
27. maj 2001 - 18:28 #20
Hmmmm :o)
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