Cześć wszystkim, walczę od kilku dni z tym kodem, zadaniem tego kodu ma być przesłanie całej tabeli która jest zamieszczona na screenie i zmienic tylko wiersz w którym zostały zmienione dane, niestety nie działa mi to w taki sposób, bo edytuje wszystkie wiersze, wstawiam kod, może ktoś znajdzie mój błąd ;/
Jeśli chodzi w jaki sposób sprawdzam czy zmienia jeden rekord czy wszystkie to zmieniam sobie recznie w bazie kolumne ostatnia edycja i sprawdzam czy zmienilo tylko jeden wiersz czy wszystkie po przeładowaniu strony
<?php
/*
program sprawdza poprawność danych i zapisuje rekordy "sv"
-- jeśli ju z istnieją - to te wczesniejsze usuwa
*/
require("../../macros/infopro.php");
require("../../MC/funkcje/pracownia_osoby.php");
$loginCookie='';
$loginUser='';
$loginPwd5='';
$loginStmp='';
$dostep='';
$adres = maszyna().'zest_pom/daty_przekaz.php';
GET_LOGIN_COOKIE_PROG($loginCookie, $loginUser, $loginPwd5, $loginStmp, $adres, $dostep);
if (!strcasecmp($dostep, 't') == 0)
{
echo "<h2>Próba włamania do systemu<font color=red></font></h2>";
exit();
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
</head>
<?php
$host = "127.0.0.1";
$user="XXXX";
$pass="YYYY";
setlocale (LC_COLLATE, 'pl_PL');
$OPTIONS = array( i5_naming => DB2_I5_NAMING_ON );
$conn = db2_connect("*LOCAL", $user, $pass, $OPTIONS);
if (!$conn) {
echo "Connection failed. SQL Err:";
echo db2_conn_error();
echo "<br>";
echo db2_conn_errormsg();
exit();
}
//print 'w 44 w zapisz_zkm GET = ';
//print_r ($_GET);
print '<br>w 124 POST = ';
print_r ($_POST).'<br>';
print '<br>';
//exit();
if (isset($_POST['library']))
$library=$_POST['library'];
else {
if (isset($_GET['library'])) {
$library=$_GET['library'];
}
else {
$library = "";
}
}
$rk = $_POST['rk'];
$msc = $_POST['msc'];
$dzn = $_POST['dzn'];
$svkom = $_POST['svkom'];
$svsbl = $_POST['svsbl'];
$ostedit = $_POST['ostedit'];
$ostedycja = $_POST['ostedycja'];
$svzal=$loginUser;
$svdat=date('Ymd');
$svkom = array();
foreach ($_POST as $key1 => $value)
{
//rok
if ($key1 == "rk"){
foreach ($_POST['rk'] as $key2 => $value2){
//print '<br>w 90 $key2='.$key2.'=$value2='.$value2;
$rk[$key2] = str_replace(" ", 0,$value2);
}
}
//miesiac
if ($key1 == "msc"){
// print_r($value);
foreach ($_POST['msc'] as $key3 => $value3){
//print '<br>w 99 $key3='.$key3.'=$value3='.$value3;
$msc[$key3] = str_replace(" ", 0,$value3);
}
}
print '<br>';
//dzien
if ($key1 == "dzn"){
// print_r($value);
foreach ($_POST['dzn'] as $key4 => $value4){
//print '<br>w 108 $key4='.$key4.'=$value4='.$value4;
$dzn[$key4] = str_replace(" ", 0,$value4);
}
}
print '<br>';
print_r($key1).'<br>';
//svkom
if ($key1 == "svkom"){
// print_r($value);
foreach ($_POST['svkom'] as $key5 => $value5){
//print '<br>w 108 $key5='.$key5.'=$value5='.$value5;
$svkom[$key5] = trim($value5);
$dlug = strlen($svkom[$key5]);
//print 'w 132 $dlug='.$dlug.'=<br>';
if ($dlug>120){
$adres_back = maszyna().'lista_sv.php?&pusrid='.$loginUser.
'&rk='.$rk.'&msc='.$msc.'&dzn='.$dzn;
?>
<script language="JavaScript">
window.alert('Komentarze sa za dlugie');
location="<?echo $adres_back; ?>";
</script>
<?
}
$svkom[$key5] =str_replace("\r\n", " ",$svkom[$key5]);
$svkom[$key5]=str_replace("'", " ",$svkom[$key5]);
$svkom[$key5]=str_replace('"', '',$svkom[$key5]);
$svkom[$key5]=trim($svkom[$key5]);
}
}
//print_r($svkom).'<br>';
foreach ($svkom as $key => $value)
{
//print 'w 178 <br> key='.$key;
$id = explode("/",$key);
//print_r ($id);
$svsbl = $id[0];
$svdtp = $id[1];
print '<br>$id='.$id[0].'';
//$key_p - nr pracowni
//dla każdej pracowni trzeba sprawdzić czy jest rekord dla bieżąego okresu
$sql_tpd="select count(*) from ".$library."/sv where svsbl='$svsbl' and svdtp=$svdtp";
print '<br>w 251 $sql_tpd='.$sql_tpd.'=<br>';
print_r($key);
$stmt_tpd = db2_query($conn, $sql_tpd);
if (!$stmt_tpd) {
print '<center><font size="5" color="Maroon">';
print"Wystąpił błąd podczas odczytu bazy sv<br>";
exit();
}
$row_tpd = db2_fetch_array($stmt_tpd);
$jest_tpd = $row_tpd[0];
print '<br>w 196 $jest_tpd='.$jest_tpd.'=<br>';
if (($rk[$key] == 0) or ($msc[$key] == 0) or ($dzn[$key] == 0))
{
$svdtp = 0;
}
else {
$svdtp = $rk[$key] * 10000 + $msc[$key] * 100 + $dzn[$key];
}
$svkom1 = $svkom[$key];
$svprc1= $svprc[$key];
//print_r($svprc1);
//brak zapisu dla zadania
if ($jest_tpd == 0) {
if (($svdtp > 0) or (strlen($svkom) > 0)){
$sql_tpd_i="INSERT INTO ".$library."/sv VALUES( $svdtp, '$svsbl', $svprc1, '$svkom1', '$svzal', $svdat)" ;
$stmt_tpd_i = db2_query($conn, $sql_tpd_i);
print '<br>w 214 $sql_tpd_i'.$sql_tpd_i.'=<br>';
if (!$stmt_tpd_i) {
print '<center><font size="5" color="Maroon">';
print"Wystąpił błąd podczas zapisu do bazy sv<br>";
exit();
}
}
}
//jest zapis dla zadania
else {
if (($svdtp > 0) or (strlen($svdtp) > 0)){
$sql_tpd_u="update ".$library."/sv set svsbl='$svsbl', svdtp=$svdtp, svprc= $svprc1, svkom = '$svkom1', svzal='$svzal', svdat=$svdat where svdtp=$id[1] and svsbl='$id[0]'";
print 'w 238 $sql_tpd_u='.$sql_tpd_u.'=<br>';
$stmt_tpd_u = db2_query($conn, $sql_tpd_u);
$stmt_tpd_u = db2_query($conn, $sql_tpd_u);
if (!$stmt_tpd_u) {
print '<center><font size="5" color="Maroon">';
print"Wystąpił błąd podczas modyfikacji rekordu bazy sv<br>";
exit();
}
}
}
}
}
$adres_powrot = 'lista_sv.php?&pusrid='.$loginUser.
'&rk='.$rk.'&msc='.$msc.'&dzn='.$dzn;
//print 'w 96 $adres='.$adres.'=<br>';
?>
<
<script language="JavaScript">
location="<?echo $adres_powrot; ?>";
</script>
<?php
db2_close($conn);
?>