Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:10 Der er 22 kommentarer og
1 løsning

Man skal ikke kunne bedømme 2 gange?

Hej

Jeg har denne kode til så folk kan bedømme:

if($vote){
$nick = $_SESSION['nick'];
mysql_query("INSERT INTO scooter_vote set scooter_id = '$id', vote = '$vote', navn = '$nick'") or die ("Fejl X: ".mysql_error());
header('Location: scooter.php?id='.$id);
}

if ($_SESSION['logget_ind'] == 1) {
echo '
<form method="POST" action="'.$_SERVER['REQUEST_URI'].'">
<center><select size="1" name="vote" style="background-color:#C5C5C5; font: 11px verdana;">
  <option></option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
</select>
<input type="submit" value="Bedøm!" Class="Submitknap">
</center></form>';
}

Noget en stil at "Vælg * scooter_vote hvor at scooter_id = '$id' og navn= '$_SESSION['nick']'" hvis den finder ham så skal den skrive Du har bedømt.

nogle der kan lave det??
Avatar billede avlund Nybegynder
07. juni 2003 - 17:13 #1
$var = mysql_query( "SELECT * FROM scooter_vote WHERE scooter_id = '$id' AND navn = '$nick'" );
if( mysql_num_rows( $var ) != 0 )
  echo "Nul, putte, du har allerede bedømt";

Noget á la det?
Avatar billede ahv Nybegynder
07. juni 2003 - 17:14 #2
if ($_SESSION['logget_ind'] == 1) {
$query = mysql_query("SELECT * FROM scooter_vote WHERE scooter_id = '$id' AND navn= '$_SESSION['nick']'");
$row = mysql_fatch_array($query);
if ($row) {
echo "Du har bedømt";
} else {
echo '
<form method="POST" action="'.$_SERVER['REQUEST_URI'].'">
<center><select size="1" name="vote" style="background-color:#C5C5C5; font: 11px verdana;">
  <option></option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
</select>
<input type="submit" value="Bedøm" Class="Submitknap">
</center></form>';
}}
Avatar billede myplacedk Nybegynder
07. juni 2003 - 17:16 #3
Fx. noget i stil med:

$sql = "SELECT COUNT(*) FROM tabel WHERE scooter_id = '$id' AND navn= '$_SESSION['nick']'";
$result = mysql_query($sql);
$row = mysql_fetch_row($sql);
$antal = $row[0];
if ($antal>0) echo "BÅÅÅT! Du har allerede stemt...";

Med forbehold for fejl, især fordi det er så længe siden jeg har brugt mysql_*-funktionerne. :)

(Jeg ville i stedet skrive "if ($db->getOne($sql))" og spare 3 ud af 4 linjer.)
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:18 #4
Har lige prøvet din ahv og den skriver denne fejl Fatal error: Call to undefined function: mysql_fatch_array()
Avatar billede avlund Nybegynder
07. juni 2003 - 17:18 #5
Funktionen mysql_fatch_array er først med i PHP version 5. Indtil da kan du bruge mysql_fetch_array.

Udover det er det da en ualmindelig ressourcespildende løsning at bruge mysql_fetch_array i det tilfælde. Kan ikke helt se retfærdiggørelsen for det.
Avatar billede ahv Nybegynder
07. juni 2003 - 17:18 #6
Det var en fejl.

$row = mysql_fetch_array($query);
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:21 #7
Hmm jeg tager ahv's har ikke lige prøvet din myplacedk men ahv's virker tak.
Avatar billede avlund Nybegynder
07. juni 2003 - 17:22 #8
Ja, til nøds.
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:23 #9
?
Avatar billede myplacedk Nybegynder
07. juni 2003 - 17:24 #10
/agree avlund
Avatar billede myplacedk Nybegynder
07. juni 2003 - 17:27 #11
Det er ikke så smart at hive *ALT* ud af databasen, bare for at se om der er noget. Jeg vil anbefale blot at tælle antallet af rækker, og se om det er mere end nul.
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:27 #12
Hvordan vil i så lave det så det virker??

Hvad er det ved ahv's som ikke dur??
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:29 #13
Altså bruge din myplacedk??
Avatar billede myplacedk Nybegynder
07. juni 2003 - 17:33 #14
Ja...
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:35 #15
Ja men jeg kan ikke få din til at virke:

if ($_SESSION['logget_ind'] == 1) {
$sql = "SELECT COUNT(*) FROM scooter_vote WHERE scooter_id = '$id' AND navn= '$nick'";
$result = mysql_query($sql);
$row = mysql_fetch_row($sql);
$antal = $row[0];
if ($antal>0) echo "BÅÅÅT! Du har allerede stemt...";
} else {
echo '
<form method="POST" action="'.$_SERVER['REQUEST_URI'].'">
<center><select size="1" name="vote" style="background-color:#C5C5C5; font: 11px verdana;">
  <option></option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
</select>
<input type="submit" value="Bedøm" Class="Submitknap">
</center></form>';
}

Man kan bare blive ved med at bedømme...
Avatar billede myplacedk Nybegynder
07. juni 2003 - 17:39 #16
$row = mysql_fetch_row($sql);
=>
$row = mysql_fetch_row($result);
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:41 #17
Tak det du så er der kun et problem tilbage og det er at man kan bedømme selvom man ikke er logget ind...
Avatar billede myplacedk Nybegynder
07. juni 2003 - 17:45 #18
Prøv lige at kigge på dine if'er én gang mere, så kan du sikkert se hvorfor...
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:45 #19
Og hvis man slet ikke har bedømt så kommer der slet ikke nogle "box" frem når man er logget ind. Men hvis man ikke er logget ind så kommer den frem og man kan bedømme mange gange.

Du skal nok få lidt points bagefter...
Avatar billede myplacedk Nybegynder
07. juni 2003 - 17:46 #20
Lav fx. noget i stil med:

if (logget ind){
  if (har stemt) {
    echo "Du har allerede stemt"
  } else {
    vis afstemning
  }
} else {
  echo "Du er ikke logget ind"
}
Avatar billede mpj86 Nybegynder
07. juni 2003 - 17:51 #21
Det fatter jeg hat af!

Dur ikke med:

if ($_SESSION['logget_ind'] == 1) {
$sql = "SELECT COUNT(*) FROM scooter_vote WHERE scooter_id = '$id' AND navn= '$nick'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$antal = $row[0];
if ($antal>0) echo "Du har allerede stemt";
else {
echo '
<form method="POST" action="'.$_SERVER['REQUEST_URI'].'">
<center><select size="1" name="vote" style="background-color:#C5C5C5; font: 11px verdana;">
  <option></option>
  <option>1</option>
  <option>2</option>
  <option>3</option>
  <option>4</option>
  <option>5</option>
  <option>6</option>
  <option>7</option>
  <option>8</option>
  <option>9</option>
  <option>10</option>
</select>
<input type="submit" value="Bedøm" Class="Submitknap">
</center></form>';
} else {
  echo "Du er ikke logget ind"
}
}

Help!
Avatar billede ahv Nybegynder
07. juni 2003 - 19:00 #22
if ($_SESSION['logget_ind'] == 1) {
    $query = mysql_query("SELECT COUNT(*) FROM scooter_vote WHERE scooter_id = '$id' AND navn= '$nick'");
    $row = mysql_fetch_row($query);
    $antal = $row[0];
    if ($antal > 0) {
        echo "Du har allerede stemt";
    } else {
        echo '<form method="POST" action="'.$_SERVER['REQUEST_URI'].'">
        <center><select size="1" name="vote" style="background-color:#C5C5C5; font: 11px verdana;">
        <option></option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
        <option>10</option>
        </select>
        <input type="submit" value="Bedøm" Class="Submitknap">
        </center></form>';
    }
} else {
    echo "Du er ikke logget ind"
}
Avatar billede mpj86 Nybegynder
07. juni 2003 - 19:05 #23
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