Dzień dobry!
Ma problem ze zmieną, którą wykorzystuję do określenia początkowej pozycji w formularzu. Na początku, jeżeli zmienna ($b) nie istnieje ustawiam domyślną wartość formularz (p1). Potem z listy wybieram to co mnie interesuje np. p2 lub p3 i wysyłam zapytanie do bazy. Z bazy pobieram wyniki i do zmiennej $b przypisuję nową wartość. W tym momencie w okienku formularza powinna wyświetlać mi się wartość z tej zmiennej ($b). Niestety nadal wyświetla mi się wartość p1. Dodam jeszcze, że jak sprawdzam na końcu wartość zmiennej to wyświetla mi się prawidłowa, oczekiwana wartość. Nie mogę dojść, gdzie popełniam błąd. Czy w którymś miejscu $b resetuje mi się poprzez fakt, że formularz jest wysyłany wewnętrznie?
Poniżej kod:
<?php
if(isset($b))
{
$idkomentarze=$b;
}
else
{
$idkomentarze="p1";
}
?>
<form action="" method="post">
<h1>Formularz aktualizacji komentarzy</h1>
<select style="width: 100px" name="idkomentarze">
<option value="<?php echo $idkomentarze; ?>"><?php echo $idkomentarze; ?></option>
<option value="p1">p1</option>
<option value="p2">p2</option>
<option value="p3">p3</option>
</select>
<input type="submit" value="Pobierz komentarz" />
</form>
<?php
$idkomentarze = $_POST['idkomentarze'];
require_once "connect.php";
$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
if ($polaczenie->connect_errno!=0)
{
echo "Error: ".$polaczenie->connect_errno;
}
else
{
$wynik = @$polaczenie->query("SELECT `idkomentarze`, `komentarz` FROM `komentarze` WHERE `idkomentarze`= '$idkomentarze'");
$ile = $wynik->num_rows;
for ($i = 0; $i < $ile; $i++)
{
$wiersz = $wynik->fetch_assoc();
$a = $wiersz['komentarz'];
$b = $wiersz['idkomentarze'];
}
$wynik->free_result();
$polaczenie->close();
}
?>
Z góry dziękuję za pomoc.
Pozdrawiam
Filip.