Deklaracja zmiennej

0

Witam, w jaki sposób mogę zadeklarować zmienną 'a'? cały czas wyskakuje Mi błąd na stronie że nie zmienna ta nie jest znana, przez co edycja nie wykonuje się.

			$stmt=$this->db->prepare('SELECT * FROM kategoria where nick=:nick');
			$stmt->bindParam(':nick',$_SESSION['logowanie'],PDO::PARAM_STR);
			$stmt->execute();
			foreach($stmt as $row)
			{
				
				echo "<font color=\"#90D4B4\"><td>".$row['miejscowosc']."<br></font>";
				echo "<br><font color=\"#2D8C5F\"><td><b>".$row['produkt']."</b><br></td></font>";
				echo "Cena: ";
				echo "<td>".$row['Cena']." zł</td><br>";
				echo "<td>".$row['rodzaj']."<br></td>";
				echo "<td>".$row['stan']."<br></td>";
				echo "<td>".$row['Opis']."<br></td>";
				echo "Dodany: ";
				echo "<td>".$row['data']."<br></td>";
				echo "<td>
				<a href=\"delete_your.php?id={$row['id']}\"><b>Usun</b></a><br> 
				<a href=\"pokaztwojepro.php?a=edit&id={$row['id']}\"><b>Edytuj</b></a>
				</td>"; 
					echo "<br>_______________________<br>";
					
				
			}

			if (empty($row))
			{
				echo 'Nie dodałeś jeszcze produktów';
			}
			$a = $_REQUEST['a']; 
			$id = $row['id'];

				if($a == 'edit' and !empty($id))
				{
					$stmt=$this->db->prepare('SELECT * FROM kategoria WHERE id=:id');
					$stmt->bindParam(':id',$_GET['id'],PDO::PARAM_STR);
					$stmt->execute();
					foreach($stmt as $row)
					{
		        echo '<form action="pokaztwojepro.php" method="POST"> 
				<input type="hidden" name="a" value="save" /> 
				<input type="hidden" name="id" value="'.$id.'" /> 
				Produkt:<br /> 
				<input type="text" name="imie" 
				value="'.$row['produkt'].'" /><br />
				Cena:<br /> 
				<input type="text" name="email" 
				value="'.$row['Cena'].'" /><br />
				<input type="submit" value="Popraw" /> 
				</form>'; 
					}
				}elseif($a == 'save')
					{
						$stmt=$this->db->prepare('UPDATE kategoria SET produkt=:produkt, Cena=:Cena WHERE id=:id');
						$stmt->bindParam(':produkt',$_POST['produkt'],PDO::PARAM_STR);
						$stmt->bindParam(':Cena',$_POST['Cena'],PDO::PARAM_STR);
						$stmt->bindParam(':id',$_GET['id'],PDO::PARAM_STR);
						$stmt->execute();
					}
 
0

Jednak błąd leży gdzie indziej, zmieniłem nieco kod że po przyciśnięciu EDIT przenoszeni jesteśmy na inną stronę, gdzie dokonujemy zmiany, mianowicie.

		$stmt=$DB_con->prepare('SELECT * FROM kategoria WHERE id=:id');
					$stmt->bindParam(':id',$_GET['id'],PDO::PARAM_STR);
					$stmt->execute();
					foreach($stmt as $row)
					{
					echo '<form action="pokaztwojepro.php" method="POST"> 
					<input type="hidden" name="a" value="save" /> 
					<input type="hidden" name="id" value="'.$_GET['id'].'" /> 
					Produkt:<br /> 
					<input type="text" name="imie" 
					value="'.$row['produkt'].'" /><br />
					Cena:<br /> 
					<input type="text" name="email" 
					value="'.$row['Cena'].'" /><br />
					<input type="submit" value="Popraw" /> 
					</form>'; 
					}
					
					if(isset($_POST['Popraw']))
					{
						$stmt=$DB_con->prepare('UPDATE kategoria SET produkt=:produkt, Cena=:Cena WHERE id=:id');
						$stmt->bindParam(':produkt',$_POST['produkt'],PDO::PARAM_STR);
						$stmt->bindParam(':Cena',$_POST['Cena'],PDO::PARAM_STR);
						$stmt->bindParam(':id',$_POST['id'],PDO::PARAM_INT);
						$stmt->execute();
					}
 

Lecz dalej zmieniony rekord nie updatuje się w bazie.

0
<input type="submit" value="Popraw" />
if(isset($_POST['Popraw']))

Musiałbyś zrobić:

<input type="submit" name="Popraw" value="Popraw" />

by zareagowało :)

0

No tak, teraz reaguje na przycisk, lecz nie dodaje modyfikacji. Gdyby ktoś zobaczył błąd, będe wdzięczny za naprowadzenie. Jak wcześnie znajdę, napiszę.

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