Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Edycja 2 dwoch plikach
Forum PHP.pl > Forum > Przedszkole
piotrooo89
Czesc!
Chce zrobić sobie edycje danych w następujący sposób:

  1. <?php
  2. $sql=@mysql_query('SELECT * FROM nazwy');
  3.  
  4. echo '<table border="0" class="wyswietl">
  5. <tr>
  6. <td class="naglowek"><h4>Numer</h4></td>
  7. <td class="naglowek"><h4>Nazwa</h4></td>
  8. </tr>';
  9.  
  10. while($linia=mysql_fetch_array($sql))
  11. {
  12. echo '<tr onMouseover=this.bgColor="#00FFFF" onMouseout=this.bgColor="#FFFACD">
  13. <td class="reszta">' . $linia['nr'] . '</td>
  14. <td class="reszta">' . $linia['nazwa'] . '</td>
  15. <td class="reszta"><a href="' . $_SERVER['PHP_SELF'] . '?usunnazwe=' .$linia['id']. '">USUŃ</a></td>
  16. <td class="reszta"><a href="edytuj/edytuj_nazwe.php?edytujnazwe=' .$linia['id']. '">EDYTUJ!</a></td>
  17. </tr>';
  18. }
  19. echo '</table>';
  20. ?>

to jest pierwszy plik i tu ładnie mi przekazuje za pomocą $_GET ?edytujnazwe=' .$linia['id']. '

problem pojawia sie dopiero w drugim pliku
  1. <?php
  2. include('mysql.inc');
  3. $id=$_GET['edytujnazwe'];
  4.  if ( (isset($_POST['nazwa'])) or (isset($_POST['nr'])) )
  5.  {
  6.  $nazwa=$_POST['nazwa'];
  7.  $nr=$_POST['nr'];
  8.  
  9.  
  10.  $query = "UPDATE zbory SET nazwa='$nazwa', nr='$nr' WHERE id='$id'";
  11.  mysql_query($query);
  12.  }
  13. ?>


i nie moge tego zedytować siedze nad tym troche i nie bardzo rozumiem o co chodzi :/ być może jakiś prosty błąd
erix
Skąd mają się w skrypcie wziąć dane w $_POST, jak nie masz tam żadnego formularza? tongue.gif
piotrooo89
Mam formularz wyżej nie wklejałem bo wydawał mi sie niepotrzebny.

  1. <form name="edytujnazwe" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  2. <table border="0">
  3. <tr>
  4. <td class="naglowek">Wpisz nową nazwe: </td>
  5. <td class="reszta"><input type="text" name="nazwa" /></td>
  6. </tr>
  7. <tr>
  8. <td class="naglowek">Wpisz nowy numer: </td>
  9. <td class="reszta"><input type="text" name="nr" /></td>
  10. </tr>
  11. <tr>
  12. <td><input type="submit" value="EDYTUJ!" /></td>
  13. </tr>
  14. </table>
  15. </form>


a tu jest reszta:
  1. <?php
  2. include('mysql.inc');
  3. $id=$_GET['edytujnazwe'];
  4.  if ( (isset($_POST['nazwa'])) or (isset($_POST['nr'])) )
  5.  {
  6.  $nazwa=$_POST['nazwa'];
  7.  $nr=$_POST['nr'];
  8.  
  9.  
  10.  $query = "UPDATE nazwy SET nazwa='$nazwa', nr='$nr' WHERE id='$id'";
  11.  mysql_query($query);
  12.  }
  13. ?>


ale problem jest tylko w przekazaniu tego za pomocą $_GET bo on mi potrzebny do klauzuli where. i nie wiem jak sie do tego zabrać.


//
Edit
Wie ktoś o co kaman?
Czaroo
skoro
  1. <form name="edytujnazwe" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">


a chcesz

  1. <?php
  2. $id=$_GET['edytujnazwe'];
  3. ?>


to może formularz byłoby dobrze też mieć w get?


////albo całość pozmieniaj na post bo tak to część w tym, a część w tym...no chyba, że coś źle patrze
////// do tego skoro tylko <form name="edytujnazwe", a żaden input tego nie ma, to skąd będzie to $_GET['edytujnazwe']? ręcznie wpisujesz czy jak?
piotrooo89
Patrz uważnie

  1. <?php
  2. <td class="reszta"><a href="edytuj/edytuj_nazwe.php?edytujnazwe=' .$linia['id']. '">EDYTUJ!</a></td>
  3. ?>


W pierwszym moim poście to jest i ja przesyłam to z innego pliku i chce żeby w pliku do edycji było napisane id tego rekordu który chce edytować. Być może sproboję to na $_GET pozamieniać może poskutkuje.
Pride
Nie wiem czy dobrze cie zrozumiałem bo masz kawałki kodu w każdym poscie ale....
Chcesz po prost zrobić tak aby przy edycji edytował rekord o ID z poprzedniej listy? Hmm ja osobiście używam do tego
  1. <?php
  2. <input type="hidden" name="id" value="' .$linia['id']. '" />
  3. ?>
I w tedy przy bazie zamast tego $id (skad ci się to bierze 0.o) ustaw $_POST['id'] i po problemie.
Swoją drogą...
  1. <?php
  2. $nazwa=$_POST['nazwa'];
  3. $nr=$_POST['nr'];
  4. ?>

Po co?
kociupk
zamien ten kawalek kodu
$query = "UPDATE nazwy SET nazwa='$nazwa', nr='$nr' WHERE id='$id'";
na ten i powinno dzialac
  1. <?php
  2. $query = "UPDATE nazwy SET nazwa='".$nazwa."', nr='".$nr."' WHERE id='".$id."'";
  3. ?>
piotrooo89
No wiec już wszystko odpaliłem Pride dzięki za wszkazówke zrobiłem to tak:

linijka która wysyła

  1. <?php
  2. <a href="edytuj/edytuj_nazwe.php?edytujnazwe=' .$linia['id']. '">EDYTUJ</a>
  3. ?>


a teraz pole w którym przechowywane jest id:

  1. <input type="hidden" name="id" value="<?php echo $_GET['edytujnazwe']; ?>" />


Dzięki Rkingsmiley.png
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.