Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] update tabel
trucksweb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
dlaczego (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Ten post edytował trucksweb 5.04.2006, 14:18:18
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
pomine juz fakt ze ty te formularze generujesz w petli
Go to the top of the page
+Quote Post
trucksweb
post
Post #3





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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 (IMG:http://forum.php.pl/style_emoticons/default/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
Go to the top of the page
+Quote Post
trucksweb
post
Post #5





Grupa: Zarejestrowani
Postów: 1 199
Pomógł: 31
Dołączył: 22.03.2004
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


to w takim razie jak to najefektywnej zrobic (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
globals mam na off (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

/////

napisalem inny kod, ale on nie chce wyswietlac danych z bazy w inputach (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/sadsmiley02.gif)

Ten post edytował trucksweb 5.04.2006, 14:58:10
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.08.2025 - 14:11