Avatar billede udvikler Nybegynder
05. januar 2006 - 22:02 Der er 6 kommentarer og
1 løsning

Undgå at bruger kan lægge mere end et svar

Jeg har lige et problem, jeg kunne godt tænkte mig at lave et pointsystem som ekspertens for sjovs skyld. Skal ikke bruge det, skal bare lære noget. Jeg kunne så godt tænkte mig at gøre sådan at en bruger kun kan lægge et svar i et spørgsmål. (Mit pointsystem er nemlig en modificeret udgave, lidt bedre)

Her er den kode hvor det skal indsættes i:

----------------------------------
<?php
session_start();

include "mysql.php";
if(isset($_POST['submit'])) {

if(empty($_SESSION['brugernavn']))
{
echo "Du er ikke logget ind, og kan derfor ikke kommentere indlæg. Gå til login side <a href=\"login.php\">her.</a>";
exit;
}
if($_POST['besked'] == "") {
}
$valg = $_POST['valg'];
$besked = nl2br(htmlentities(addslashes($_POST['besked'])));
$parent = $_POST['id'];
$forfatter = $_SESSION['brugernavn'];
$dato = date('d/m/Y H:i:s');

mysql_query("INSERT INTO kommentar (valg, besked, parent, dato, forfatter) VALUES ('$valg', '$besked', '$parent', '$dato', '$forfatter')");
// mysql_query("INSERT INTO kommentar VALUES (''$valg','$besked','$parent', '$dato', '$forfatter'')") or die(mysql_error());

}
header("Location: laes.php?id=".$_POST['id']);
?>
----------------------------------

Grunden til at jeg ikke selv kan gøre det er at jeg har prøvet massere af gange, det virker ikke!
Avatar billede webstuff Nybegynder
05. januar 2006 - 22:53 #1
Du tjekker bare hvor mange svar brugeren har lavet på det spørgsmål
også:
if($var_med_antal_svar > 0){
// INDSÆT I DB
} else {
echo "Du kan kun svare én gang på hvert spørgsmål";
}
Avatar billede udvikler Nybegynder
06. januar 2006 - 14:40 #2
ja det ved jeg selvfølgelig godt, men hvordan skal den mysql sætning se ud som indeholder:
$var_med_antal_svar
Avatar billede webstuff Nybegynder
06. januar 2006 - 16:07 #3
$antal = mysql_result(mysql_query("SELECT COUNT (*) AS antal FROM kommentar WHERE svar = '$brugerdererloggetind' AND id = '$spørgsmåletsid'") or die(mysql_error()));

if($antal == 0){
//Indsæt svar
} else {
echo "Du kan kun svare én gang pr. spørgsmål";
}

Prøv det :-)
Avatar billede udvikler Nybegynder
06. januar 2006 - 16:40 #4
Hmm, det virker lidt bedre, men for en fejl:

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 '*) AS antal FROM kommentar WHERE valg = 'svar' AND forfatter = 'jakob'' at line 1

og jeg har ændret det til:

$antal = mysql_result(mysql_query("SELECT COUNT (*) AS antal FROM kommentar WHERE valg = 'svar' AND forfatter = '$_SESSION[brugernavn]'") or die(mysql_error()));

if($antal > 1){
echo "Du kan kun svare én gang pr. spørgsmål";
} else {
mysql_query("INSERT INTO kommentar (valg, besked, parent, dato, forfatter) VALUES ('$valg', '$besked', '$parent', '$dato', '$forfatter')");
// mysql_query("INSERT INTO kommentar VALUES (''$valg','$besked','$parent', '$dato', '$forfatter'')") or die(mysql_error());
}

det burde da virke..eller hvad ? :-)
Avatar billede udvikler Nybegynder
06. januar 2006 - 21:19 #5
Fandt ud af det, læg et svar
Avatar billede udvikler Nybegynder
16. januar 2006 - 15:18 #6
vil du ikke have point
Avatar billede udvikler Nybegynder
17. januar 2006 - 13:36 #7
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