Hallo, Ik probeer om gegevens in twee tabellen in te voeren via een html invoer bestand. De gegevens komen over! in mijn php bestand.
Iemand een idee waarom de tweede insert niet wordt uitgevoerd?
Dit is mijn code:
<?php
include "verbinden.php";

function GetVar($name)
{
if (isset($_POST[$name])) // raar dit zou imho de variabele woonplaats moeten zijn. Als ik dit wijzig in woonplaats de word de tabel plaatsen niet bijgewerkt. krijgt een lege waarde???
return $_POST[$name];
if (isset($_POST[$naam]))
return $_POST[$naam];
if (isset($_POST[$tav]))
return $_POST[$tav];
if (isset($_POST[$straat]))
return $_POST[$straat];
if (isset($_POST[$postcode]))
return $_POST[$postcode];
if (isset($_POST[$telefoon]))
return $_POST[$telefoon];
if (isset($_POST[$website]))
return $_POST[$website];
if (isset($_POST[$evenement]))
return $_POST[$evenement];
if (isset($_POST[$bdatum]))
return $_POST[$bdatum];
if (isset($_POST[$edatum]))
return $_POST[$edatum];
}
// controle of de gegevens overkomen kan later weg
$woonplaats = GetVar("woonplaats");
echo $woonplaats."<br>";
$naam = GetVar("naam");
echo $naam."<br>";
$tav = GetVar("tav");
echo $tav."<br>";
$straat = GetVar("straat");
echo $straat."<br>";
$postcode = GetVar("postcode");
echo $postcode."<br>";
$telefoon = GetVar("telefoon");
echo $telefoon."<br>";
$website = GetVar("website");
echo $website."<br>";

$evenement = GetVar("evenement");
echo $evenement."<br>";
$bdatum = GetVar("bdatum");
echo $bdatum."<br>";
$edatum = GetVar("edatum");
echo $edatum."<br>";

// deze insert gaat goed
$sql_str = 'SELECT * FROM plaatsen WHERE woonplaats = "'.$woonplaats.'"';
$sql = mysql_query($sql_str);

// de test gaat goed
$numrow = mysql_num_rows($sql);
if ($numrow>0)
{
echo 'Resultaten gevonden';
}
else
{
echo 'Geen resultaten gevonden';
// deze insert gaat goed mits zie boven met name ipv woonplaats??
$sql = 'INSERT INTO plaatsen (woonplaats) VALUES ("'.$woonplaats.'")';
$result = mysql_query($sql);
$plaatsen_id = 0;
if ($result)
$plaatsen_id = mysql_insert_id();
echo $plaatsen_id."<br>";

// deze insert gaat fout. Gegevens komen niet in de DB??
// deze tabel heeft een auto incr. ID veld.
$sql = 'INSERT INTO adressen VALUES ("'.$naam.'","'.$tav.'","'.$straat.'",
"'.$postcode.'","'.$plaatsen_id.'","'.$telefoon.'","'.$website.'")';
}
?>
Wat is de bedoeling van dit deel:

function GetVar($name)
{
               if (isset($_POST[$name]))     // raar dit zou imho de variabele woonplaats moeten zijn. Als ik dit wijzig in woonplaats de word de tabel plaatsen niet bijgewerkt. krijgt een lege waarde???
        return $_POST[$name];
    if (isset($_POST[$naam]))
        return $_POST[$naam];
    if (isset($_POST[$tav]))
        return $_POST[$tav];
    if (isset($_POST[$straat]))
        return $_POST[$straat];
    if (isset($_POST[$postcode]))
        return $_POST[$postcode];
    if (isset($_POST[$telefoon]))
        return $_POST[$telefoon];
                if (isset($_POST[$website]))
        return $_POST[$website];
                if (isset($_POST[$evenement]))
                               return $_POST[$evenement];
                if (isset($_POST[$bdatum]))
        return $_POST[$bdatum];
                if (isset($_POST[$edatum]))
        return $_POST[$edatum];
}
// controle of de gegevens overkomen kan later weg
$woonplaats = GetVar("woonplaats");
echo $woonplaats."<br>";
$naam = GetVar("naam");
echo $naam."<br>";
$tav = GetVar("tav");
echo $tav."<br>";
$straat = GetVar("straat");
echo $straat."<br>";
$postcode = GetVar("postcode");
echo $postcode."<br>";
$telefoon = GetVar("telefoon");
echo $telefoon."<br>";
$website = GetVar("website");
echo $website."<br>";

$evenement = GetVar("evenement");
echo $evenement."<br>";
$bdatum = GetVar("bdatum");
echo $bdatum."<br>";
$edatum = GetVar("edatum");
echo $edatum."<br>";
Het ophalen van de variabelen uit het html bestand. En kijken of ze overkomen in het php deel (andere bestand)
Ik zie net dat ik er een hoop onzin heb staan. Ik snap nu dat de eerst $_post[name] slaat op alle variablen met name bij de invoer velden in het html bestand. Toch iets geleerd vandaag.
Code verbeterd, niet gecheckt!

<?php
	require 'verbinden.php';

	if ($_SERVER['REQUEST_METHOD'] == 'POST') {
		$sql = "
			SELECT *
			FROM plaatsen
			WHERE woonplaats = '" . $_POST['woonplaats'] . "'";
		if (!$res = mysql_query($sql_str)) {
			trigger_error (mysql_error ());
		}
		else {
			if (mysql_num_rows ($res) > 0) {
				echo 'Resultaten gevonden';
			}
			else {
				echo 'Geen resultaten gevonden';
			// deze insert gaat goed mits zie boven met name ipv woonplaats??
				$sql = "
					INSERT INTO plaatsen
					(woonplaats)
					VALUES
					('" . mysql_real_escape_string ($_POST['woonplaats']) . "')";
				if (!$res = mysql_query($sql)) {
					trigger_error (mysql_error ());
				}
				else {
				   $plaatsen_id = mysql_insert_id();
					$sql = "
						INSERT INTO adressen
						(
							naam,
							tav,
							straat,
							postcode,
							plaatsen_id,
							telefoon,
							website)
						VALUES
						(
							'" . mysql_real_escape_string ($_POST['naam']) . "',
							'" . mysql_real_escape_string ($_POST['tav']) . "',
							'" . mysql_real_escape_string ($_POST['straat']) . "',
							'" . mysql_real_escape_string ($_POST['postcode']) . "',
							" . $plaatsen_id . ",
							'" . mysql_real_escape_string ($_POST['telefoon']) . "',
							'" . mysql_real_escape_string ($_POST['website']) . "'
						)";
					if (!mysql_query ($sql)) {
						trigger_error (mysql_error ());
					}
				}
			}
		}
	}
?> 
Jan, Dank voor de code. Ik snap het nog niet maar het werkt. Ik zal het bestuderen en in iedergeval de onzin code van
if (isset($_POST[$postcode]))
return $_POST[$postcode];
enz. eruit halen. ik snap nu hoe de post werkt.

Dank Erik

Reageren