Problem na finiszu - modyfikacja tabeli.

0

Witam wszystkich, może ktoś mógłby mnie nakierować na poprawne rozwiązanie problemu dotyczącego modeyfikacji rekordów w tabeli ? Zrobiłem, dodawanie, usuwanie i modyfikowanie (ale nie do końca). Może, ktoś podrzuci jakieś pomysły bo już nie myslę. Oto kod:

<!DOCTYPE html>
<!--
	
 -->

<head>   
<title>Gk</title>
<meta charset="utf-8" />
<meta name="author" content=" G" />
<meta name="description" content="testujemy dalej." />
<meta name="keywords" content="G" />
<link rel="stylesheet" href="style.css" type="text/css" />
</head>  
<body> 
  <?PHP
	SESSION_START();
		try{
			$k=0;
			if(!(isset($_SESSION['uzytkownik'])&isset($_SESSION['haslo']))) {
				$_SESSION['uzytkownik']=$_POST['uzytkownik'];
				$_SESSION['haslo']=$_POST['haslo'];
				$k=1;
			}
			$isadd = false;
			$pdo = new PDO('pgsql:host=localhost;dbname=13892' , $_SESSION['uzytkownik'], $_SESSION['haslo']);
			if($k==1){
				echo 'Dostep zaakceptowany.';
				header("Refresh: 1");
				}
			else{
///////////////////////			Add			////////////////////////////////////			
					if(isset($_POST['wyslij'])) {
						$isadd = true;
						$id_pracownik=$_POST['id_pracownik'];
						$id_stanowisko=$_POST['id_stanowisko'];
						$id_oddzial=$_POST['id_oddzial'];
						$imie=$_POST['imie'];
						$nazwisko=$_POST['nazwisko'];
						$data_ur=$_POST['data_ur'];
						$ilosc = $pdo -> exec('INSERT INTO pracownik(id_pracownik, id_stanowisko, id_oddzial, imie, nazwisko, data_ur) 
						VALUES(\'
						'.$id_pracownik.'
						\',\'
						'.$id_stanowisko.'
						\',\'
						'.$id_oddzial.'
						\',\'
						'.$imie.'
						\',\'
						'.$nazwisko.'
						\',\'
						'.$data_ur.'
						\')
						');	
					
						if($ilosc > 0){
								echo 'INSERT: '.$ilosc.'';
						}
					}
					
					
					//////////////////		Delete		///////////////////////////				
					$isdelete = false;
					if( isset($_POST['delete'] )) {
						$isdelete = true;
						$zapytanie = $pdo -> exec('DELETE FROM pracownik WHERE id_pracownik='.$_POST['numer_delete']);
					}
					
					//////////////////		Modify			///////////////////////////
					$ismodify = 0;
					if ( isset($_POST['numer_modify'] )) {
						$ismodify = 1;
						
						//$id_pracownik = $_POST['id_pracownik'];
						//$id_stanowisko = $_POST['id_stanowisko'];
						//$id_oddzial = $_POST['id_oddzial'];
						//$imie = $_POST['imie'];
						//$nazwisko = $_POST['nazwisko'];
						//$data_ur = $_POST['data_ur'];
						
												$pdo -> exec('UPDATE pracownik SET 
														id_pracownik=\''.$_POST['id_pracownik'].'\',
														id_stanowisko=\''.$_POST['id_stanowisko'].'\',
														id_oddzial=\''.$_POST['id_oddzial'].'\',
														imie=\''.$_POST['imie'].'\',
														nazwisko=\''.$_POST['nazwisko'].'\',
														data_ur=\''.$_POST['data_ur'].'\'
														
														WHERE id_pracownik='.$_POST['numer_modify2'] );
					}
				
					echo "  55aa ".$ismodify;
					////////////////		Wyswietlanie		////////////////////
					
					
					
					echo '	<h2>Zawartość tabeli pracownik.</h2>';
					$zapytanie = $pdo -> query('SELECT * FROM pracownik');
					echo '<table>';
					echo '<tr>
							<td>id_pracownik</td>
							<td>id_stanowisko</td>
							<td>id_oddzial</td>
							<td>Imię</td>	
							<td>Nazwisko</td>
							<td>Data urodzenia</td>
						</tr>';
					foreach($zapytanie as $rekord)
					{
						if( $ismodify ==1 && $rekord['id_pracownik'] == $_POST['numer_modify']) {
							echo '<form action="bd6.php" method="post">
									<tr>
									<td><input type="text" value="'.$rekord['id_pracownik'].'"></td>
									<td><input type="text" value="'.$rekord['id_stanowisko'].'"></td>
									<td><input type="text" value="'.$rekord['id_oddzial'].'"></td>
									<td><input type="text" value="'.$rekord['imie'].'"></td>
									<td><input type="text" value="'.$rekord['nazwisko'].'"></td>
									<td><input type="text" value="'.$rekord['data_ur'].'"></td>
								   </form>
										<form action="bd6.php" method="POST">
											<td class="border0" colspan="2">
												<INPUT TYPE=SUBMIT VALUE="Accept" ?\')"></td>
												<INPUT TYPE="HIDDEN" NAME="numer_modify2" VALUE="'.$rekord['id_pracownik'].'">
										</form>
									
									<form action="bd6.php" method="POST">
										<td class="border0">
											<INPUT TYPE=SUBMIT VALUE="Cancel" OnClick="return confirm(\'Czy na pewno chcesz zakończyć modyfikację pacjenta o id '.$rekord['id_pracownik'].' ?\')">
										</td>
									</form>
									
							</tr>';
						} else {
						echo '<tr>
									<td>'.$rekord['id_pracownik'].'</td>
									<td>'.$rekord['id_stanowisko'].'</td>
									<td>'.$rekord['id_oddzial'].'</td>
									<td>'.$rekord['imie'].'</td>
									<td>'.$rekord['nazwisko'].'</td>
									<td>'.$rekord['data_ur'].'</td>
									
										<form action="bd6.php" method="POST">
											<td class="border0" colspan="2">
												<INPUT TYPE=SUBMIT NAME="modify" VALUE="Modify" OnClick="return confirm(\'Czy na pewno chcesz zmodyfikować pacjenta o id '.$rekord['id_pracownik'].' ?\')"></td>
												<INPUT TYPE="HIDDEN" NAME="numer_modify" VALUE="'.$rekord['id_pracownik'].'">
										</form>
									
										<form action="bd6.php" method="POST">
											<td class="border0" colspan="2">
												<INPUT TYPE=SUBMIT NAME="delete" VALUE="Delete" OnClick="return confirm(\'Czy na pewno chcesz usunąć pacjenta o id '.$rekord['id_pracownik'].' ?\')">
												<INPUT TYPE="HIDDEN" NAME="numer_delete" VALUE="'.$rekord['id_pracownik'].'" >
												
											</td>
										</form>
									
							</tr>';
						}
					}
					echo '</table>';
					$zapytanie-> closeCursor();
					
					
					echo '<form Action="bd6.php" Method="POST">
								<table>
										<tr>
											<td class="border0">ID pracownika:</td>
											<td class="border0"><p><INPUT NAME="id_pracownik" TYPE="TEXT"></p></td>
										</tr>
										<tr>
											<td class="border0">ID stanowisko:</td>
											<td class="border0"><p><INPUT NAME="id_stanowisko" TYPE="TEXT"></p></td>
										</tr>
										<tr>
											<td class="border0">ID oddzial:</td>
											<td class="border0"><p><INPUT NAME="id_oddzial" TYPE="TEXT"></p></td>
										</tr>
										<tr>
											<td class="border0">Imie:</td>
											<td class="border0"><p><INPUT NAME="imie" TYPE="TEXT"></p></td>
										</tr>
										<tr>
											<td class="border0">Nazwisko:</td>
											<td class="border0"><p><INPUT NAME="nazwisko" TYPE="TEXT"></p></td>
										</tr>
										<tr>
											<td class="border0">Data urodzenia:</td>
											<td class="border0"><p><INPUT NAME="data_ur" TYPE="TEXT"></p></td>
										</tr>
										
										<tr><p><INPUT NAME="wyslij" TYPE=SUBMIT VALUE="Dodaj"></p><tr>
								</table>

						</form>';
				
			
			}
		}catch(PDOException $e){
			echo 'Błędne haslo lub uzytkownik';
			//header("Refresh: 1;
			//		url=bd6.html");
		}
	?>
</body>  
</html>  
 
0

klikam na modyfikację -> mam aktywne pola tekstowe + obok pojawiają się przyciski akceptuj i anuluj. Nie działa tylko zaakceptowanie...ktore powinno wstawic zedytowane pola do tabeli

0

Najpierw popraw formatowanie, bo te losowe wcięcia powodują, że chce się płakać, a nie czytać. Zasada jest taka - nowy zagnieżdżony blok kodu - nowe wcięcie o zawsze tej samej szerokości (np. tab o szerokości czterech spacji). Nigdy inaczej.
Potem podziel to na funkcje trzymając się zasady DRY (Don't Repeat Yourself). Zamiast robić taki sam formularz dwukrotnie, raz do edycji, raz do dodawania, zrób go raz, przy edycji dodatkowo wypełniając danymi. Jak już będziesz miał to dobrze zrobione, to błąd sam zniknie.
Na koniec poczytaj o SQL Injection, bo Twoim kodem każdy początkujący hacker wyczyści całą Twoją bazę, uprzednio ściągnąwszy sobie wszystkie Twoje dane.

0

Kod jest wrzucony z notepada, w którym długość okna zmienia się wraz z pisanym kodem dlatego tak brzydko to wygląda na forum. O Injection poczytam w wolnym czasie a o DRY pierwsze słysze :)
Jestem początkujący, studiuje jeszcze. Szczerze to mam już dość wykonywania jakiś zadań co tydzieńto z innej dziedziny...wolałbym się skupić na jednym przedmiocie a nie ;/

1 użytkowników online, w tym zalogowanych: 0, gości: 1