25. april 2004 - 20:35Der er
32 kommentarer og 1 løsning
Tjekke forskel på NOW()
Heysa!
Jeg skal have en lille ting som siger noget lign: Du har x antal nye beskeder i din gb.
Hver gang brugeren logger ind, logges det tidspunkt han gør det på. I feltet last_login. Den bliver sat med NOW().
Hver gang en burger skriver i en anden brugers gb, bliver tidspunktet for det sat. Så burde det vel være muligt, at få php til at tælle hvor mange indlæg der har været, siden han sidst var logget ind, ikke?
Men hvordan i alverden skal det script se ud? Og kan man gøre det på den måde?
Har lavet 2 queryes:
$query_log = mysql_query "SELECT last_login FROM du_users WHERE username='$Bruger'"; $result_log = mysql_query($query_log); $row_log = mysql_fetch_array($result_log) or die(mysql_error());
$query_gb = mysql_query "SELECT tid FROM du_bruger_gb WHERE username='$Bruger'"; $result_gb = mysql_query($query_gb); $row_gb = mysql_fetch_array($result_gb) or die(mysql_error());
Skal virksomheder stå stærkere mod angreb og kunne udvikle sig, skal sikkerhed, drift og forretning tænkes sammen. Det er tanken bag Jysk IT’s ambition om at skabe en “sikker fremtid” for kunderne.
Men er lige kommet til at tænke på noget. Denne besked skal jo vises når brugeren er logget ind, men hvis brugeren lige er logget, er tidspunktet jo blevet ændret.
Ergo vil der vel næppe være nogle indlæg, i følge tælleren, han ikke har læst, har jeg ret i dette? Hvis ja, hvordan kan det så laves?
Kan du ikke, når han logger ind, gemme det gamle last_login i fx. $_SESSION, og så opdatere last_login i databasen. Og så bare bruge den (i session) til din sql?
$update = mysql_query("UPDATE du_users SET last_login=NOW() WHERE username='$Bruger'") or die (mysql_error());
$query_gb = mysql_query ("SELECT tid FROM du_bruger_gb WHERE username='$Bruger'"); $result_gb = mysql_query($query_gb); $row_gb = mysql_fetch_array($result_gb) or die(mysql_error());
$dato_query = mysql_query ("SELECT count(1) FROM du_bruger_gb WHERE tid > $last_login"); $dato_result = mysql_query($dato_query); $dato_row = mysql_fetch_array($dato_result) or die(mysql_error());
print "".$dato_row[tid]."";
Fejl:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource on line 27.
Linie 27: $row_log = mysql_fetch_array($result_log) or die(mysql_error());
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1
$query_log = mysql_query ("SELECT last_login FROM du_users WHERE username='$Bruger'"); $result_log = mysql_query($query_log) or die(mysql_error()); $row_log = mysql_fetch_array($result_log) or die(mysql_error());
$update = mysql_query("UPDATE du_users SET last_login=NOW() WHERE username='$Bruger'") or die (mysql_error());
$query_gb = mysql_query ("SELECT tid FROM du_bruger_gb WHERE username='$Bruger'"); $result_gb = mysql_query($query_gb); $row_gb = mysql_fetch_array($result_gb) or die(mysql_error());
$dato_query = mysql_query ("SELECT count(1) FROM du_bruger_gb WHERE tid > $last_login"); $dato_result = mysql_query($dato_query); $dato_row = mysql_fetch_array($dato_result) or die(mysql_error());
Virkede ikke.. Får stadig You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1
hvis jeg altså forstod hvad du sagde rigtigt. Har rettet det til: $dato_query = mysql_query ("SELECT count(1) FROM du_bruger_gb WHERE tid > $last_login"); $dato_row = mysql_fetch_array($dato_query) or die(mysql_error());
$query_log = mysql_query ("SELECT last_login FROM du_users WHERE username='$Bruger'"); $result_log = mysql_query($query_log) or die("sql-1: " . mysql_error()); $row_log = mysql_fetch_array($result_log) or die("sql-2: " . mysql_error());
Fejlen ligger i sql-1.
sql-1: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #5' at line 1
$query_log = mysql_query ("SELECT last_login FROM du_users WHERE username='$Bruger'"); $result_log = mysql_query($query_log) or die("sql-1: " . mysql_error()); $row_log = mysql_fetch_array($result_log) or die("sql-2: " . mysql_error());
du bruger mysql_query() på en sql statement. Dette giver en resource. Dette smider du igen til mysql_query() som brokker sig.. Jeg forstår ikke helt hvorfor du bruger mysql_query() to gange..
De 3 linjer skal se sådan her ud:
$query_log = mysql_query ("SELECT last_login FROM du_users WHERE username='$Bruger'"); $row_log = mysql_fetch_array($query_log) or die("sql-2: " . mysql_error());
Ved du hvad? Det har jeg absolut heller ikke. Det var ikke meningen der skulle have stået mysql_query i først line.. Men pyt, det er rettet.
Får nu fejl i: $dato_query = mysql_query ("SELECT count(1) FROM du_bruger_gb WHERE tid > $last_login"); $dato_row = mysql_fetch_array($dato_query) or die("sql-4: " . mysql_error());
Fejl: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /web/www.doodoo.dk/www/deungedk/beta/loggetind.php on line 37 sql-4: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '00:37:48' at line 1
Line 37 er $dato_row = mysql_fetch_array($dato_query) or die("sql-4: " . mysql_error());
Nå ja.. Hvis du kigger på din karma, står der så ikke det er dig selv du har givet karma? Det der står ud fra dit navn, er mig der har skrevet. Buggy exp.dk :D
Really? Jeg kan kun se det folk har skrevet + rating. Nå, men udover den første rating jeg fik, så er folk jo generelt flinke mod mig :)
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.