Als ik op http://bert.sna-webo.be/scripts/sr_inschrijving.php het formulier invul en nadien op toevoeg klik verschijnt volgende melding links bovenaan

Notice: Undefined index: d_scheidsrechter_id in /home/sna/domains/sna-webo.be/public_html/bert/scripts/sr_inschrijving.php on line 122

Alle gegevens worden wel bewaard in de tabel t_scheidsrechter en ook de naam van de club wordt bewaard in t_sr_club
Deze tabel bestaat uit volgende velden:
d_sr_club_id (PK + AI)
t_club_d_club_id (deze waarde komt ook vanuit het formulier en dit wordt goed ingevuld)
t_scheidsrechter_d_scheidsrechter_id (hier moet een link komen naar het scheidsrechter id dat in t_scheidsrechter staat) hiervoor gebruik ik een select max maar blijkbaar loopt er daar iets mis
Hieronder de volledige code van het formulier
<?php
error_reporting(E_ALL);
ini_set('display_errors',1);

/******************
*Initialisatie
*******************/
$_srv = $_SERVER['PHP_SELF'];
$_output = "";
/******************
* autoload
******************/
function __autoload($className) {
require_once "../klassen/$className.class.php";
}

include("../connections/pdo.inc.php");
include("../php_lib/menu.inc.php");
try
{
// toon formulier
if (! isset($_POST["submit"])) // geen formulier
{
// titel
$_output .= "<form id='club' method='post' action='$_srv' enctype='multipart/form-data'><fieldset><legend>Inschrijvingsformulier Scheidsrechter</legend><ol><li>";
// vergunningnummer
$_output.="<label>Vergunningnummer</label><input type='text' pattern='[0-9]{6,7}' name='Vergunningnummer' size='20' placeholder='Vergunningnummer' autofocus='autofocus' required/></li><li>";

// familienaam
$_output.= "
<label>Familienaam</label><input type='text' name='Familienaam' size='40' placeholder='Familienaam' required/></li><li>";

// voornaam
$_output.= "
<label>Voornaam</label><input type='text' name='Voornaam' size='20' placeholder='Voornaam' required/></li><li>";

// geboortedatum
$_output.= "
<label>Geboortedatum</label><input type='date' name='Geboortedatum' required/></li><li>";

// veld straat
$_output.= "
<label>Straat</label><input type='text' name='Straat' size='45' placeholder='Straat' required/><input type='text' name='Nummer' size='10' placeholder='Nummer' required/><input type='text' name='Extra' size='10' placeholder='Extra'/></li>"
;

//Postcode
$_resultpostcode = $_PDO -> query("select * from t_gemeente;");
if ($_resultpostcode -> rowCount() > 0)
{
$_output.= "<li><label>Postcode:</label><select name='Postcode'>";
while ($_row = $_resultpostcode -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= "<option value=" . $_row['d_gemeente_id'].">" .$_row['d_gemeentenaam'] . "&nbsp;" . $_row['d_postnummer'] ."</option></li>";
}
}
//Dit testveld verschijnt vlak achter postcode/gemeente maar is nu onzichtbaar
$_output.= "</li><li><label>Test</label><input type='hidden' name='Test' size='0' placeholder='Test'/></li>";

//Telefoon
$_output.= "</li><li><label>Telefoon</label><input type='text' name='Telefoon' size='15' placeholder='Telefoon'/></li>";


//GSM
$_output.= "<li><label>GSM</label><input type='text' name='GSM' size='15' placeholder='GSM'/></li>";

//Email
$_output.= "</li><li><label>Email</label><input type='email' name='Email' size='50' placeholder='Email' required/></li>";

//Bankrekening
$_output.= "</li><li><label>Bankrekening</label><input type='text' name='Bankrekening' size='50' placeholder='BE00000000000000' required/></li>";
//Club 1
$_resultclub1 = $_PDO -> query("SELECT * FROM t_club WHERE d_club_id > 0 ORDER BY d_naam;");
//select * from t_club ORDER BY d_naam
if ($_resultclub1 -> rowCount() > 0)
{
$_output.= "<li><label>Club 1:</label><select name='Club1'>";
while ($_row = $_resultclub1 -> fetch(PDO:: FETCH_ASSOC))
{
$_output.= "<option value=" . $_row['d_club_id'].">" .$_row['d_naam'] . "&nbsp;" . $_row['d_stamnummer'] ."</option></li>";
}
}
//Dit testveld verschijnt vlak achter club1 maar is nu onzichtbaar
$_output.= "</li><li><label>Test</label><input type='hidden' name='Test' size='0' placeholder='Test'/></li>";


$_output.= "<br><button type='submit' name='submit'>Toevoegen</button>
</fieldset>
</form>";

}
else
{

if (!isset($_POST["$_srv"])){

$_vergunningnummer = addslashes($_POST["Vergunningnummer"]);
$_naam = addslashes($_POST["Familienaam"]);
$_voornaam = addslashes($_POST["Voornaam"]);
$_geboortedatum = addslashes($_POST["Geboortedatum"]);
$_straat = addslashes($_POST["Straat"]);
$_nummer = addslashes($_POST["Nummer"]);
$_extra = addslashes($_POST["Extra"]);
$_postcode =$_POST["Postcode"];
$_telefoon = addslashes($_POST["Telefoon"]);
$_GSM = addslashes($_POST["GSM"]);
$_email = addslashes($_POST["Email"]);
$_bankrekening = addslashes($_POST["Bankrekening"]);
$_club1 = $_POST["Club1"];

// query
{
$_resultOK1 = $_PDO -> query("INSERT INTO t_scheidsrechter(d_vergunningnummer,d_naam, d_voornaam,d_geboortedatum,d_straat,d_nummer,d_extra,t_gemeente_d_gemeente,d_telefoon,d_gsm,d_email,d_bankrekening) VALUES ('$_vergunningnummer','$_naam','$_voornaam','$_geboortedatum','$_straat','$_nummer','$_extra','$_postcode','$_telefoon','$_GSM','$_email','$_bankrekening');");

$_srid = $_PDO -> query("SELECT MAX(d_scheidsrechter_id) FROM t_scheidsrechter;");

if ($_srid -> rowCount() > 0)
{
while ($_row = $_srid-> fetch(PDO:: FETCH_ASSOC))
{
$_ScheidsID = $_row['d_scheidsrechter_id'];
}
}

$_resultOK2 = $_PDO -> query("INSERT INTO t_sr_club(t_club_d_club_id, t_scheidsrechter_d_scheidsrechter_id) VALUES ('$_club1','$_ScheidsID');");


$_output = htmlentities("$_POST[Voornaam] $_POST[Familienaam] is ingeschreven als scheidsrechter voor het seizoen 2013-2014.");



}
}
}

// Object instantieren
$_smarty = new My_smarty();

// We kennen de variabelen toe
$_smarty->assign('menuh',menu('H'));
$_smarty->assign('menuv',menu(1));
$_smarty->assign('inhoud', $_output);
// display it
$_smarty->display('test.tpl');

}

catch( PDOexception $e ){
//doe iets met de foutmelding
// log("../log/logfile.csv");
// errorMessage();
echo $e->getMessage();

}

?>
Dat kan je natuurlijk zelf bijzonder simpel checken door even een print_r te doen op de array die het probleem oplevert. Dan zal je zien dat niet $_row['d_scheidsrechter_id'] bestaat, maar $_row['MAX(d_scheidsrechter_id)'].

Maak het jezelf dan simpel door in je sql query een alias te geven aan zo'n berekende kolom:

SELECT MAX(d_scheidsrechter_id) AS max_scheids
FROM t_scheidsrechter

Nu kan je het uitleze met $_row['max_scheids'].

Overigens, nog een tip, kan je het nog makkelijker doen omdat je het laatst gegenereerde auto increment id kan opvragen met de query:

SELECT LAST_INSERT_ID()

Reageren