Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[Opgelost] Mysql insert fout (??)

Stokpop
2 antwoorden
  • Hee mensen,
    Ik zit met een probleempje waat ik al heel wat tijd mee bezig ben. Ik heb een faq op mijn site, waar leden met bepaalde rechten een vraag kunnen toevoegen, bewerken, of verwijderen. Nou is het probleem dat op het moment dat je op submit klikt, er een fout ontstaat. volgens mij gaat die over iets met de mysql database. Een error formuliertje geeft aan dat hij een probleem heeft met "Duplicate entry '0' for key 1". Dat heeft denk ik te maken met het id dat hij aan de vraag geeft, want de eerste vraag (id 0) doet hij moeiteloos. Ook op het moment dat ik een vraag wil wijzigen vul ik eerst het id nummer in, alleen al met dat krijg ik niet eens de gegevens opgevraagd :(

    Hieronder een stukje van mijn bron. Ik heb het script door al mijn aanpassen vast al zo aangetast dat er nog meer foutjes in staan; ik hoor het graag.

    [code:1:0df63d780a]<b>Helpdeskmedewerker functie's;</b><ul>
    <li><a href="?help=new">Voeg een nieuwe vraag toe aan de FAQ</a></li>
    <li><a href="?help=edit">Bewerk een vraag van de FAQ</a></li>
    <li><a href="?help=del">Verwijder een vraag in de FAQ</a></li>
    </ul>

    <?php
    include("config.php");
    include("faq_functions.php");

    switch($_GET['help']) {
    case "new":
    ?>
    <center>
    <form action="?help=new" method="POST">
    Vraag:<br><input type="text" name="vraag"><br><br>
    Antwoord:<br><textarea name="bericht" cols="25" rows="10"></textarea><br>
    <input type="submit" name="submit" value="Voeg Toe!">
    </center>
    <?php
    if(isset($_POST['submit'])) {
    if(empty($_POST['vraag'])) {
    echo '<b>Je moet een vraag invullen</b>';
    } elseif(empty($_POST['bericht'])) {
    echo '<b>Je moet een antwoord invullen</b>';
    }
    $vraag = $_POST['vraag'];
    $antwoord = $_POST['bericht'];

    $query = "INSERT INTO faq (vraag, antwoord) VALUES ('$vraag', '$antwoord')";
    $result = mysql_query($query) or die(dberror($query, __LINE__, mysql_error()));
    $insertid = mysql_insert_id();
    echo 'Je vraag is succesvol gepost onder id: '.$insertid.'!';
    }
    ?>
    <?
    break;
    case "edit":
    if(isset($_GET['id'])) {
    $id = $_GET['id'];
    $query = "SELECT * FROM faq WHERE id='$id'";
    $result = mysql_query($query) or die(dberror($query, __LINE__, mysql_error()));
    $data = mysql_fetch_assoc($result);
    ?>

    <form action="?help=edit&id=<? echo $id; ?>&submit=Verstuur" name="Editten" method="POST">
    Vraag: <input value="<? echo $data['vraag1']; ?>" type="text" name="vraag1"><br><br>
    Antwoord:<br>
    <textarea name="vraag1" cols="25" rows="10"><? echo $data['antwoord1']; ?></textarea><br><br>
    <input type="submit" name="submit2" value="submit">
    </form>
    <?php
    if(isset($_POST['submit2'])) {
    $vraag = $_POST['vraag1'];
    $antwoord = $_POST['vraag1'];
    $query = "1UPDATE faq SET vraag='$vraag1', antwoord='$antwoord1' WHERE id='$id' LIMIT ";
    $result = mysql_query($query) or die(dberror($query, __LINE__, mysql_error()));
    echo 'De vraag is succesvol veranderd';
    }
    } else {
    ?>
    <form name="form1" id="form1" method="get" action="?help=edit">
    <input name="help" type="hidden" id="help" value="edit" />
    <input name="id" type="text" id="id" size="6" maxlength="6" class="form" />
    <br />
    <input name="submit" type="submit" id="submit" value="Verstuur" class="form" />
    </form>
    <?
    }
    ?>
    <?
    break;
    case "del":

    if(isset($_GET['id'])) {
    $id = $_GET['id'];
    $query = "DELETE FROM faq WHERE id=$id";
    $result = mysql_query($query) or die(dberror($query, __LINE__, mysql_error()));
    echo 'De vraag is succesvol verwijderd';
    } else {
    ?>
    <form name="form1" id="form1" method="get" action="?help=del">
    <input name="help" type="hidden" id="help" value="del" />
    <input name="id" type="text" id="id" size="6" maxlength="6" class="form" />
    <br />
    <input name="submit" type="submit" id="submit" value="Verstuur" class="form" />
    </form>
    <?
    }
    break;
    break;
    }
    ?> [/code:1:0df63d780a]

    Alvast ontzettend bedankt :D
    Stokpop.
  • De duplicate entry foutmelding wordt veroorzaakt doordat je in de faq tabel de kolom id geen auto_increment hebt gemaakt.

    Ik heb niet in detail naar je script gekeken, maar het viel me wel direct op dat je een tikfoutje in de update query hebt (er staat een 1 voor).

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.