Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] update tabel
Forum PHP.pl > Forum > Przedszkole
trucksweb
mam czesc skryptu do tabel, ktory ma umozliwic edycje wybanej kategorii:

  1. <?php
  2. require_once 'header.php';
  3. ?>
  4.  
  5. <div align="center">
  6.  <table width="700" border="0" cellpadding="0">
  7. <tr>
  8. <td align="center" colspan="4"><strong>Katgorie <a href="kategorie.php?akcja=dodaj"><span class='red'>[DODAJ NOWĄ]</span></a> </strong></td>
  9. </tr>
  10. <tr bgcolor="#f87820">
  11. <td class="tabhead" width="18" align="center"><strong>Id.</strong></td>
  12. <td class="tabhead" width="297" align="left"><strong>Nazwa </strong></td>
  13. <td class="tabhead" width="94" align="left"><strong>Data</strong></td>
  14. <td class="tabhead" width="263" align="left"><strong>Opcje</strong></td>
  15. </tr> 
  16.  </table>
  17.  
  18. <table width="700" border="0" cellpadding="1" >
  19.  
  20. <?php
  21. $sql = "SELECT * FROM kategorie";
  22. $result = mysql_query($sql) or
  23.  die("Nie mozna pobrać danych" . mysql_error());
  24. while ($row = mysql_fetch_array($result)) {
  25. ?>
  26. <tr width="700" class="tabval">
  27.  <td width="20" align="center">
  28.  <?php echo $row['kategoria_id']; ?>
  29.  </td>
  30.  <td width="336">
  31.  <a href="#" onmouseover="ddrivetip('<?php echo $row['kategoria_opis']; ?>')" ;="" onmouseout="hideddrivetip()"><?php echo $row['kategoria_nazwa']; ?></a>
  32.  </td>
  33.  <td width="100" align="center">
  34.  <?php echo $row['kategoria_data']; ?>
  35.  </td>
  36.  <td width="291" align="center">
  37.  <a href="kategorie.php?akcja=edytuj&id=<?php echo $row['kategoria_id']; ?>"><span class='red'>[EDYTUJ]</span></a>
  38.  <a href="kategorie.php?akcja=skasuj&id=<?php echo $row['kategoria_id']; ?>"><span class='red'>[USUŃ]</span></a>  
  39.  </td>
  40. </tr>
  41. <?php
  42. }
  43. ?>
  44. </table>
  45. <table width="700" border="0">
  46. <tr>
  47. <td align="left">
  48.  <?php
  49.  if(isset($_REQUEST['akcja'])) {
  50. switch ($_REQUEST['akcja']) {
  51.  
  52.  case 'skasuj':
  53. if (isset($_POST['akcja']))
  54.  {
  55. $akcja=$_POST['akcja'];
  56.  }
  57. elseif (isset($_GET['akcja']) && isset($_GET['id']))
  58.  {
  59. $akcja=$_GET['akcja'];
  60. $id=$_GET['id'];
  61.  }
  62.  
  63. if ($akcja == 'skasuj') 
  64.  { // kasowanie
  65. $wynik = mysql_query
  66. ("DELETE FROM kategorie WHERE kategoria_id = '$id';");
  67.  }
  68.  
  69. $wynik = mysql_query ("SELECT * FROM kategorie;") or
  70. die ("bląd w pytaniu");
  71.  
  72.  while ($rekord = mysql_fetch_array ($wynik)) 
  73. {
  74. }
  75.  break;  
  76.  
  77.  
  78.  case 'dodaj':
  79. if (isset($_POST['akcja']))
  80. {
  81. $akcja=$_POST['akcja'];
  82. $nazwa=$_POST['nazwa'];
  83. $opis=$_POST['opis'];
  84. $data= date("Y-m-d");
  85.  
  86. }
  87.  elseif (isset($_GET['akcja']) && isset($_GET['id']))
  88.  {
  89. $akcja=$_GET['akcja'];
  90. $id=$_GET['id'];
  91.  }
  92.  if ($akcja == 'dodaj') 
  93. { 
  94.  if ($nazwa && $opis && $data)
  95. {
  96.  $query = "INSERT INTO kategorie ( kategoria_id, kategoria_nazwa, kategoria_opis, kategoria_data) VALUES (null, '$nazwa', '$opis', '$data');";
  97.  
  98.  $wynik = mysql_query ($query);
  99. }
  100. } 
  101. echo '<br>';
  102. echo "<table>";
  103. echo '<form method="post">Nowa kategoria:';
  104. echo '<input type="hidden" name="akcja" value="dodaj"><table>';
  105. echo '<tr><td>Tytuł:</td><td><input type="text" ';
  106. echo 'name="nazwa"></td></tr><tr><td>Opis:</td><td><textarea ';
  107. echo 'name="opis" rows="10" cols="50"></textarea></td></tr>';
  108. echo '<tr><td align="right">';
  109. echo '<input type="submit" class="red" value="dodaj"></form>';
  110. echo '</td></tr>';
  111. echo '</table>';
  112.  
  113.  
  114. break;
  115.  
  116.  case 'edytuj':
  117.  
  118. if (isset($_GET['akcja']) && isset($_GET['id']))
  119. {
  120.  $edytuj=$_GET['akcja'];
  121.  $id=$_GET['id'];
  122. }
  123. if ($edytuj == 'edytuj') 
  124. { // dodawanie rekordu
  125. if ($nazwa)
  126. {
  127. $query = "UPDATE kategorie SET kategoria_nazwa='$nazwa', kategoria_opis='$opis' WHERE kategoria_id='$id'";
  128. $wyniki = mysql_query ($query);
  129. }
  130. }
  131. $wynik = mysql_query ("SELECT * FROM kategorie WHERE kategoria_id='$id';") or
  132. die ("bład w pytaniu");
  133.  
  134. print '<FORM METHOD="post">Nowy rekord:';
  135. print '<INPUT TYPE="hidden" NAME="akcja" VALUE="edytuj"><TABLE>';
  136.  
  137. while ($rekord = mysql_fetch_array ($wynik)) 
  138. {
  139. $nazwa = $rekord[1];
  140. $opis = $rekord[2];
  141.  
  142.  //echo '<br>';
  143. //echo "<table>";
  144. //echo '<form method="post">Edytuj:';
  145.  // echo '<input type="hidden" name="akcja" value="edytuj"><table>';
  146. echo '<tr><td>Tytuł:</td><td><input type="text" ';
  147. echo 'name="nazwa" value="'.$nazwa.'"></td></tr><tr><td>Opis:</td><td><textarea ';
  148. echo 'name="opis" rows="10" cols="50" >'.$opis.'</textarea></td></tr>';
  149. echo '<tr><td align="right">';
  150. echo '<input type="submit" class="red" value="edytuj"></form>';
  151. echo '</td></tr>';
  152. echo '</table>' ;
  153. }
  154.  
  155. echo $_GET['id'];
  156.  
  157.  
  158. break;
  159.  
  160. }
  161. }
  162.  
  163.  ?>  </td>
  164. </tr>
  165. </table>
  166. <?php
  167. require_once 'footer.php';
  168. ?>
  169. </div>
  170.  


wszystko pieknie wczytuje to texarea ale jak wezme zapisz zmiany to nic nie zapisuje worriedsmiley.gif
dlaczego questionmark.gif
nospor
po pierwsze uzywaj znacznikow w tytulach.

po następne:
cos czuje ze to nie caly kod. najpierw dajesz case 'edytuj':
potem pobierasz z geta parametr 'akcja' i sprawdzasz czy oby na pewno to edytuj jest. Dla mnie to troche dziwne.
Pozatym wykomentowales sobie kod, ktory tworzy formularz, wiec sie niedziw ze sie nie wysyla smile.gif
pomine juz fakt ze ty te formularze generujesz w petli
trucksweb
podalem calu kod.
Zasada byla taka, na stronie przy kazdej kategorii mam edytuj,usun no i dodaj nowa.
Gdy wezme dodaj otwiera sie pod tabela formularz dodawania, gdy wezme edytuj to wywietla sie formularz do edycji tylko ze on cos nie wysyla do bazy- jak dodaje nowa kat. to dziala worriedsmiley.gif
nospor
to co ci pisalem i pare innych spraw. no ale po kolei

w akcji edytuj na poczatku tworzysz formularz. potem w petli wyswietlasz kolejne rekordy. ale niestety również w tej samej pętli za każdym razem zamykasz ten formularz co rozpoczoles na początku. rozumiesz? Otwierasz raz drzwi, ale zamykasz je milion razy. gdzie sens i logika?

Dane edytujesz gdy w url bedzie parametr edytuj. Ale nawet jesli by ci ten formularz ci sie wyslal, to w url nie bedziesz mial parametru akcja=edytuj, gdyz formularz wysylasz postem a nie getem smile.gif no chyba ze masz register globals wlączone, to tak. No nawet jesli tak, to masz problem z formularzem co ci juz pisalem
trucksweb
to w takim razie jak to najefektywnej zrobic questionmark.gif
globals mam na off tongue.gif

/////

napisalem inny kod, ale on nie chce wyswietlac danych z bazy w inputach sad.gif sad.gif
  1. <?php
  2.  
  3. case 'edytuj':
  4.  
  5.  $kategoria_nazwa = '';
  6.  $kategoria_opis = '';
  7.  
  8.  if (isset($_GET['akcja'])
  9.  and $_GET['akcja'] == 'edytuj'
  10.  and isset($_GET['kategoria_nazwa'] )
  11.  and $_GET['kategoria_nazwa'])
  12. {
  13. $sql = "SELECT kategoria_nazwa, kategoria_opis FROM kategorie " .
  14.  "WHERE kategoria_id=". $_GET['kategoria_id'];
  15. $result = mysql_query($sql) or
  16. die('problem' . mysql_error());
  17.  
  18.  
  19. $row = mysql_fetch_array($result);
  20.  
  21. $kategoria_nazwa = $row['kategoria_nazwa'];
  22. $kategoria_opis = $row['kategoria_opis'];
  23. }
  24. echo 'tytul: <input type="text" name="kategoria_nazwa" value=" '.$kategoria_nazwa.' ">';
  25. echo 'opis: <textarea name="kategoria_opis">'.$kategoria_opis.'</textarea> ';
  26. ?>


a tu w czym jest problem sadsmiley02.gif
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.