Hi, ich bin gerade am lernen von PHP Scripten erstellen.
ich habe bisher immer das Formular in einem und die auswertung in einer anderen Datei gemacht. Nun möchte ich es aber auf der selben Seite machen.
http://www.kcserver.info/arithmetica/php-test/
Zuerst binde ich mal das Script mit
<?phpinclude(ABSPATH . 'wp-content/themes/xxx/php/db/db_linkcss.php');
?>
in page Template ein.
Das Testscript:
<html><head> <link rel="stylesheet" type="text/css" href="db_linkcss.css">
<script type="text/javascript">function send(ak,id){ if(ak==0) document.f.ak.value = "in"; else if(ak==1) document.f.ak.value = "up"; else if(ak==2) { if (confirm("Datensatz mit id " + id + " löschen?")) document.f.ak.value = "de"; else return; } document.f.id.value = id; document.f.submit();}</script></head>
<body><?php $con = mysqli_connect('localhost', 'xxx', 'xxx'); /* Verbindung zum MYSQL Server */ mysqli_select_db($con, "xxx"); /* SQL Abfrage ausführen */ $res = mysqli_query($con, "select * from training");
/* Aktion ausführen */ if(isset($_POST["ak"])) { /* neu eintragen */ if($_POST["ak"]=="in") { $sql = "insert training" /* Tabellenname in der Datenbank*/ . "(name, vorname, personalnummer," . " gehalt, geburtstag) values " . "('" . $_POST["na"] . "' , " . "'" . $_POST["vn"] . "' , " . $_POST["pn"] . " , " . $_POST["ge"] . " , " . "'" . $_POST["gt"] . "')"; mysqli_query($con, $sql);/* Beendet die Datenbankverbindung */ }
/* ändern */ else if($_POST["ak"]=="up") { $id = $_POST["id"]; $sql = "update training set " . "name = '" . $_POST["na"][$id] . "', " . "vorname = '" . $_POST["vn"][$id] . "', " . "personalnummer = '" . $_POST["pn"][$id] . "', " . "gehalt = '" . $_POST["ge"][$id] . "', " . "geburtstag = '" . $_POST["gt"][$id] . "'" . " where personalnummer = $id"; mysqli_query($con, $sql); }
/* löschen */ else if($_POST["ak"]=="de") { $sql = "delete from training where personalnummer = " . $_POST["id"]; mysqli_query($con, $sql); } }
/* Formular-Beginn */ echo "<form name='f' action='".$_SERVER['?p=1407']."' method='post'>"; echo "<input name='ak' type='hidden' />"; echo "<input name='id' type='hidden' />";
/* Tabellen-Beginn */ echo "\n\n<table border>" . "<tr>" . "<td>Name</td>" . "<td>Vorname</td>" . "<td>Pnr</td>" . "<td>Gehalt</td>" . "<td>Geb.</td>" . "<td>Aktion</td>" . "</tr>";
/* Neuer Eintrag */ echo "\n\n<tr>" . "<td><input name='na[0]' size='8' /></td>" . "<td><input name='vn[0]' size='6' /></td>" . "<td><input name='pn[0]' size='6' /></td>" . "<td><input name='ge[0]' size='6' /></td>" . "<td><input name='gt[0]' size='10' /></td>" . "<td><a href='javascript:send(0,0);'>neu eintragen</a></td>" . "</tr>";
/* Anzeigen */ $res = mysqli_query($con, "select * from training");
/* Alle vorhandenen Datensätze */ while ($dsatz = mysqli_fetch_assoc($res)) { $id = $dsatz["personalnummer"]; echo "\n\n<tr>" . "<td><input name='na[$id]' value='" . $dsatz["name"] . "' size='8' /></td>" . "<td><input name='vn[$id]' value='" . $dsatz["vorname"] . "' size='6' /></td>" . "<td><input name='pn[$id]' value='" . $dsatz["personalnummer"] . "' size='6' /></td>" . "<td><input name='ge[$id]' value='" . $dsatz["gehalt"] . "' size='6' /></td>" . "<td><input name='gt[$id]' value='" . $dsatz["geburtstag"] . "' size='10' /></td>" . "<td><a href='javascript:send(1,$id);'>ändern</a>" . " <a href='javascript:send(2,$id);'>löschen</a></td>" . "</tr>"; } echo "</table>"; echo "</form>"; mysqli_close($con);?></body></html>
Alles anzeigen
Den Aufruf hab ich nach langen herumprobieren so geschafft
echo "<form name='f' action='".$_SERVER['?p=1407']."'
method='post'>";
Überall im Google finde ich es immer mit PHP_self nur da springt er mir immer auf die Startseite von Wordpress.
Gibts da Tipps wie ich es einfach machen kann oder mss ich das Script immer auf die page id anpassen wie ich es oben mußte.
Bin erst am beginn von PHP und bin für jeden Tipp dankbar.
Es lässt sich der Text ändern aber ich kann keinen neuen anlegen. Wo liegt der Fehler im Script??