Avatar billede rd Nybegynder
23. maj 2002 - 17:22 Der er 10 kommentarer og
1 løsning

Afstemning

Hvad er der galt her ?

<html>
<body>
<table height="100%" width="100%">
<tr>
<td><form action="stem.php" method="post"></td>
</tr>
<tr>
<td><font face="verdana" size="2">Er Uni-uger godt?</font><br><input type="radio" name="rb" value="1"><font face="verdana" size="2">Ja</font></td>
</tr>
<tr>
<td><input type="radio" name="rb" value="2"><font face="verdana" size="2">Nej</font></td>
</tr>
<tr>
<td><input type="radio" name="rb" value="3"><font face="verdana" size="2">Øhhh!</font></td>
</tr>
<tr>
<td><input type="submit" value="Stem"></td>
</tr>
</form>
</body>
</html>

<?
$table = "afstemning";
$sted = "1";

if($rb == "1") {
include("connect.php");
$get = mysql_query("SELECT * FROM $table");
$data = mysql_fetch_row($get);
$res = $data[1]++;
$update = mysql_query("update $table set ja = '$res' where id = '$sted'");

} elseif ($rb == "2") {
include("connect.php");
$get = mysql_query("SELECT * FROM $table");
$data = mysql_fetch_row($get);
$res = $data[2]++;
$update = mysql_query("update $table set nej = '$res' where id = '$sted'");

} elseif ($rb == "3") {
include("connect.php");
$get = mysql_query("SELECT * FROM $table");
$data = mysql_fetch_row($get);
$res = $data[3]++;
$update = mysql_query("update $table set vedikke = '$res' where id = '$sted'");
}

?>
Avatar billede 2go Nybegynder
23. maj 2002 - 17:25 #1
2min , så har jeg et svar!
Avatar billede 2go Nybegynder
23. maj 2002 - 17:26 #2
´Hent en meget mere simpel afstemning uden mysql og som virker her :
www.cade.dk/exp/stem.zip !

/2Go
Avatar billede barklund Nybegynder
23. maj 2002 - 20:11 #3
Du skal jo kun udtrække den record fra tabellen, hvor id = sted, ikke?

$get = mysql_query("SELECT * FROM $table WHERE id = $sted");

Desuden ville jeg tro, at dine "ja", "nej" og "vedikke"-atributter er tal og du skal derfor ikke have '' omkring $res...

Men den helt store fejl ligger et andet sted... :o)

$res = $data[n]++;

Post-increment (i++) opdaterer variablen og returnerer værdien FØR opdatering... Du skal jo ikke bruge en opdatering af variablen, men blot en værdi, der er 1 større end variablen...

Altså:

$res = $data[n]+1;

Prøv engang...

/Barklund
Avatar billede rd Nybegynder
24. maj 2002 - 08:33 #4
Barklund Du gider vel ikke og skrive det som et svar så du kan få dine point ?

RD
Avatar billede barklund Nybegynder
24. maj 2002 - 15:42 #5
Nææ... men jeg kan skrive noget andet som et svar, hvis det er lige så godt? :o)
Avatar billede startlinket.dk Nybegynder
24. maj 2002 - 18:58 #6
Hvad med bare at bruge ...update $table set ja=ja+1... ?
Avatar billede startlinket.dk Nybegynder
24. maj 2002 - 19:00 #7
Det vil gøre det hele meget hurtigere... Iøvrigt, så skulle det have været et svar.
Avatar billede startlinket.dk Nybegynder
24. maj 2002 - 19:01 #8
Altså bare droppe alt det med udtræk, og så kun lade mysql lægge én til
Avatar billede barklund Nybegynder
25. maj 2002 - 12:52 #9
>> startlinket.dk

Selvfølgelig ville det være hurtigere, men det var ikke spørgsmålets karakter :o)

Det hurtigste ville være:

<snip>
$table = "afstemning";
$sted = "1";

include("connect.php");

$attr = array("","ja","nej","vedikke");
$attr = $attr[$rb];

$update = mysql_query("update $table set $attr = $attr+1 where id = '$sted'");
</snip>

/Barklund
Avatar billede startlinket.dk Nybegynder
25. maj 2002 - 13:04 #10
Hvad var det så at spørgsmålet gik ud på?
Og hvorfor er der så ikke andre at der har foreslået ham det at jeg skrev?
Avatar billede barklund Nybegynder
06. juni 2002 - 13:33 #11
Jeg tarker for pointene :o)
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
Computerworld tilbyder specialiserede kurser i database-management

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