Het lukt mij maar niet om een formulier te maken met ene postgres DB. Ik heb wel een code gemaakt maar dat werkt niet. Hij stopt niets in me DB. Tevens zit ik met het probleem dat ik 2 dropdown boxjes in dat formulier wil hebben die aan elkaar gekoppeld zijn.

Dus als ik bij de ene dropdown de code kies. Dat in de andere dropdown dan automatisch de titelm komt. En zo ook omgedraait werkend.

Hier zal ik even de code zetten wat ik nu heb maar niet werkend krijg.

<?

if($submit != "Insert") {

?>
<title>My web form</title>
<body>
<form method="POST" action="http://localhost/testpear/testform.php">
Titel: <input type="text" name="titel"> <br />
Code <input type=text name="code"> <br />
Omschrijving <input type=text name="omschrijving"> <br />
Materiaal <input type=text name="materiaal"> <br />
<hr />
<input type="submit" name="submit" value="Insert">
</form>
</body>
<?
} else {



$connection = pg_connect("host=localhost port=5432 dbname=project user=postgres password=welkom");


if (!$connection) {
print("Connection Failed.");
exit;
}


pg_query($connection, "INSERT INTO modulen VALUES ('titel','code','omschrijving','materiaal')");


$myresult = pg_query($connection, "SELECT * FROM modulen WHERE titel='$titel'");


for ($lt = 0; $lt < pg_numrows($myresult); $lt++) {
$titel = pg_result($myresult, $lt, 0);
$code = pg_result($myresult, $lt, 1);
$omschrijving = pg_result($myresult, $lt, 2);
$materiaal = pg_result($myresult, $lt, 3);

// print het ingevoerde voor controlle
print("Het volgende is ingevoerd: <br />");
print("<hr /><br />");
print("Titel: $titel<br />\n");
print("Code: $code<br />\n");
print("Omschrijving: $omschrijving<br />\n");
print("Materiaal: $materiaal<br />\n");
}
}
?>
Van die DB heb ik geen kennis. Maar je moet wel na een post je vars goed ophalen.

if($_POST['submit'] != "Insert") {
Krijg je een error?

Dit lijkt me inderdaad niet goed
<?php
pg_query($connection, "INSERT INTO modulen VALUES ('titel','code','omschrijving','materiaal')");
?>

Definieer je INVOERkolommen eerst.
Ik neem namelijk aan dat je gebruik maakt van BigSerial, zodat de records een automatische id krijgen. In de bovenstaande query gaat hij bijvoorbeeld het woord "titel" in een BIGSERIAL veld zetten.

Ik zie ook dat je er geen variabele inzet, maar puur tekst. Ik denk dat je dat namelijk niet wil.
titel wordt dan $_POST['titel'], enz.

Probeer eens

<?php
pg_query($connection, "INSERT INTO modulen (titel, code, omschrijving, materiaal) VALUES ('".$_POST['titel']."', '".$_POST['code']."', '".$_POST['omschrijving']."', '".$_POST['materiaal']."')");
?>

Nog iets opgevallen

<?php
$myresult = pg_query($connection, "SELECT * FROM modulen WHERE titel='$titel'");

for ($lt = 0; $lt < pg_numrows($myresult); $lt++) {
$titel = pg_result($myresult, $lt, 0);
$code = pg_result($myresult, $lt, 1);
$omschrijving = pg_result($myresult, $lt, 2);
$materiaal = pg_result($myresult, $lt, 3);

// print het ingevoerde voor controlle
print("Het volgende is ingevoerd: <br />");
print("<hr /><br />");
print("Titel: $titel<br />\n");
print("Code: $code<br />\n");
print("Omschrijving: $omschrijving<br />\n");
print("Materiaal: $materiaal<br />\n");
}
?>

Dit is een erg omslagtige manier om je gegevens te tonen. Dit is wat effectiever:

<?php
$myresult = pg_query($connection, "SELECT * FROM modulen WHERE titel='$titel'");

while($row = pg_fetch_array($myresult)){
{
// print het ingevoerde voor controlle
print("Het volgende is ingevoerd: <br />");
print("<hr /><br />");
print("Titel: ".$row['titel']."<br />\n");
print("Code: ".$row['code']."<br />\n");
print("Omschrijving: ".$row['omschrijving']."<br />\n");
print("Materiaal: ".$row['materiaal']."<br />\n");
}
?>

Reageren