Hallo,
bin ein relativer PHP und MYSQL neuling und habe ein Problem.
Ich muss bis Samstag mein Projekt für den Ausbildungskurs fertiggestellt haben.
So nun zu meinem Problem:
Wenn ich beim Formular was ich erstellt habe auf OK klicke sei es beim insert oder update kommt danach eine leere Seite und in die Datenbank wird auch nichts eingetragen. Habe schon google gequält aber auch der hat nichts passendes ausgespuckt, bin mir sicher das ein erfahrenen Programmierer über diesen Fehler lacht.
Das große Problem ist ich habe mich im Skript verloren ich kann den Fehler nicht einkreisen.
Der Anfang:
// ---------------------------------------------------------------------------
mysql_connect("localhost", "root", "") or exit_error("Couldn't connect.");
mysql_select_db("hp") or exit_error("Couldn't select db.");
require_once "utilities.php";
$sql_kinder_termine =<<<EOSQL
SELECT kinder_termine.ID,
CONCAT(kinder.nachname, ' ', kinder.vorname) AS Kind,
DATE_FORMAT(kinder_termine.datum, '%a, %e. %M %Y') AS Am,
termine.start AS Von,
termine.ende AS Bis
FROM kinder INNER JOIN kinder_termine on kinder.Id = kinder_termine.kind
INNER JOIN termine on kinder_termine.termin = termine.ID
ORDER BY Kind
EOSQL;
//-----------------------------------------------------------------------------------------------------------------------------------------------
$formFunctions = array(formKinder, formTermine, formKinderTermine);
$tables = array(
array('<img src="icons/kinder.png" alt="Kinderliste"', $sql_kinder_termine),
array('Termine', 'SELECT ID, start AS Beginn, ende AS Ende FROM termine ORDER BY start'),
array('Gruppen', 'SELECT ID, bezeichnung AS Guppen FROM gruppen ORDER BY bezeichnung'),
array('Schulen', 'SELECT ID, bezeichnung AS Schulen FROM schulen ORDER BY bezeichnung')
);
$action = getParam('action', 'list');
$table = getParam('table', 0);
$ID = getParam('id', 0);
if ($action == 'list') $content = listtable($table);
else if ($action == 'form') $content = $formFunctions[$table]($ID);
else if ($action == 'termine') $content = terminEditor($ID);
else if ($action == 'terminsequenz') $content = terminSequenzErzeugen();
else if ($action == 'formkinder') $content = formKinder($ID);
else if ($action == 'new') $content = formKinder(0);
else if ($action == 'insert') $content = insertKind();
else if ($action == 'update') $content = updateKinder($ID);
echo htmlHeader("HEIVOS", "style.css") . template(createMenu(), $content) . htmlFooter();
mysql_close();
Hier mein Formular:
// ---------------------------------------------------------------------------
function formKinder($ID){
$nachname = "";
$vorname = "";
$anamnese = "";
$gebdt = "";
$schule = 0;
$gruppe = 0;
$caption = "Neues Kind anlegen";
$action = "insert";
if($ID){
//Formular zum Editieren
$sql =<<<EOSQL
SELECT kinder.ID,
kinder.nachname,
kinder.vorname,
kinder.anamnese,
kinder.gebdt,
schulen.bezeichnung,
gruppen.bezeichnung
FROM kinder
LEFT JOIN schulen ON kinder.ID = schulen.bezeichnung
LEFT JOIN gruppen ON kinder.ID = gruppen.bezeichnung
WHERE kinder.ID = $ID
EOSQL;
$schuleSELECT = createSELECT('schule',
'SELECT ID, bezeichnung FROM schulen ORDER BY bezeichnung',
0);
$gruppeSELECT = createSELECT('gruppe',
'SELECT ID, bezeichnung FROM gruppen ORDER BY bezeichnung',
0);
$res = mysql_query($sql) or exit_error(mysql_error() . "<br />sql");
$rs = mysql_fetch_row($res) or exit_error("Datensatz nicht mehr existent.");
$nachname = $rs[1];
$vorname = $rs[2];
$anamnese = $rs[3];
$gebdt = $rs[4];
$schule = $rs[5];
$gruppe = $rs[6];
$caption = "Kind Daten editieren";
$action = "update";
}
$html =<<<EOHTML
<p>$caption:</p>
<table cellspacing="0" cellpadding="0">
<form method="GET" action="hp.php">
<input type="hidden" name="action" value="$action" />
<input type="hidden" name="list" value="0" />
<input type="hidden" name="id" value="$KindID" />
<tr>
<td> Nachname: </td>
<td><input type="text" name="nachname" value="$nachname" size="25" maxlength="50" /></td>
</tr>
<tr>
<td> Vorname: </td>
<td> <input type="text" name="vorname" value="$vorname" size="25" maxlength="50" /></td>
</tr>
<tr>
<td> Geburtsdatum: </td>
<td> <input type="text" name="gebdt" value="$gebdt" size="10" maxlength="10" /></td>
</tr>
<tr>
<td> Anamnese: </td>
<td> <textarea name="anamnese" cols="40" rows="10">$anamnese</textarea></td>
</tr>
<tr>
<td> Schule: </td>
<td>$schuleSELECT</td>
</tr>
<tr>
<td> Gruppe: </td>
<td>$gruppeSELECT</td>
</tr>
<tr>
<td>
<input type="submit" value="OK" />
</td>
</tr>
</form>
EOHTML;
return $html;
}
Hier meine insert und update functionen:
//----------------------------------------------------------------------------------------------------------
function insertKind(){
$nachname = getParam('nachname', '');
$vorname = getParam('vorname', '');
$anamnese = getParam('anamnese', '');
$gebdt = getParam('gebdt', '');
$gruppe = getParam('gruppe', 0 );
$schule = getParam('schule', 0 );
$sql =<<<EOSQL
INSERT INTO kinder(nachname, vorname, anamnese, gebdt, gruppe_fk, schule_fk)
VALUES($nachname, $vorname, $anamnese, $gebdt, $gruppe, $schule)
EOSQL;
}
//---------------------------------------------------------------------------------------------------------
function updateKinder($ID){
$nachname = getParam('nachname', '');
$vorname = getParam('vorname', '');
$anamnese = getParam('anamnese', '');
$gebdt = getParam('gebdt', '');
$gruppe = getParam('gruppe', 0);
$schule = getParam('schule', 0);
$sql =<<<EOSQL
UPDATE kinder
SET nachname = '$nachname',
vorname = '$vorname',
anamnese = '$anamnese',
gebdt = '$gebdt',
gruppe_fk = '$gruppe',
schule_fk = '$schule'
WHERE ID = '$ID'
EOSQL;
mysql_query($sql) or exit_error(mysql_error() ."<br />$sql");
}
Hoffe Ihr könnt mir weiter helfen, das würde mir einige Last nehmen und ich hätte auch sehr viel gelernt, falls noch was fehlt einfach screiben bitte.
Vielen Dank im Voraus
bin ein relativer PHP und MYSQL neuling und habe ein Problem.
Ich muss bis Samstag mein Projekt für den Ausbildungskurs fertiggestellt haben.
So nun zu meinem Problem:
Wenn ich beim Formular was ich erstellt habe auf OK klicke sei es beim insert oder update kommt danach eine leere Seite und in die Datenbank wird auch nichts eingetragen. Habe schon google gequält aber auch der hat nichts passendes ausgespuckt, bin mir sicher das ein erfahrenen Programmierer über diesen Fehler lacht.
Das große Problem ist ich habe mich im Skript verloren ich kann den Fehler nicht einkreisen.
Der Anfang:
// ---------------------------------------------------------------------------
mysql_connect("localhost", "root", "") or exit_error("Couldn't connect.");
mysql_select_db("hp") or exit_error("Couldn't select db.");
require_once "utilities.php";
$sql_kinder_termine =<<<EOSQL
SELECT kinder_termine.ID,
CONCAT(kinder.nachname, ' ', kinder.vorname) AS Kind,
DATE_FORMAT(kinder_termine.datum, '%a, %e. %M %Y') AS Am,
termine.start AS Von,
termine.ende AS Bis
FROM kinder INNER JOIN kinder_termine on kinder.Id = kinder_termine.kind
INNER JOIN termine on kinder_termine.termin = termine.ID
ORDER BY Kind
EOSQL;
//-----------------------------------------------------------------------------------------------------------------------------------------------
$formFunctions = array(formKinder, formTermine, formKinderTermine);
$tables = array(
array('<img src="icons/kinder.png" alt="Kinderliste"', $sql_kinder_termine),
array('Termine', 'SELECT ID, start AS Beginn, ende AS Ende FROM termine ORDER BY start'),
array('Gruppen', 'SELECT ID, bezeichnung AS Guppen FROM gruppen ORDER BY bezeichnung'),
array('Schulen', 'SELECT ID, bezeichnung AS Schulen FROM schulen ORDER BY bezeichnung')
);
$action = getParam('action', 'list');
$table = getParam('table', 0);
$ID = getParam('id', 0);
if ($action == 'list') $content = listtable($table);
else if ($action == 'form') $content = $formFunctions[$table]($ID);
else if ($action == 'termine') $content = terminEditor($ID);
else if ($action == 'terminsequenz') $content = terminSequenzErzeugen();
else if ($action == 'formkinder') $content = formKinder($ID);
else if ($action == 'new') $content = formKinder(0);
else if ($action == 'insert') $content = insertKind();
else if ($action == 'update') $content = updateKinder($ID);
echo htmlHeader("HEIVOS", "style.css") . template(createMenu(), $content) . htmlFooter();
mysql_close();
Hier mein Formular:
// ---------------------------------------------------------------------------
function formKinder($ID){
$nachname = "";
$vorname = "";
$anamnese = "";
$gebdt = "";
$schule = 0;
$gruppe = 0;
$caption = "Neues Kind anlegen";
$action = "insert";
if($ID){
//Formular zum Editieren
$sql =<<<EOSQL
SELECT kinder.ID,
kinder.nachname,
kinder.vorname,
kinder.anamnese,
kinder.gebdt,
schulen.bezeichnung,
gruppen.bezeichnung
FROM kinder
LEFT JOIN schulen ON kinder.ID = schulen.bezeichnung
LEFT JOIN gruppen ON kinder.ID = gruppen.bezeichnung
WHERE kinder.ID = $ID
EOSQL;
$schuleSELECT = createSELECT('schule',
'SELECT ID, bezeichnung FROM schulen ORDER BY bezeichnung',
0);
$gruppeSELECT = createSELECT('gruppe',
'SELECT ID, bezeichnung FROM gruppen ORDER BY bezeichnung',
0);
$res = mysql_query($sql) or exit_error(mysql_error() . "<br />sql");
$rs = mysql_fetch_row($res) or exit_error("Datensatz nicht mehr existent.");
$nachname = $rs[1];
$vorname = $rs[2];
$anamnese = $rs[3];
$gebdt = $rs[4];
$schule = $rs[5];
$gruppe = $rs[6];
$caption = "Kind Daten editieren";
$action = "update";
}
$html =<<<EOHTML
<p>$caption:</p>
<table cellspacing="0" cellpadding="0">
<form method="GET" action="hp.php">
<input type="hidden" name="action" value="$action" />
<input type="hidden" name="list" value="0" />
<input type="hidden" name="id" value="$KindID" />
<tr>
<td> Nachname: </td>
<td><input type="text" name="nachname" value="$nachname" size="25" maxlength="50" /></td>
</tr>
<tr>
<td> Vorname: </td>
<td> <input type="text" name="vorname" value="$vorname" size="25" maxlength="50" /></td>
</tr>
<tr>
<td> Geburtsdatum: </td>
<td> <input type="text" name="gebdt" value="$gebdt" size="10" maxlength="10" /></td>
</tr>
<tr>
<td> Anamnese: </td>
<td> <textarea name="anamnese" cols="40" rows="10">$anamnese</textarea></td>
</tr>
<tr>
<td> Schule: </td>
<td>$schuleSELECT</td>
</tr>
<tr>
<td> Gruppe: </td>
<td>$gruppeSELECT</td>
</tr>
<tr>
<td>
<input type="submit" value="OK" />
</td>
</tr>
</form>
EOHTML;
return $html;
}
Hier meine insert und update functionen:
//----------------------------------------------------------------------------------------------------------
function insertKind(){
$nachname = getParam('nachname', '');
$vorname = getParam('vorname', '');
$anamnese = getParam('anamnese', '');
$gebdt = getParam('gebdt', '');
$gruppe = getParam('gruppe', 0 );
$schule = getParam('schule', 0 );
$sql =<<<EOSQL
INSERT INTO kinder(nachname, vorname, anamnese, gebdt, gruppe_fk, schule_fk)
VALUES($nachname, $vorname, $anamnese, $gebdt, $gruppe, $schule)
EOSQL;
}
//---------------------------------------------------------------------------------------------------------
function updateKinder($ID){
$nachname = getParam('nachname', '');
$vorname = getParam('vorname', '');
$anamnese = getParam('anamnese', '');
$gebdt = getParam('gebdt', '');
$gruppe = getParam('gruppe', 0);
$schule = getParam('schule', 0);
$sql =<<<EOSQL
UPDATE kinder
SET nachname = '$nachname',
vorname = '$vorname',
anamnese = '$anamnese',
gebdt = '$gebdt',
gruppe_fk = '$gruppe',
schule_fk = '$schule'
WHERE ID = '$ID'
EOSQL;
mysql_query($sql) or exit_error(mysql_error() ."<br />$sql");
}
Hoffe Ihr könnt mir weiter helfen, das würde mir einige Last nehmen und ich hätte auch sehr viel gelernt, falls noch was fehlt einfach screiben bitte.
Vielen Dank im Voraus
Comment