witam,
mam skrypt z którego wrzucam do z jednej głownej tabeli dane z parametrami urzadzenia. kazde urzadzenie ma swoj niepowtarzalny numer. potrzebuje stworzyc tabele historyczna dla kazdego nr urzadzenia. Parametry do tabeli historycznej musza byc zapisywane:
Jelsi nowe urzadznie ---> dodaj do TAbeli głownej i historycznej
Jesli update danych urzadzenia --> uaktualnij wpis w TABELI głownej oraz dopisz rekord do historycznej(dobrze by bylo gdyby tabela sie zapetlala dla kazdego nr do 10 wpisow max)
Co wiem! - musze zaimplementoac TRIGGER'a nawet go juz napisalem ale mam problem z odpowiednim umieszczeniu w skrypcie.
Prosze bardzo o POMOC!
oto skypt:
<?
$nhost = "localhost";
$nbaza = "nazwa_bazy";
$nuser = "root";
$npassword = "";
$skasuj = trim($_GET["skasuj"]);
$popraw = trim($_GET["popraw"]);
$id = trim($_GET["id"]);
$moc = trim($_GET["moc"]);
$typ = trim($_GET["typ"]);
$obroty = trim($_GET["obroty"]);
$urzadzenie = trim($_GET["urzadzenie"]);
$obiekt = trim($_GET["obiekt"]);
$status = trim($_GET["status"]);
$notatki = trim($_GET["notatki"]);
$data = trim($_GET["data"]);
if ((($skasuj<>"")or($popraw<>""))and($id=="")) {
// ### pobranie rekordu z tabeli oraz kasowanie
if ($popraw<>"") $nr=$popraw; else $nr=$skasuj;
$baza = mysql_connect($nhost, $nuser, $npassword);
if ($baza) {
$wynik = mysql_select_db($nbaza,$baza);
if ($wynik) {
$wynik = mysql_query("SELECT * FROM silniki WHERE id=$nr");
if (($wynik)and(mysql_num_rows($wynik)>0)) {
if ($skasuj<>"") {
mysql_query("DELETE FROM silniki WHERE id=$skasuj");
echo "<b>Rekord skasowany:</b>";
}
$pole=mysql_fetch_array($wynik);
$id = $pole["id"];
$moc = $pole["moc"];
$typ = $pole["typ"];
$obroty = $pole["obroty"];
$urzadzenie = $pole["urzadzenie"];
$obiekt = $pole["obiekt"];
$status = $pole["status"];
$notatki = $pole["notatki"];
$data = $pole["data"];
}
}
mysql_close($baza);
}
} else if ($id<>"") {
//---- dopisanie lub uaktualnienie tabeli
if (!eregi("^[0-9]+$",$id)) echo "<br /><b>błąd w polu ID-NUMER:</b>";
else if (!eregi("^[0-9]+$",$moc)) echo "<br /><b>błąd w polu MOC</b>";
else if (!eregi("^[0-9]+$",$obroty)) echo "<br /><b>błąd w polu OBROTY</b>";
else if (!eregi(
"^(19|20)[0-9][0-9]-([0][1-9]|[1][0-2])-([0-2][1-9]|10|20|30|31)$",
$data)) echo "<br /><b>błąd w polu DATA</b>";
else {
$baza = mysql_connect($nhost, $nuser, $npassword);
if ($baza) {
$wynik = mysql_select_db($nbaza);
if ($wynik) {
if ($popraw=="") {
$wynik = mysql_query("
INSERT INTO silniki VALUES($id,'$moc','$typ','$obroty','$urzadzenie', '$obiekt', '$status', '$data', '$notatki')
");
tutaj jest zapis do drugiej tabeli ale mi to nie chce działac--- >$hist = mysql_query("INSERT INTO historia(id_silnik,moc,typ,obroty,urzadzenie,obiekt,status,data,notatki) VALUE('$id','$moc', '$typ','$obroty','$urzadzenie','$obiekt','$status','$data','$notatki')");
if ($wynik and $hist) {
echo "<br /><b>Rekord został dodany</b>";
$id=""; $moc=""; $typ=""; $obroty=""; $urzadzenie=""; $obiekt=""; $status=""; $data=""; $notatki="";
}
} else {
$wynik = mysql_query("
UPDATE silniki SET id=$id, moc='$moc',
typ='$typ', obroty='$obroty', urzadzenie='$urzadzenie', obiekt='$obiekt', status='$status', dataur='$data', notatki='$notatki' where id=$popraw
");
/* co z tym
$hist = mysql_query(" CREATE TRIGGER kopia AFTER UPDATE ON silniki
FOR EACH ROW BEGIN
INSERT INTO historia SET moc=OLD.moc, typ=OLD.typ, obroty=OLD.obroty, urzadzenie=OLD.urzadzenie, obiekt=OLD.obiekt,
status=OLD.status, dataz=NOW(), notatki=OLD.notatki;");*/
if ($wynik) {
echo "<br /><b>Rekord został uaktualniony</b>"; $popraw="";
$id=""; $moc=""; $typ=""; $obroty=""; $urzadzenie=""; $obiekt=""; $status=""; $data=""; $notatki="";
}
}
}
mysql_close($baza);
}
}
}
// ----- napis na guziku w formularzu
if ($popraw<>"") $guzik="Uaktualnij";
else if ($skasuj<>"") $guzik="Przywróć";
else { $guzik="Dodaj"; };
?>
dziekuje za wszelka pomoc