0

私はこのコードに頭を悩ませています:

<html>
<head>
  <title>Westpop</title>
  <link rel="stylesheet" href="opmaak.css">
</head>
<body>
<div id="header"><a href="Index.php"></a></div>

<div id="content">
<table cellpadding="5" align="center">
<th colspan="2" align="left">Registeren:</th>
<form name="registreren"  method="post" action="registratie.php">
<tr>
    <td>Email</td>
    <td><input type="text" size="50" placeholder="email@email.com" name="email"></td>
</tr>
<tr>
    <td>Voornaam</td>
    <td><input type="text" size="50" placeholder="" name="voornaam" ></td>
</tr>
<tr>
    <td>Achternaam</td>
    <td><input type="text" size="50" placeholder="" name="achternaam"></td>
</tr>
<tr>
    <td>Geboorte Datum</td>
    <td><input type="text" size="50" placeholder="dd-mm-jjjj" name="geboortedatum"></td>
</tr>
<tr>
    <td>Geslacht</td>
    <td>M<input type="radio" size="50" value="m" name="geslacht">
    V<input type="radio" size="50" value="v" name="geslacht"></td>

</tr>
<tr>
    <td>Wachtwoord</td>
    <td><input type="password" size="50" placeholder="min. 6 tekens" name="wachtwoord"></td>
</tr>
<tr>
    <td>Woonplaats</td>
    <td><input type="text" size="50" placeholder="" name=""></td>
</tr>
<tr>
    <td>Telefoonnummer</td>
    <td><input type="text" size="50" placeholder="min. 9 tekens" name="telefoonnummer"></td>
</tr>
<tr>
    <td>Functie</td>
    <td><select name="functie">
<option value="catering">Catering</option>
<option value="muziekpodia">Muziek en podia</option>
<option value="vervoerovernachten">Vervoer en overnachten</option>
<option value="logistiekbeveiliging">Logistiek en beveiliging</option>
<option value="diversen">Diversen</option>
</select></td>
</tr>
<tr align="right">
    <td></td>
    <td><input type="reset" value="Wissen"><input type="submit" name="verzenden" value="Verzenden"></td>
</tr>
</form>
</table>
</div>

 <?php 

    $host = "localhost";
    $gebruikersnaam = "root";
    $wachtwoord = "";
    mysql_connect($host, $gebruikersnaam, $wachtwoord);

    $demooistedatabase = "c5g4westpopintranet";
    mysql_select_db($demooistedatabase);


    $achternaam = $_POST["achternaam"];
    $voornaam = $_POST["voornaam"];
    $gbdatum = $_POST["geboortedatum"];
    $email = $_POST["email"];
    $geslacht = $_POST["geslacht"];
    $wachtwoord = $_POST["wachtwoord"];
    $woonplaats = $_POST["woonplaats"];
    $telefoonnummer = $_POST["telefoonnummer"];
    $functie = $_POST["functie"];

    mysql_query($query); 

    $query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                VALUES( ,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";


    echo mysql_error();
?>
<?php
include ("html_end.php");
?>

何時間も試してきましたが、彼はデータベースに挿入したくありません。SQLクエリの問題だと思いますが、見えません。他に言うことはあまりありません

編集1:

すべての答えをありがとう!私は今、次のようにコードを編集しました:

 $query ="   INSERT INTO vrijwilliger (vrijwilligerID,voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                        VALUES(NULL, '".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

mysql_query($query) or die ("FOUT: ". mysql_error());

そして今、私はエラーを受け取ります:子行を追加または更新できません:外部キー制約が失敗します(c5g4westpopintranet/vrijwilliger、CONSTRAINT vrijwilliger_ibfk_1FOREIGN KEY(activiteitID)REFERENCES activiteitactiviteitID))

4

8 に答える 8

9

関数呼び出しの後にクエリを書きました

mysql_query($query); 

    $query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                VALUES( ,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

このようにする必要があります

 $query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                VALUES( ,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

mysql_query($query);
于 2012-06-18T13:01:47.270 に答える
2

実行する前にクエリを設定する必要があります...

例えば$query=前にmysql_query

$functie = $_POST["functie"];

$query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                VALUES( ,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

mysql_query($query); 
于 2012-06-18T13:03:01.143 に答える
1

変数mysql_query($query);への割り当ての前に呼び出しが表示されるためですか?$query

于 2012-06-18T13:02:34.937 に答える
0

変更してINSERTを修正

INSERT INTO vrijwilliger (vrijwilligerID, voornaam

INSERT INTO vrijwilliger (voornaam

うまくいかない場合は、次を試してください。

  • クエリを実行するのに十分な権限があるかどうかを確認します
  • 質問を編集し、echo mysql_error();の結果を投稿してください。
  • ビルドされたSQLをエコーし​​、手動でmysqlに実行してみてください
于 2012-06-18T13:02:27.917 に答える
0

vrijwilligerIDに設定されていると思いますAUTO_INCREMENT

したがって、代わりに

    mysql_query($query); 

    $query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                VALUES( ,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

これを使って

$query ="INSERT INTO vrijwilliger (voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
         VALUES('$voornaam','$achternaam','$gbdatum','$geslacht','$wachtwoord','$woonplaats','$adres','$telefoonnummer','$functie',null,null,'$email')";
mysql_query($query); 

これを試して、問題が発生した場合はお知らせください。

更新 1

編集1の場合:テーブルにIDが存在しないため、activiteitID=null受け入れられない設定をしているため、このエラーが発生していnullactiviteit

于 2012-06-18T13:25:58.187 に答える
0

値からパラメーターが欠落しているようです。

  $query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                VALUES( **Need A Value Here**,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

この場合 vrijwilligerID が自動生成されない限り、最初の値のセットから削除する必要があります。

于 2012-06-18T13:03:57.057 に答える
0
 $query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                VALUES( ,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

上記のクエリでは、このフィールド「vrijwilligerID」に値を送信していません。自動インクリメント ID の場合、この値を設定する必要はありません。

$query ="   INSERT INTO vrijwilliger (voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                    VALUES( '".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

それ以外の場合は、空白の値 ' ' に設定します。

次に、クエリ変数を設定する前に mysql_query 関数を使用しています。SO このように使用します。

 $query ="   INSERT INTO vrijwilliger (vrijwilligerID,voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                        VALUES(NULL, '".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

mysql_query($query);
于 2012-06-18T13:02:08.583 に答える
0
mysql_query($query); 

        $query ="   INSERT INTO vrijwilliger (vrijwilligerID, voornaam, achternaam, gbdatum, geslacht, wachtwoord, woonplaats, adres, telefoonnummer, functie, activiteitID, groepID, email)
                    VALUES( ,'".$voornaam."','".$achternaam."','".$gbdatum."','".$geslacht."','".$wachtwoord."','".$woonplaats."','".$adres."','".$telefoonnummer."','".$functie."','','','".$email."');";

私はPHPを知りませんが、変数に代入する前にクエリを実行しようとしているようです...これらの2行は場所を入れ替えるべきではありませんか?

于 2012-06-18T13:09:18.553 に答える