22. maj 2001 - 10:55Der 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
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...
\"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\";
$result = mysql_query(\" SELECT * FROM beskeder WHERE (til = \'$brugernavn\' OR fra = \'$brugernavn\' OR til = \'0\') AND (logtid > \'$logintid\') ORDER by id DESC\");
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.
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.
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\'.
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.
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.
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.