Avatar billede jkampmann Nybegynder
17. december 2007 - 10:44 Der er 11 kommentarer og
1 løsning

Kun deltage én gang om dagen.

Jeg er igang med et konkurrence system, hvor brugeren kun må trykke på f.eks et link én gang om dagen.

Jeg har fundet frem til, at jeg skal lave en tabel der hedder "log", hvor jeg har "id, bruger, tid"
id => 1
bruger => jkampmann
tid => 18495595 (phps funktion: time())

Men hvordan skal det se ud, mht. if-sætning osv?

if ( brugeren allerede er i tabellen indenfor 24 timer )
{
    ikke deltag
} else {
    deltag!
}

- Håber nogle kan hjælpe mig her :-)
Avatar billede zurekk Nybegynder
17. december 2007 - 11:27 #1
Du henter data ud med brugerens navn/id, og så siger du noget ala.:

if( time()-( 24*60*60 ) <= $data['tid'] )
  // Ikke deltag.
else
  // Deltag.
Avatar billede jkampmann Nybegynder
17. december 2007 - 11:35 #2
Nårh ja. Morgenvrider.... ;oD

Smid svar

Bruger..

$date = time()-86400;

if ( $date > $row['tid'] )
{
  echo "Du kan nu deltage.";
} else {
  echo "Ingen deltagelse!";
}
Avatar billede zurekk Nybegynder
17. december 2007 - 12:13 #3
Det er i orden, tag dem selv :D
Avatar billede erikjacobsen Ekspert
17. december 2007 - 12:57 #4
$date = time()-86400;  ... det betyder vel at der skal gå 24 timer mellem deltagelse - ikke at man kan deltage een gang om dagen.
Avatar billede coderdk Praktikant
17. december 2007 - 14:11 #5
if ( date("Ymd") != date("Ymd", $row['tid']) )
{
  // Ok
}
{
  // Har allerede deltaget ;P
}
Avatar billede jkampmann Nybegynder
17. december 2007 - 16:36 #6
Jaeh okay, men $row['tid']?? Hvis jeg laver en tabel, udfra det jeg skriver i mit spørgsmål, hvad indenholder $row['tid'] så?

Så skal jeg vel hente noget med noget tid igen?
Avatar billede coderdk Praktikant
17. december 2007 - 18:30 #7
Hov, jeg manglede da en "else" imellem ;)

$row['tid'] er den kolonne der hedder tid, som du har hentet ud fra en række i databasen, f.eks. med mysql_fetch_assoc()... I.e.:

$sql = "SELECT * FROM log";
$qh = mysql_query( $sql ) or die( mysql_error() );
while ( $row = mysql_fetch_asoc( $qh ) )
{
  if ( date("Ymd") != date("Ymd", $row['tid']) )
  {
    // Ok
  }
  else
  {
    // Har allerede deltaget ;P
  }
}

Dette er bare et eksempel ;P
Avatar billede jkampmann Nybegynder
18. december 2007 - 12:00 #8
Altså, noget hen af dette? Ser det rigtigt ud?

$SQL = "SELECT tid FROM log WHERE konkurrenceid = 1";
$query = mysql_query($SQL);

if ( mysql_num_rows ( $query ) > 0 )
{
    $row = mysql_fetch_assoc ( $query );
    if ( date("Ymd") != date("Ymd", $row['tid']))
    {   
        echo "Du kan deltage";
    } else {
        echo "Du kan ikke deltage";
} else {
    echo "du kan godt deltage, og nu skal den indsætte i log tabellen";
}
?>
Avatar billede coderdk Praktikant
18. december 2007 - 12:43 #9
Joh, men der mangler vel noget i din WHERE, såsom userid? :)
Avatar billede jkampmann Nybegynder
18. december 2007 - 13:22 #10
Jep. Endnu en morgenvrider :oD

Kast lige svar..
Avatar billede coderdk Praktikant
18. december 2007 - 15:09 #11
Aight :)
Avatar billede jkampmann Nybegynder
18. december 2007 - 15:38 #12
Perfekt. Tusind tak :)
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