Avatar billede Slettet bruger
19. november 2004 - 23:37 Der er 10 kommentarer og
1 løsning

Julekonkurrence 2004

Jeg skal lave en julekonkurrence.

Jeg har ledt overalt men synes ikke rigtig jeg kan finde noget der lige rammer plet, så hjælp mig og red mig...

- Der er 5 præmier
- Man må kun deltage én gang eller én gang pr. dag
- Der skal chekkes for om 3 inputs er udfyldt:
  1. Svar
  2. Navn
  3. E-mail
- Er alle 3 felter ikke udfyldt skal der vises en tekst der fortæller at alle 3 felter skal udfyldes.
- Der skal endeligt linkes til en takkeside

Findes der virkelig ikke noget kode eller et script der kan håndtere den "smule"?
Avatar billede henninghabor Nybegynder
20. november 2004 - 01:14 #1
Prøv at se om du kan få dette utestede til at virke:

<?php
##### Tabellerne laves #####

$tabelSQL = "create Table contest
            (
                contestid      integer not null primary key auto_increment,
                question      varchar(255),
        date          date not null
            )";
mysql_query($tabelSQL); // Tabellen spørgsmål laves

$tabelSQL = "create Table answer
            (
                answerid      integer not null primary key auto_increment,
                contestid      int(11),
                answer        varchar(255),
                correct        int(11)
            )";
mysql_query($tabelSQL); // Tabellen svar laves

$tabelSQL = "create Table competitor
            (
                competitorid  integer not null primary key auto_increment,
                name          varchar(255),
                email          varchar(255),
                ip            varchar(255),
                answer        int(11),
        date          date not null
            )";
mysql_query($tabelSQL); // Tabellen svar laves
?>
##### contest.php #####
<?php
echo "<form action=\"answer.php\" method=\"post\">\n";
echo "<table>\n";
echo "<tr><td>Dit navn:</td><td><input type=\"text\" name=\"name\"></td></tr>\n";
echo "<tr><td>Din e-mail:</td><td><input type=\"text\" name=\"email\"></td></tr>\n";

$today = date("Y") . "-" . date("m") . "-" . date("d"); // Dags dato laves

$resultat = mysql_query("select * from contest where date = '$today'"); // Dagens spørgsmål hentes

while ($raekke = mysql_fetch_array($resultat)) {
  $contestid = "$raekke[contestid]";
  echo "<tr><td colspan=\"2\">" . htmlentities($raekke[question]) . "</td></tr>\n";
}

$resultat = mysql_query("select * from answer where contestid = '$contestid'"); // Dagens svar hentes

while ($raekke = mysql_fetch_array($resultat)) {
  echo "<tr><td><input type=\"radio\" name=\"answerid\" value=\"" . $raekke[answerid] . "\"> " . htmlentities($raekke[question]) . "</td></tr>\n";
}

echo "<tr><td><input type=\"submit\" value=\"Svar\"></td></tr>\n";
echo "</table>\n";
echo "</form>\n";
?>
##### answer.php #####
<?php
$today = date("Y") . "-" . date("m") . "-" . date("d"); // Dags dato laves

$answer = 0;

if(!$_REQUEST[name])
{
    $error .= "Navn mangler\n";
}
if(!$_REQUEST[email])
{
    $error .= "E-mail mangler\n";
}

$resultat = mysql_query("select * from competitor where email = '$_REQUEST[email]' AND date = '$today'"); // Der kontrolleres om deltager har svaret i dag

while ($raekke = mysql_fetch_array($resultat)) {
  $error .= "Du har deltaget i dag\n";
}

if($error)
{
  echo "<h1>Der skete en fejl!</h1>\n";
  echo "<p>$error</p>\n";
}
else
{
$resultat = mysql_query("select * from contest where date = '$today'"); // Dagens spørgsmål hentes

while ($raekke = mysql_fetch_array($resultat)) {
  $contestid = "$raekke[contestid]";
}

$resultat = mysql_query("select * from answer where contestid = '$contestid' and answerid = '$_REQUEST[answerid]'"); // Dagens svar hentes

while ($raekke = mysql_fetch_array($resultat)) {
  if($raekke[correct] == 1)
  {
    $answer = 1;
  }
}

$insertSQL = "insert into competitor set
              navn='$_REQUEST[name]', email='$_REQUEST[email]', ip='$_SERVER[REMOTE_ADDR]', answer='$answer', date=now()";
mysql_query($insertSQL); // Deltagerens navn, email og svar indsættes

echo "<h1>Tak for din deltagelse!</h1>\n";
echo "<p>Du vil få besked hvis du har vundet.</p>\n";
?>
Avatar billede Slettet bruger
21. november 2004 - 23:33 #2
Hmmm, med den smule jeg kender til sql, så ser det da rimelig fornuftigt ud, bortset fra at man vel skal connecte til databasen.
Avatar billede henninghabor Nybegynder
21. november 2004 - 23:37 #3
Ja, det skal du selvfølgelig.. En fejl fra min side at det ikke kom med... :(
Avatar billede Slettet bruger
22. november 2004 - 08:06 #4
MySQL said:
#1064 - 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 '$tabelSQL = "create Table contest
            (
                contestid    ' at line 1
Avatar billede Slettet bruger
25. november 2004 - 12:16 #5
Ovenstående kode virker ikke. Kan det virkelig være rigtigt at det skal være så svært at  lave en simpel konkurrence. Er der ingen forslag?
Avatar billede henninghabor Nybegynder
25. november 2004 - 12:57 #6
Eftersom du ikke har skrevet i dit spørgsmål at du ikke kendte til PHP og Mysql i forvejen, gik jeg ud fra at du godt kunne finde ud af at oprette tabeller og hvad der ellers er i ovenstående kode.

Nedenstående skal du køre i din phpmyadmin:

$tabelSQL = "create Table contest
            (
                contestid      integer not null primary key auto_increment,
                question      varchar(255),
        date          date not null
            )";
mysql_query($tabelSQL); // Tabellen spørgsmål laves

$tabelSQL = "create Table answer
            (
                answerid      integer not null primary key auto_increment,
                contestid      int(11),
                answer        varchar(255),
                correct        int(11)
            )";
mysql_query($tabelSQL); // Tabellen svar laves

$tabelSQL = "create Table competitor
            (
                competitorid  integer not null primary key auto_increment,
                name          varchar(255),
                email          varchar(255),
                ip            varchar(255),
                answer        int(11),
        date          date not null
            )";

Og kom så tilbage med fejl, hvis den melder det...
Avatar billede Slettet bruger
25. november 2004 - 13:19 #7
Undskyld, undskyld, undskyld... (Jeg kan godt læse hvad der står mellem linierne hér... ) Jeg ville bare fatte mig i så meget korthed i mit spørgsmål som overhoevdet muligt... Jeg har et meget begrænset kendskab til PHP og jeg hár direkte adgang til phpmyadmin, hvor jeg også før forsøgte at køre ovenstående kode for at oprette tabellerne, men både før, som nu får jeg følgende fejl:

Error

SQL-query :

$tabelSQL = "create Table contest ( contestid integer not null primary key auto_increment, question varchar(255), date date not null )"

MySQL said:
#1064 - 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 '$tabelSQL = "create Table contest
            (
                contestid    ' at line 1
Avatar billede henninghabor Nybegynder
25. november 2004 - 18:17 #8
Flot at jeg bliver sur på dig, når det er mig der har lavet fejlen.

Tabel navnet skal stå imellem 2 quotes: Create Table 'contetst' etc.
Avatar billede Slettet bruger
26. november 2004 - 03:00 #9
hehe, alt forladt... ;-) prøver lige...
Avatar billede Slettet bruger
26. november 2004 - 03:07 #10
Error

SQL-query :

$tabelSQL = "create Table 'contest' ( contestid integer not null primary key auto_increment, question varchar(255), date date not null )"

MySQL said:
#1064 - 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 '$tabelSQL = "create Table 'contest'
            (
                contestid  ' at line 1
Avatar billede Slettet bruger
07. marts 2006 - 06:36 #11
Lukker
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