Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [mysql] wypisanie danych z bazy danych mysql do formularza w celu edycji...
Forum PHP.pl > Forum > Przedszkole
bigart
Mam formularz którym dodaje dane do tabeli w mysql

nastepnie php wyswietlam zawartosc bazy danych ... opcje usuwania opanowalem
teraz chcialbym edytowac poszczególne rekordy również poprzez php...

jestem laikiem ale wyobrazam sobie to w ten sposob ze musze dane rekordy ktore sa wypisane z bazy spowrotem przerzucic do formularza..czyli tymi samymi danymi co wpisywalem do bazy wypelnic formularz w celu jego edycji

jak to zrobic ?

i kolejna sprawa... jak opanowac w jednym pliku klika submitów... (action)

prosze o jakies linki ... lub podpowiedzi

dzieki
venomz
Cytat(bigart @ 27.10.2006, 17:14:22 ) *
jak opanowac w jednym pliku klika submitów... (action)


Nie wiem czy dobrze zrozumialem. Jezeli chcesz miec kilka submitow, z ktorych kazdy przesle dane do innego skryptu, to kazdy taki submit musi byc "opakowany" w osobny formularz <form action="odpowiedni_skrypt.php" > </form>. Innymi slowy - jeden formularz wysyla dane tylko do jednego skryptu. Jezeli wewnatrz formularza masz wiecej submitow to kazdy z nich wysle dane do tego samego skryptu. Mozesz natomiast nadac im inne wartosci "name" i "value".

A co do sprawy pierwszej to nie ma specjalnie duzej roznicy miedzy dodaniem a edycja.
W duzym uproszczeniu moze to wygladac tak:
Pobierasz wiersz z bazy:
  1. <?php
  2. $result = mysql_query("select user_id, name from users where user_id=10");
  3. $row = mysql_fetch_array($result);
  4. ?>

Tworzysz formularz ktory bedzie umozliwial edycje:
  1. <?php
  2. echo "<form action="edit.php" method=post>";
  3. echo "id usera: {$row["user_id"]}";
  4. echo "imie: <input type=text name=name value="{$row["name"]}>"; //tutaj wstawiasz aktualna wartosc rekordu pobrana z bazy
  5. echo "<input type=submit name=submit value=aktualizuj>";
  6. ?>

i fragment skryptu edit.php do ktorego zostana wyslane dane i ktory je przetworzy:
  1. <?php
  2. mysql_query=("update users set name={$_POST["name"]} whre user_id = 10");
  3. ?>
bigart
dzieki!!!.musze sie z tym pobawic...mam nadzieje ze dam rade
erix
Cytat
submit musi byc "opakowany" w osobny formularz <form action="odpowiedni_skrypt.php" > </form>

tongue.gif

Nie musi. Możesz przecież mieć kilka submitów w jednym formularzu, ale wystarczy, że nadasz każdemu z nich jakąś nazwę i będziesz sprawdzać w skrypcie istnienie klucza w $_POST.

Patrz:
  1. ...
  2. <input type="submit" name="bla1" value="blablabla" />
  3. <input type="submit" name="bla2" value="blebleble" />
  4. ...


  1. <?php
  2. if(isset($_POST['bla1'])){
  3. //akcja pierwsza
  4. }else if(isset($_POST['bla2'])){
  5. //akcja druga
  6. }
  7. ?>

I tyle.

Można jeszcze kombinować z [i]<input type="hidden" />[i] i JS, ale to już rozwiązanie mniej dostępne.
bigart
czyli powinno to wygladac tak ?


<?php

echo '<input type=submit name=dodaji value="Dodaj informacje">';
echo '<input type=submit name=dodajz value="Dodaj zdjęcie">';


if(isset($_POST['dodaji']))
{
echo '<form action="dodaji.php" method="post">';

}else if(isset($_POST['dodajz']))
{
echo '<form action="dodajz.php" method="post">';
}
?>
erix
Yy, nie rozumiem za bardzo sensu wciskania tego wszystkiego w osobne formularze :/
bigart
problem polega na tym ze nie wpisuje danych do formularza ... pobiera prawidlowe wartosci phpinfo(); ale ich nie wypisuje

  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  $db = mysql_pconnect('localhost', 'root', 'haslo');
  8. mysql_select_db('so', $db);
  9.  
  10.  
  11.  
  12. if (!$db)
  13.  
  14. {
  15.  
  16.  echo 'Błąd połączenia';
  17.  
  18.  exit;
  19.  
  20. }
  21.  
  22.  
  23.  
  24. $zapytanie = "select * from ogier" ;
  25.  
  26. $wynik = mysql_query($zapytanie);
  27.  
  28.  
  29.  
  30.  
  31.  
  32. $ile_znalezionych = mysql_num_rows($wynik);
  33.  
  34.  
  35.  
  36. echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  37.  
  38.  
  39.  
  40. for ($i=0; $i <$ile_znalezionych; $i++)
  41.  
  42.  
  43. {
  44.  
  45.  
  46.  $wiersz = mysql_fetch_assoc($wynik);
  47. echo '<form action="aktualizuj.php" method=post>';
  48.  
  49.  
  50.  echo '<table width=98% align=center cellpadding=1 cellspacing=1;>'; 
  51. echo '<tr>';
  52. echo '<td width=50%>';
  53.  echo '<p><strong>'.($i+1).'. Nazwa: ';
  54.  
  55.  echo stripslashes($wiersz['nazwa']);
  56.  
  57.  echo '</strong><br />Rasa: ';
  58.  
  59.  echo stripslashes($wiersz['rasa']);
  60. echo '<br />Właściciel: ';
  61.  
  62. echo stripslashes($wiersz['wlas']);
  63. echo '<br />Hodowla: ';
  64.  
  65.  echo stripslashes($wiersz['hodowla']);
  66.  
  67. echo '</p>';
  68. echo '</td>';
  69. echo '<td align=center width=10%><input type=radio name=edytuj value="'.$wiersz['ogierid'].'">';
  70.  
  71. echo '</tr>';
  72. }
  73.  
  74. echo '<tr><td width=100% colspan=2 align=right><input type=submit name=dupa value="edytuj"></td></tr>';
  75.  
  76. echo '</table>';
  77.  
  78. echo '</form>';
  79.  
  80.  
  81.  
  82.  
  83.  
  84. ?>

i kod do wypisania w formularzu...

  1. <?php
  2. print_r ($_POST);
  3.  
  4. $db = mysql_pconnect('localhost', 'root', 'haslo');
  5. mysql_select_db('so', $db);
  6.  
  7.  
  8.  
  9. if (!$db)
  10.  
  11. {
  12.  
  13.  echo 'Błąd połączenia';
  14.  
  15.  exit;
  16.  
  17. }
  18. $zapytanie = "select nazwa, rasa, wlas, hodowla from ogier where ogierid=$edytuj";
  19.  
  20.  
  21. echo $zapytanie;
  22.  
  23. $wynik = mysql_query($zapytanie);
  24.  
  25. $ile_pobranych = mysql_num_rows($wynik);
  26.  
  27. echo '<p> ilosc : '.$ile_pobranych.'</p>';
  28.  
  29. {
  30.  
  31.  $wiersz = mysql_fetch_assoc($wynik);
  32.  
  33. echo '<form action="aktualizuj1.php" method=post>';
  34.  
  35. echo '<table width=98% align=center cellpadding=1 cellspacing=1>';
  36.  
  37.  
  38.  
  39. echo '<tr>';
  40. echo '<td colspan="2" align="center" class="kolory">';
  41. echo 'Podstawowe dane konia';
  42. echo '</td>';
  43. echo '</tr>';
  44.  
  45. echo '<tr>';
  46. echo '<td>Nazwa: </td>';
  47. echo '<td align="left"><input type="text" name="nazwa" value="'.$wiersz['nazwa'].'" size="40" maxlenght="40"></td>';
  48. echo '</tr>';
  49.  
  50. echo '<tr>';
  51. echo '<td>Rasa: </td>';
  52. echo '<td align="left"><input type="text" name="rasa" value="'.$wiersz['rasa'].'" size="20" maxlenght="20"></td>';
  53. echo '</tr>';
  54.  
  55. echo '<tr>';
  56. echo '<td>Właściciel: </td>';
  57. echo '<td align="left"><input type="text" name="wlas" value="'.$wiersz['wlas'].'" size="40" maxlenght="40"></td>';
  58. echo '</tr>';
  59.  
  60. echo '<tr>';
  61. echo '<td>Hodowla: </td>';
  62. echo '<td align="left"><input type="text" name="hodowla" value="'.$wiersz['hodowla'].'" size="40" maxlenght="40"></td>';
  63. echo '</tr>';
  64.  
  65.  
  66. }
  67. echo '</table>';
  68. echo '</form>';
  69. ?>

bledy

Array ( [edytuj] => 34 ) select nazwa, rasa, wlas, hodowla from ogier where ogierid=

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/aktualizuj.php on line 58

ilosc :

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /var/www/aktualizuj.php on line 65

jakies podpowiedzi questionmark.gif
nospor
Uzywaj bbcode exclamation.gif!!
Nie rob po 15 enterow pomiedzy wierszami exclamation.gif!!

Popraw to oczym napisalem wyzej.


Do zmiennych z forma nalezy sie dobierac przez $_POST, czyli u ciebie:
  1. <?php
  2. $zapytanie = "select nazwa, rasa, wlas, hodowla from ogier where ogierid=".$_POST['edytuj'];
  3. ?>


proszę poprawić tytuł o znacznik zgodnie z zasadami forum Przedszkole:
Temat: Tematyka i zasady panujace na forum Przedszkole
bigart
dzieki:) dziala ... biggrin.gif

ok wyswietlilo mi w formularzu dane które wybrałem ... chce je poprawic i musze do poprawy zastosowac odpowiednie zapytanie
i w związku z tym jak poprawnie wpisać zapytanie update ?

  1. <?php
  2. print_r ($_POST);
  3.  
  4. $db = mysql_pconnect('localhost', 'root', 'haslo');
  5. mysql_select_db('so', $db);
  6.  
  7.  
  8.  
  9. if (!$db)
  10.  
  11. {
  12.  
  13.  echo 'Błąd połączenia';
  14.  
  15.  exit;
  16.  
  17. }
  18. $zapytanie = ("update ogier set nazwa='.$_POST["name"]', rasa='.$_POST["rasa"]', wlas='.$_POST["wlas"]', hodowla='.$_POST["hodowla"]'");
  19.  
  20.  
  21. echo $zapytanie;
  22.  
  23.  
  24.  
  25. $wynik = mysql_query($zapytanie);
  26.  
  27.  
  28. $ile_pobranych = mysql_num_rows($wynik);
  29.  
  30.  
  31. echo '<p> ilosc : '.$ile_pobranych.'</p>';
  32.  
  33. {
  34.  
  35.  
  36.  $wiersz = mysql_fetch_assoc($wynik);
  37.  
  38. }
  39. ?>
nospor
jesli zaczynasz string " to nie mozesz go potem laczyc tak: '.

Poczytaj to:
http://pl.php.net/manual/pl/language.types.string.php
oraz to:
http://pl.php.net/manual/pl/language.operators.string.php

Dodatkowo w zapytaniu tekst trzeba brac w apostrofy: pole='wartosc tekstowa'

I grzecznie prosze - popraw poprzedniego posta (tego wczesniejeszego) oto oco prosilem
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.