POSTSQL en formulier

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

14/10/2005 15:51:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?

  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>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?
  } 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");
    }
  }

?>
 
PHP hulp

PHP hulp

15/01/2025 14:10:31
 
- SanThe -

- SanThe -

14/10/2005 16:43:00
Quote Anchor link
Van die DB heb ik geen kennis. Maar je moet wel na een post je vars goed ophalen.

if($_POST['submit'] != "Insert") {
 
Barman V

Barman V

14/10/2005 18:28:00
Quote Anchor link
Krijg je een error?

Dit lijkt me inderdaad niet goed
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
pg_query($connection, "INSERT INTO modulen (titel, code, omschrijving, materiaal) VALUES ('".$_POST['titel']."', '".$_POST['code']."', '".$_POST['omschrijving']."', '".$_POST['materiaal']."')");
?>
 
Barman V

Barman V

14/10/2005 18:32:00
Quote Anchor link
Nog iets opgevallen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?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");
    }

?>
Gewijzigd op 14/10/2005 18:33:00 door Barman V
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.