Avatar billede yezbarh Nybegynder
09. september 2005 - 22:18 Der er 34 kommentarer og
1 løsning

Give point til flere.

Hejsa.
Har lavet en "boks" hvor man kan markere dem som har et kryds i "svar" i databasen.

Men problemet er hvis jeg vælger 2 personer fx. så indsætter den ikke i databasen.

Men hvis jeg kun gør det med én virker det fedt.
Hvad gør jeg??

if ($_SESSION[brugernavn] == "$row[af]" && $row[status] != "lukket"){

mysql_query("UPDATE brugere SET point=point+$row[point] WHERE brugernavn = '$_POST[svar]'");
Avatar billede yezbarh Nybegynder
09. september 2005 - 22:22 #1
Har en:
<SELECT multiple size=1 name=svar>
Avatar billede jakobdo Ekspert
09. september 2005 - 23:22 #2
Du kunne ændre din sql til:
mysql_query("UPDATE brugere SET point=point+$row[point] WHERE brugernavn IN ('".implode(',',$_POST[svar])."')");

Men dine point skal vel også deles om de gives til 1 eller flere?
Avatar billede yezbarh Nybegynder
10. september 2005 - 11:32 #3
Vi siger $row[point] indholder 100.
Så altså hvis nu man har valgt én person i $_POST[svar] skal han have 100.
Hvis der er 2 valgte i $_POST[svar] skal de deles mellem de 2, dvs. 50 til hver.
Hvis der er 3 valgte i $_POST[svar] skal de deles mellem de 3, dvs. 33 til hver.

Forstår du?
Avatar billede jakobdo Ekspert
10. september 2005 - 11:52 #4
Så skal vi lave:
$pointPrBruger = $row['point'] / count($_POST['svar']);
mysql_query("UPDATE brugere SET point=point+".$pointPrBruger." WHERE brugernavn IN ('".implode(',',$_POST[svar])."')");
Avatar billede yezbarh Nybegynder
10. september 2005 - 11:55 #5
Hm, virker da ikke :|?
Avatar billede jakobdo Ekspert
10. september 2005 - 11:56 #6
Hvorfor ikke?
Får du sql fejl?
Avatar billede yezbarh Nybegynder
10. september 2005 - 11:57 #7
Får ingen.
Men der ligger en fejl isted, for prøvede at køre en javascript alert, og den kom ikke.

Jeg testede på 2 brugere og ingen af os fik point.
Avatar billede jakobdo Ekspert
10. september 2005 - 11:58 #8
Vis mig lige din kode?
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:01 #9
<?php
session_start();
include("inc/db.php");

$a = mysql_query("SELECT * FROM spm WHERE id = '$_GET[id]'");
$row = mysql_fetch_array($a);

if ($_SESSION[brugernavn] == "$row[af]" && $row[status] != "lukket"){

$pointPrBruger = $row['point'] / count($_POST['svar']);


mysql_query("UPDATE brugere SET point=point+".$pointPrBruger." WHERE brugernavn IN ('".implode(',',$_POST[svar])."')");

mysql_query("UPDATE spm SET status='lukket' WHERE id = '$_GET[id]'");

print "<script>location.href='?page=showSpm&id=$_GET[id]'; </script>";

} else {

echo "<script>location.href='?page=fejl&fejlen=Du er ikke ejeren af dette spørgsmål!'; </script>";
}
?>
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:03 #10
og kører med:

<SELECT multiple size=1 name=svar>
<OPTION value="ham" selected>ham</OPTION>
OPTION value="hende" selected>HENDE</OPTION>
OPTION value="test" selected>TEST</OPTION>
OPTION value="a" selected>A</OPTION>
</select>

- html eksempel.
Avatar billede jakobdo Ekspert
10. september 2005 - 12:08 #11
Test lige denne kode:

<?php
session_start();
include("inc/db.php");

$a = mysql_query("SELECT * FROM spm WHERE id = ".$_GET['id']." LIMIT 1");
$row = mysql_fetch_array($a);

if ($_SESSION[brugernavn] == $row['af'] && $row['status'] != "lukket")
{
    $pointPrBruger = $row['point'] / count($_POST['svar']);
    mysql_query("UPDATE brugere SET point=point+".$pointPrBruger." WHERE brugernavn IN ('".implode(',',$_POST[svar])."')");
    if(mysql_affected_rows() == 0)
    {
        echo mysql_errno() . ": " . mysql_error() . "\n";
        exit();
    }

    mysql_query("UPDATE spm SET status='lukket' WHERE id = ".$_GET[id]." LIMIT 1");
    if(mysql_affected_rows() == 0)
    {
        echo mysql_errno() . ": " . mysql_error() . "\n";
        exit();
    }

    print "<script>location.href='?page=showSpm&id=$_GET[id]'; </script>";

}
else
{
    echo "<script>location.href='?page=fejl&fejlen=Du er ikke ejeren af dette spørgsmål!'; </script>";
}
?>
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:11 #12
Warning: implode(): Bad arguments. in /local/forum/accept.php on line 11
0:
Avatar billede jakobdo Ekspert
10. september 2005 - 12:14 #13
Ret til:

$pointPrBruger = $row['point'] / count($_POST['svar']);
$brugere = "'".implode(",",$_POST[svar])."'";
mysql_query("UPDATE brugere SET point=point+".$pointPrBruger." WHERE brugernavn IN ('".$brugere."')");
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:16 #14
Siger det samme?

Warning: implode(): Bad arguments. in local/forum/accept.php on line 11
0:
Avatar billede jakobdo Ekspert
10. september 2005 - 12:18 #15
Prøv lige at skriv:
echo "<pre>";
print_r($_POST['svar']);
echo "</pre>";
Avatar billede jakobdo Ekspert
10. september 2005 - 12:18 #16
Prøv lige inden at ret:
<SELECT multiple size=1 name=svar>
<OPTION value="ham" selected>ham</OPTION>
OPTION value="hende" selected>HENDE</OPTION>
OPTION value="test" selected>TEST</OPTION>
OPTION value="a" selected>A</OPTION>
</select>

til:
<SELECT multiple size=1 name=svar[]>
<OPTION value="ham" selected>ham</OPTION>
OPTION value="hende" selected>HENDE</OPTION>
OPTION value="test" selected>TEST</OPTION>
OPTION value="a" selected>A</OPTION>
</select>

Bemærk: svar[]
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:19 #17
hm... udskriver kun én selvom jeg har sat 2 på :|
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:20 #18
Array
(
    [0] => testbruger
    [1] => EJER
)
Avatar billede jakobdo Ekspert
10. september 2005 - 12:21 #19
Array, var det efter: svar[] ?
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:21 #20
Ja.
også:

echo "<pre>";
print_r($_POST['svar']);
echo "</pre>";
Avatar billede jakobdo Ekspert
10. september 2005 - 12:23 #21
Så test lige koden fra: 1208 med rettelsen fra 1214 igen!
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:24 #22
Ingen af os får "point"
Avatar billede jakobdo Ekspert
10. september 2005 - 12:26 #23
Og der kommer ingen fejl?
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:26 #24
Nej, den går bare til ?page=showSpm
Avatar billede jakobdo Ekspert
10. september 2005 - 12:27 #25
Jeg må kigge på det senere, skal ud af døren!
Avatar billede yezbarh Nybegynder
10. september 2005 - 12:28 #26
Helt iorden. Vi høres ved.
Avatar billede yezbarh Nybegynder
10. september 2005 - 14:27 #27
Kan det være fordi mit felt "point" er varchar og ikke int?
Avatar billede jakobdo Ekspert
10. september 2005 - 16:47 #28
Uha!
Point bør vel være int, da det altid er tal!
Avatar billede yezbarh Nybegynder
10. september 2005 - 17:03 #29
Fixer lige og tjekker
Avatar billede yezbarh Nybegynder
10. september 2005 - 17:05 #30
Virker desværre hellere ikke?  - Hvad gør "vi"?
Avatar billede jakobdo Ekspert
10. september 2005 - 17:12 #31
Kontakt mig på msn: jakobdo (at) hotmail (dot) com
Avatar billede jakobdo Ekspert
10. september 2005 - 18:12 #32
Svar!
Avatar billede jakobdo Ekspert
10. september 2005 - 18:12 #33
PS, du bør måske skrive din fulde kode herinde, så andre kan se det endelige svar!
Avatar billede yezbarh Nybegynder
10. september 2005 - 18:13 #34
Skal jeg huske ! :)

Tak for svaret.
Avatar billede jakobdo Ekspert
10. september 2005 - 18:17 #35
Takker for point!
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