Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem z edycją bezy danych
Forum PHP.pl > Forum > Przedszkole
Lunerien
Witam od nie dawna próbuje swoich sił w pisaniu stron. Czy ktoś mógłby pomóc z edycją?

system.php
  1. <form action="dodaj.php" id="nowy_art" method="POST">
  2. <center>
  3.  
  4. Tytuł:
  5. <input type="text" name="tytul" class="tytul">
  6. <br>
  7.  
  8. Treść:
  9. <textarea name="tresc" class="tresc">
  10. </textarea>
  11. <br>
  12.  
  13. Autor:
  14. <input type="text" name="autor" class="normalny">
  15. <br>
  16.  
  17. Data:
  18. <input type="text" name="data" class="normalny">
  19. <br><br>
  20.  
  21. <input type="submit" value="zapisz" class="przycisk">
  22. </center>
  23. </form>
  24.  
  25. <?php
  26. include 'db_config.php';
  27. $link = mysql_connect($db_serwer,$db_login, $db_haslo);
  28. if (!$link) {
  29. die('Nie można się połączyć: ' . mysql_error());
  30. }
  31. echo 'Połączono poprawnie';
  32. mysql_close($link);
  33. ?>
  34.  
  35. <?php
  36. include 'db_config.php';
  37.  
  38. $link = mysql_connect($db_serwer,$db_login,$db_haslo)
  39. or die("Could not connect");
  40.  
  41. mysql_select_db($db_baza)
  42. or die("Could not select database");
  43.  
  44. $zapytanie="SELECT `id`,`tytul`,`tresc`,`autor`,`data` FROM `str`";
  45.  
  46. $idzapytania=mysql_query($zapytanie)
  47. or die('błędne zapytanie');
  48.  
  49. while ($wiersz = mysql_fetch_row($idzapytania))
  50. {
  51. echo"<br><br><center>";
  52. #echo '&nbsp tytul:'.$wiersz[1].'&nbsp tresc:'.$wiersz[2].'&nbsp autor:'.$wiersz[3].'&nbsp data:'.$wiersz[4];
  53. <form action='edycja.php' method='POST'>
  54. Tytuł:
  55. <textarea type='text' name='tytul' class='tytul' >
  56. ".$wiersz[1]."
  57. </textarea>
  58. <br>
  59.  
  60. Treść:
  61. <textarea name='tresc' class='tresc' >
  62. ".$wiersz[2]."
  63. </textarea>
  64. <br>
  65.  
  66. Autor:
  67. <textarea name='autor' class='normalny' >
  68. ".$wiersz[3]."
  69. </textarea>
  70. <br>
  71.  
  72. Data:
  73. <textarea name='data' class='normalny' >
  74. ".$wiersz[4]."
  75. </textarea>
  76. <br><br>
  77.  
  78. <input type='submit' value='Edycja' class='edit'>
  79.  
  80.  
  81. </center>
  82. </form>
  83. ";
  84.  
  85. echo "<form action='delete.php' method='POST'>\n";
  86. echo "<input type='hidden' name='tresc' value='".$wiersz[2]."'>\n";
  87. echo "<input type='submit' value='delete' class='nicht'>\n";
  88. echo "</form>\n";
  89.  
  90.  
  91. }
  92.  
  93. mysql_close($link);
  94.  
  95. ?>


edycja.php
  1. <?PHP
  2.  
  3. include 'db_config.php';
  4.  
  5. $x=$_POST['tresc'];
  6. $tytul=$_POST['tytul'];
  7. $tresc=$_POST['tresc'];
  8. $autor=$_POST['autor'];
  9. $data=$_POST['data'];
  10.  
  11. $link = mysql_connect($db_serwer,$db_login,$db_haslo,$db_tabela);
  12. mysql_select_db($db_baza) or die('nie mogę wybrać bazy');
  13.  
  14. $zapytanie="SELECT `tytul`,`tresc`, `data`, `autor` FROM `str` WHERE `tresc`='".$x."' LIMIT 1";
  15.  
  16. $idzapytania=mysql_query($zapytanie)
  17. or die('błędne zapytanie');
  18.  
  19. $wiersz = mysql_fetch_row($idzapytania);
  20. ?>
  21. edycja:
  22. <form action='popraw.php' method='POST'>
  23. <input type='hidden' name='id'>
  24. Tytuł:
  25. <input type='text' name='tytul' class='tytul' >
  26. <br>
  27. <textarea name='f_tresc' class='tresc'>
  28. </textarea>
  29. <br>
  30. Autor:
  31. <input type='text' name='autor' class='normalny'>
  32. <br>
  33. Data:
  34. <input type='text' name='data' class='normalny' >
  35. <br><br>
  36. <input type='submit' value='popraw' class='przycisk'>
  37. </form>


popraw.php
  1. <?PHP
  2.  
  3. include 'db_config.php';
  4. include 'edycja.php';
  5.  
  6. $link = mysql_connect($db_serwer,$db_login,$db_haslo,$db_tabela);
  7. mysql_select_db($db_baza)
  8. or die('nie mogę wybrać bazy');
  9.  
  10.  
  11. $zapytanie="UPDATE `str` SET `tytul`='".$tytul."', `tresc`='".$tresc."', `data`='".$data."', `autor`='".$autor."' WHERE `tresc`='".$tresc."' LIMIT 1";
  12. $idzapytania=mysql_query($zapytanie)
  13. or die('błędne zapytanie');
  14.  
  15. mysql_close($link);
  16.  
  17. #echo ' <meta http-equiv="refresh" content="0; url=index.php">';
  18.  
  19. ?>
ilidir
co ci w tej edycji nie działa questionmark.gifquestionmark.gif
Lunerien
za każdym razem błąd
Notice: Undefined index: tresc in C:\wamp\www\edycja.php on line 5
Call Stack
# Time Memory Function Location
1 0.0006 370520 {main}( ) ..\popraw.php:0
2 0.0011 379256 include( 'C:\wamp\www\edycja.php' ) ..\popraw.php:4


i
Notice: Undefined index: tresc in C:\wamp\www\edycja.php on line 7
Call Stack
# Time Memory Function Location
1 0.0006 370520 {main}( ) ..\popraw.php:0
2 0.0011 379256 include( 'C:\wamp\www\edycja.php' ) ..\popraw.php:4
ilidir
sprawdzałeś czy to co odczytujesz i przypisujesz do zmiennej x oraz tresc w ogole istnieje questionmark.gifquestionmark.gif?
Lunerien
np. dodawanie mi ładnie działa

  1. <?php
  2.  
  3. include 'db_config.php';
  4.  
  5. $tytul=$_POST['tytul'];
  6. $tresc=$_POST['tresc'];
  7. $autor=$_POST['autor'];
  8. $data=$_POST['data'];
  9.  
  10. if(!$tytul)
  11. {
  12. echo 'podaj tytuł';
  13. }
  14. if(!$tresc)
  15. {
  16. echo 'podaj treść';
  17. }
  18. if(!$autor)
  19. {
  20. echo 'podaj autora';
  21. }
  22. if(!$data)
  23. {
  24. echo 'podaj date';
  25. }
  26.  
  27. $link = mysql_connect($db_serwer,$db_login,$db_haslo,$db_tabela);
  28. mysql_select_db($db_baza)
  29. or die('nie mogę wybrać bazy');
  30. $zapytanie="INSERT INTO `str` (`tytul`, `tresc`, `data`, `autor`) VALUES ('".$tytul."','".$tresc."','".$data."','".$autor."')";
  31. $idzapytania=mysql_query($zapytanie)
  32. or die('błędne zapytanie');
  33.  
  34. mysql_close($link);
  35.  
  36. echo "<h1>";
  37. echo $tytul."</h1>\n";
  38.  
  39. echo "<p class='tresc'>";
  40. echo $tresc."</p>\n";
  41.  
  42. echo "<p class='opis'>";
  43. echo $autor." [<i>".$data."</i>]";
  44. echo "</p>\n";
  45.  
  46. echo "<hr>";
  47. echo ' <meta http-equiv="refresh" content="5; url=http://localhost/">';
  48. ?>


więc chyba istanieje
Boshi
  1. Notice: Undefined index: tresc in C:\wamp\www\edycja.php on line 5


Ten komunikat oznacza, że nie istnieje zmienna tresc



  1. include 'db_config.php';

dlaczego includujesz to wiele razy?

powinno byc na samej górze skryptu.
Lunerien
tylko nie wiem dlaczego tylko tej zmiennej nie widzi

ten plik zawiera tylko dane do połączenia z bazą danych jak hasło login itp includuje po to żeby się upewnić że będzie ok
blahy
Nie, ze nie ma zmiennej tresc tylko w $_POST nie ma klucza tresc.

Submit edycji powinien Ci dzialac (tzn nic nie zrobi bo sam edycja.php nie robi update).
Za to jak klikniesz w <input type='submit' value='popraw' class='przycisk'> - czyli popraw to wywola popraw.php gdzie pole tresc nie jest submitowane, a tam includujesz skrypt edycja.php. W tym formularzu, ktory submitujesz powinienes miec pole tresc tez
Lunerien
Teraz przestały się wyświetlać błędy tylko po kliknięciu popraw nic w bazie się nie zmienia
a wygląda to tak
  1. <?PHP
  2.  
  3. include 'db_config.php';
  4.  
  5. $tytul=$_POST['tytul'];
  6. $tresc=$_POST['tresc'];
  7. $autor=$_POST['autor'];
  8. $data=$_POST['data'];
  9.  
  10. $link = mysql_connect($db_serwer,$db_login,$db_haslo,$db_tabela);
  11. mysql_select_db($db_baza) or die('nie mogę wybrać bazy');
  12.  
  13. $zapytanie="SELECT `tytul`, `tresc`, `data`, `autor` FROM `str` WHERE `tresc`='".$tresc."' LIMIT 1";
  14.  
  15. $idzapytania=mysql_query($zapytanie)
  16. or die('błędne zapytanie');
  17.  
  18. $wiersz = mysql_fetch_row($idzapytania);
  19. ?>
  20. edycja:
  21. <form action='popraw.php' method='POST'>
  22. <input type='hidden' name='id'>
  23. Tytuł:
  24. <input type='text' name='tytul' class='tytul' >
  25. <br>
  26. <input type='text' name='tresc' class='normalny'>
  27. <br>
  28. Autor:
  29. <input type='text' name='autor' class='normalny'>
  30. <br>
  31. Data:
  32. <input type='text' name='data' class='normalny' >
  33. <br><br>
  34. <input type='submit' value='popraw' class='przycisk'>
  35. </form>

  1. <?PHP
  2.  
  3. include 'db_config.php';
  4.  
  5. $tytul=$_POST['tytul'];
  6. $tresc=$_POST['tresc'];
  7. $autor=$_POST['autor'];
  8. $data=$_POST['data'];
  9.  
  10. $link = mysql_connect($db_serwer,$db_login,$db_haslo,$db_tabela);
  11. mysql_select_db($db_baza)
  12. or die('nie mogę wybrać bazy');
  13.  
  14.  
  15. $zapytanie="UPDATE `str` SET `tytul`='".$tytul."', `tresc`='".$tresc."', `data`='".$data."', `autor`='".$autor."' WHERE `tresc`='".$tresc."' LIMIT 1";
  16. $idzapytania=mysql_query($zapytanie)
  17. or die('błędne zapytanie');
  18.  
  19. mysql_close($link);
  20.  
  21. echo ' <meta http-equiv="refresh" content="0; url=index.php">';
  22.  
  23. ?>
blahy
$zapytanie="UPDATE `str` SET `tytul`='".$tytul."', `tresc`='".$tresc."', `data`='".$data."', `autor`='".$autor."' WHERE `tresc`='".$tresc."' LIMIT 1";

To ze query zwroci true nie znaczy ze zrobilo to co chciales.
Szukasz wiersza w bazie po tresci, ktora zmieniles, wiec takiego wiersza w bazie nie znajdziesz. Zapytanie jest poprawne, ale nic nie aktualizuje.
Powinienes w where miec id tego rekordu (czyli pobierz z $_POST id, ktory tez submitujesz w hiddenie), a nie szukac po tresci, ktora przeciez zmieniles
Lunerien
Dzięki wszystko ładnie działa
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.