Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wyświetlanie i edycja rekordów na jednej stronie[MySQL][PHP]
Forum PHP.pl > Forum > Przedszkole
-czarek-
Witam serdecznie,

Chciałbym wyświetlić dany wiersz z bazy danych, a potem móc go edytować na tej samej stronie. To co do tej pory stworzyłem:

  1. if (isset($_POST['submit'])){
  2. $wyszukaj = ($_POST['wyszukaj']);
  3. $query = "SELECT * FROM testowa WHERE id='$wyszukaj'";
  4. $wynik = mysql_query($query, $connection);
  5. $test = ($_POST['test]);
  6. if (!$wynik) {
  7. die('Niepoprawne zapytanie: ' . mysql_error());
  8. }
  9. }
  10. if (isset($_POST['edytuj'])){
  11. $id = ($_POST["edycja_id"]);
  12. $test = ($_POST['test]);
  13. $query = "UPDATE testowa SET
  14. `test` = '{$test}'
  15. WHERE id = '{$id}'";
  16. $wynik = mysql_query($query, $connection);
  17. }


+ kod strony

<form action="wy_ed.php" method="post">
<?php
echo '<table>
<tr>
<td>
<input type="text" name="wyszukaj" maxlength="30" value="" /></input>
</td>
</tr>
</table>';
echo '<tr>
<td colspan="2"><input type="submit" name="submit" value="wyszukaj" /></td>
</tr>';
?>
</form>
<table>
<tr>
<td>
<?php


while ($row = mysql_fetch_array($wynik)){
print "<tr><td>{$row["id"]}</td><td>{$row["test2"]}</td><td><form action='strona.php' method='post'><input type='text' name='edytuj' value='{$row["test"]}' /><input type='hidden' name='edycja_id' value='{$row["id"]}' /><input type='submit' value='zapisz zmiany' /></form></td></tr>";
}
?>
</td>

<tr>

</tr>
</form>
</tr>
</table>

O ile wyświetlanie działa prawidłowo o tyle wprowadzanie nowych informacji do pola test nie przynosi żadnych rezultatów.
-czarek-
Doprecyzuje, pojawia się wiersz z bazy danych, ale w miejscu gdzie powinna być wartość z kolumny test jest puste pole.
-czarek-
Update 2
Wyświetla poprawna wartość w polu edycyjnym, niestety po jakiejkolwiek zmianie przypisuje w danej komórce wartość 0.
Kshyhoo
Umieszczaj kod w odpowiednich znacznikach. Proponuję się zarejestrować - nic nie kosztuje a możesz lepiej śledzić odpowiedzi w swoich wątkach.
Co do Twojego problemu:
1. pobierz dane z bazy
2. wrzuć do formularza, np:
  1. <input type="text" name="autor" value="'.$autor'.'">


Zobacz, co przesyłasz POSTem, np:
  1. print('<pre>POST: ');
  2. print_r($_POST);
  3. print('</pre>')
-czarek-
Hej, dzięki za odpowiedź

Rezultat podczas wyświetlania danych (działa)
  1. POST: Array
  2. (
  3. [wyszukaj] => 1
  4. [submit] => wyszukaj
  5. )


i podczas wymuszenia edycji (nie działa)
  1. POST: Array
  2. (
  3. [edytuj] => 1
  4. [edycja_id] => 1
  5. )


Wyszukiwałem po id =1, chciałem również zmienić komórke test na wartość 1.
-czarek-
Szczerze mowiąc nie mam pomysłu jak to rozwiązać.
Chciałbym edytować wprowadzane dane na tej samej stronie, na której się wyświetlają. Pomińmy tę linię zaczynającą się od print. Czy jest jakiś sposób, żeby rozwiązać ten problem?
Dzięki za pomoc
Kshyhoo
To co pobierasz z bazy jest tablicą, więc traktuj dane jak tablicę wink.gif Po pierwsze, wyświetl sobie zapytanie za pomocą echa, zobaczysz, co pobierasz.
  1. $zapytanie = "SELECT * FROM testowa WHERE id=$id"; // musisz pobrać konkretny rekord
  2. $wynik = mysql_query($zapytanie);
  3. $dane = mysql_fetch_array($wynik);
  4.  
  5. // teraz możesz odwołać się do tablicy
  6. $id = $dane['id'];
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.