sql

Status
Niet open voor verdere reacties.

hollander

Gebruiker
Lid geworden
23 mrt 2005
Berichten
210
beste helpers,

in een van deze twee codes zit een foutje , weet iemand het te vinde ?

PHP:
mysql_query("INSERT INTO polls (vraag,begin,einde) VALUES ('" . addslashes($_POST['vraag']) .
"','" . time() . "','0')") or die(mysql_error());

PHP:
mysql_query("INSERT INTO poll_opties (pollid,optie,votes) VALUES ('" . $poll_id . "','" .
addslashes($optie[$i]) . "','0')") or die(mysql_error());
 
dis is het totaal script :
PHP:
<?php 
include("config.php"); 
?> 

<html> 
<head><title>Admin</title></head> 

<body bgcolor="white"> 

<center> 

<?php 
if($_POST['action'] == "save_poll") { 
    if(!is_numeric($_POST['aantal_opties'])) { 
        echo "<font color=red>Je moet wel een cijfer invullen!</font>"; 
        exit; 
    } 
      
    if(!$_POST['vraag']) { 
        echo "<font color=red>Je moet wel een vraag invullen!</font>"; 
        exit;          
    } 
      
    $query = mysql_query("SELECT id FROM polls ORDER BY id DESC LIMIT 0,1") or die(mysql_error());

    if(mysql_num_rows($query) > 0) { 
        $oude_poll = mysql_result($query,0,"id"); 
        mysql_query("UPDATE polls SET einde='" . time() . "' WHERE id='" . $oude_poll . "'") or
die(mysql_error());      
    } 
      
    mysql_query("INSERT INTO polls (vraag,begin,einde) VALUES ('" . addslashes($_POST['vraag']) .
"','" . time() . "','0')") or die(mysql_error()); 
      
    $query = mysql_query("SELECT id FROM polls ORDER BY id DESC LIMIT 0,1") or die(mysql_error());

    $poll_id = mysql_result($query,0,"id"); 
      
    for($i=0;$i < $_POST['aantal_opties'];$i++) { 
        mysql_query("INSERT INTO poll_opties (pollid,optie,votes) VALUES ('" . $poll_id . "','" .
addslashes($optie[$i]) . "','0')") or die(mysql_error()); 
    } 
      
    echo "De poll is aangemaakt!<br><br>"; 
} elseif($_POST['action'] == "nieuwe_poll") { 
    if(!is_numeric($_POST['aantal_opties'])) { 
        echo "<font color=red>Je moet wel een cijfer invullen!</font>"; 
        exit; 
    } 
      
    if(!$_POST['vraag']) { 
        echo "<font color=red>Je moet wel een vraag invullen!</font>"; 
        exit;          
    } 
      
    $vraag = $_POST['vraag']; 
    $aantal_opties = $_POST['aantal_opties']; 
      
    $form_html = ""; 
    for($i=1;$i <= $aantal_opties;$i++) { 
        $kleur = ($i % 2) ? "white" : "white"; 
          
        $form_html .= "<tr bgcolor=\"" . $kleur . "\"><td><b>Optie " . $i .
"</b></td><td><input type=\"text\" name=\"optie[]\"
size=\"40\"></td></tr>\n";      
    } 
?> 

<form method="POST" action="<?php echo $PHP_SELF; ?>"> 
<input type="hidden" value="save_poll" name="action"> 
<input type="hidden" value="<?php echo $aantal_opties; ?>" name="aantal_opties"> 
<table border="1" width="65%"> 
<tr bgcolor="white"><td colspan="2"><center><b>Vul de opties
in.</b></center></td></tr> 
<tr bgcolor="white"> 
<td><b>Vraag: </b></td> 
<td><input type="text" name="vraag" size="40" value="<?php echo $vraag;
?>"></td> 
</tr> 

<?php echo $form_html; ?> 

<tr bgcolor="white"> 
<td colspan="2"><center><input type="submit" name="opslaan"
value="Opslaan!"></center></td> 
</tr> 

</table> 
</form> 


<?php      
} else { 
?> 

<form method="POST" action="<?php echo $PHP_SELF; ?>"> 
<input type="hidden" value="nieuwe_poll" name="action"> 
<table border="1" width="65%"> 
<tr bgcolor="white"><td colspan="2"><center>Vul de vraag en het aantal opties in,
om verder te gaan met het aanmaken van de poll.</center></td></tr> 
<tr bgcolor="white"> 
<td><b>Vraag : </b></td> 
<td><input type="text" name="vraag" size="40"></td> 
</tr> 

<tr bgcolor="white"> 
<td><b>Aantal Opties : </b></td> 
<td><input type="text" name="aantal_opties" size="10" maxlength="2"></td> 
</tr> 

<tr bgcolor="white"> 
<td colspan="2"><center><input type="submit" name="opslaan"
value="Aanmaken!"></center></td> 
</tr> 

</table> 
</form> 

<?php 
} 
?> 
</center> 

</body> 
</html>

de fout melding luid:

Duplicate entry '0' for key 1
 
hollander zei:
dis is het totaal script :


de fout melding luid:

Duplicate entry '0' for key 1
Dat betekent dat er al een veld in je database is, met ID 0. Dit moet je dus aanpassen (ik stel een auto_increment voor, in je database) :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan