Avatar billede 20 Nybegynder
21. november 2004 - 01:46 Der er 18 kommentarer og
1 løsning

0,0,1 i mysql update

Er det muligt at lave noget som ligner.

mysql_query("UPDATE tabel set monter=monter+0,0,1
feks.

Den skal opdater 0,0,5 i tabellen, hvordan?
Avatar billede 20 Nybegynder
21. november 2004 - 02:04 #1
:-s?
Avatar billede mjense173 Nybegynder
21. november 2004 - 02:25 #2
Hvad skal du bruge sådan en funktion til?
Avatar billede 20 Nybegynder
21. november 2004 - 02:36 #3
Det fordi den iframe jeg har opdater hver 10 sekundt, så skal den ikke opdater feks. 2 eller 1 hver 10 sekundt, for så får mange for maneg.

Den skal opdater noget mindre.

feks. 0.005
Avatar billede mjense173 Nybegynder
21. november 2004 - 02:41 #4
Undskyld, prøv lige igen. Hvad mener du med: 'for så får mange for maneg.'

Skal du lægge monter sammen med 0.005 eller hvad mener du?
Avatar billede 20 Nybegynder
21. november 2004 - 02:42 #5
$time = time();
$duration = $time-$_SESSION[login_tid];
$_SESSION[login_tid] = time();

kan man ikke fortælle browseren at den skal give 5 point pr. 10 minut?
Avatar billede 20 Nybegynder
21. november 2004 - 02:43 #6
Jeg har denne fil, kan man ikke lave et script, som fortæller at hver 10 minut, skal den give '5' i kollonen "monter" min kode er:

<?php $time = time();
$duration = $time-$_SESSION[login_tid];

$_SESSION[login_tid] = time();
mysql_query("UPDATE wgbrugere SET monter=monter+'0.005', timer = timer+'$duration' WHERE brugernavn='{$_SESSION['brugernavn']}'");

mysql_query("UPDATE wgbrugere SET timeout='$time' WHERE brugernavn = '$_SESSION[brugernavn]'");
$timeout = $time-15;

mysql_query("UPDATE wgbrugere SET online='ja' WHERE timeout = timeout<'$timeout'");?>
Avatar billede mjense173 Nybegynder
21. november 2004 - 02:53 #7
Jeg kan godt forstå hvad du vil lave.

Men er du sikker på at det er smart at gøre i en iframe?
Hvad nu hvis folk højreklikker i iframen og vælger opdater?

Hvilken type er din 'monter' i din tabel?
Den skulle helst være en LONG, da en int kun kan indeholde heltal.
Avatar billede 20 Nybegynder
21. november 2004 - 04:17 #8
den er LONG
Avatar billede 20 Nybegynder
21. november 2004 - 04:17 #9
bigint med 255
Avatar billede mjense173 Nybegynder
21. november 2004 - 04:25 #10
bigint: Integer (heltal) data fra -2^63 til 2^63-1

Hvis du forsøger at lægge 0,005 til en bigint(255), så sker der ikke noget.
Derfor vil din sql ikke virke.

Du skal istedet bruge datatypen LONG. Læs mere om den her:
http://dev.mysql.com/doc/mysql/en/Numeric_type_overview.html
Avatar billede 20 Nybegynder
21. november 2004 - 15:06 #11
Jeg har denne fil, kan man ikke lave et script, som fortæller at hver 10 minut, skal den give '5' i kollonen "monter" min kode er:

<?php $time = time();
$duration = $time-$_SESSION[login_tid];

$_SESSION[login_tid] = time();
mysql_query("UPDATE wgbrugere SET monter=monter+'0.005', timer = timer+'$duration' WHERE brugernavn='{$_SESSION['brugernavn']}'");

mysql_query("UPDATE wgbrugere SET timeout='$time' WHERE brugernavn = '$_SESSION[brugernavn]'");
$timeout = $time-15;

mysql_query("UPDATE wgbrugere SET online='ja' WHERE timeout = timeout<'$timeout'");?>
Avatar billede mjense173 Nybegynder
21. november 2004 - 19:06 #12
Er det nogen forkskel på det spørgsmål du stiller nu, og det du stillede 21/11-2004 02:43:55?
Avatar billede mjense173 Nybegynder
21. november 2004 - 19:08 #13
Jo det kan man sagtens gøre.
Hvad sker der når du kører den første UPDATE sætning?
Bliver variablen monter i databasen talt op med 0,005?
Avatar billede mjense173 Nybegynder
21. november 2004 - 19:13 #14
Hvis jeg skulle lave scriptet, ville jeg lave det sådan at hver side havde en includefil, som opdaterede din 'monter' variable.

Hvis man nu gik ind på siden klokken 12, så blev der gemt kl. 12:00 i en session
Herefter vil der, når brugeren vælger en anden side på serveren, blive kørt et script der gør nogenlunde det samme som dit, blot med den forskel at den tager den faktiske tidsforskel mellem sidste load og det nuværende.

Dette tal ganges herefter med en faktor, sådan at det giver det rigtige beløb.

På denne måde bliver alt kørt serverside, og man kan ikke påvirke noget udefra.
Avatar billede olebole Juniormester
21. november 2004 - 19:19 #15
<ole>

20 >> prøv at lægge mærke til, hvordan det går med de fleste spørgsmål, du opretter  :)
Du mangler i høj grad tålmodighed. Dels åbner du spørgsmål, som du selv besvarer på meget kort tid - dels tager du dig ikke tid til at forklare dig ... og til at læse folks kommentarer ordentligt.

Hvad du gør og hvordan må du sådan set selv om. På den anden side, må du nok se i øjnene, at jeg ikke bliver den sidste, der kun reagerer på dine spørgsmål, hvis jeg ikke lægger mærke til, at du er spørgeren.
Folk, der svarer på Eksperten, fravælger noget andet i deres liv for at bruge noget af deres fritid på at hjælpe andre med deres problemer. Derfor prioriterer de naturligvis også, hvad de svarer på. Får man fornemmelsen af, at visse brugere er spild af tid at hjælpe, bliver disses spørgsmål fravalgt.

Jeg skriver dette, som et venligt forsøg på at hjælpe dig til selv at sørge for, du kan blive ved med at få kvalificeret hjælp. Så må du selv om, hvordan du vil modtage det  :)

/mvh
</bole>
Avatar billede mjense173 Nybegynder
21. november 2004 - 19:20 #16
Altså:
index.php  12:00:00  tidspunkt gemmes
side1.php  12:00:25  datediff(...) = 25 sek.
side2.php  12:04:17  datediff(...) = 282 sek.
side3.php  12:05:08  datediff(...) = 85 sek.

Herefter ganges med konstant:
25 sek. * (1/120) = 0.2083 monter
Avatar billede mjense173 Nybegynder
21. november 2004 - 19:29 #17
Jeg spørger lige igen..
Ifølge spm: http://www.eksperten.dk/spm/563416
Har du typen i databasen til at indeholde tiden, til at være BIGINT.

Hvad type er monter? BIGINT eller LONG?
Avatar billede 20 Nybegynder
24. november 2004 - 18:20 #18
Fik det lavet. Lavede bare en skjult iframe som opdaterede til UPDATE BRUGER SET MONTER=MONTER+1 hvert sekundt
Avatar billede mjense173 Nybegynder
25. november 2004 - 00:15 #19
Fint!
Men hvad har det med spørgsmålet at gøre..?
Jeg forsøgte virkelig at hjælpe dig med det andet problem, men det er åbenbart ligemeget..
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