Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Notice: Undefined index nie wiem dlaczego
Forum PHP.pl > Forum > Przedszkole
szokmen
Witam uczę się PhP i natrafiłem na problem. A mianowicie mam stronę na której mam wypisane dane i w ostatniej kolumnie mam dwie opcje "kasuj" i "edytuj". Kasuj działa elegancko a edytuj działa mi ale nie do końca biggrin.gif, ponieważ klikam na edytuj, wyświetla mi się formularz do edycji z wypełnionymi polami wpisuje nowe wartości klikam zamień i zmienione dane nie zostają wprowadzone do tabeli z danymi zamiast tego wyskakuje mi coś takiego:
Notice: Undefined index: nazwa_czesci in G:\wamp\www\katalog.php on line 20
Notice: Undefined index: typ in G:\wamp\www\katalog.php on line 21
Notice: Undefined index: typ_materialu in G:\wamp\www\katalog.php on line 22
Notice: Undefined index: nazwa_materialu in G:\wamp\www\katalog.php on line 23
Notice: Undefined index: dlugosc_detalu in G:\wamp\www\katalog.php on line 24

(dodam tylko, że w bazie kolumna nazwa_czesci jest ustawiona jako primary key)
oto kod:
  1. echo '<div id="h2">';
  2. echo '<form action="katalog.php" method="POST">';
  3. echo '<p align="right">';
  4. echo '<input type ="hidden" name="wybor" value="dodaj">';
  5. echo '<table>';
  6. echo 'Nazwa części:<input type ="text" name="nazwa_czesci"><br />';
  7. echo 'Typ:<input type ="text" name="typ"><br />';
  8. echo 'Typ materiału:<input type ="text" name="typ_materialu"><br />';
  9. echo 'Nazwa katalogowa materialu:<input type ="text" name="nazwa_materialu"><br />';
  10. echo 'Długość detalu:<input type ="text" name="dlugosc_detalu"><br />';
  11. echo '<input type ="submit" value="dodaj">';
  12. echo '</table>';
  13. echo '</p>';
  14. echo '</form>';
  15. echo '</div>';
  16.  
  17. if(isset($_POST["wybor"])== 'dodaj')
  18. {
  19.  
  20. $nazwa_czesci0=$_POST['nazwa_czesci'];
  21. $typ0=$_POST['typ'];
  22. $typ_materialu0=$_POST['typ_materialu'];
  23. $nazwa_materialu0=$_POST['nazwa_materialu'];
  24. $dlugosc_detalu0=$_POST['dlugosc_detalu'];
  25.  
  26. if($nazwa_czesci0 && $typ0 && $typ_materialu0 && $nazwa_materialu0)
  27. {
  28. $ins ="insert into katalog set nazwa_czesci='$nazwa_czesci0', typ='$typ0', typ_materialu='$typ_materialu0',nazwa_materialu='$nazwa_materialu0', dlugosc_detalu='$dlugosc_detalu0'";
  29. mysql_query($ins) or die (mysql_error());
  30. if($ins)
  31. {
  32. echo "Rekord został dodany poprawnie";
  33. }
  34. else
  35. {
  36. echo "Błąd nie udało się dodać nowego rekordu";
  37. }
  38. }
  39. else
  40. {
  41. echo '<font color="red">2.Wypełnij wszystkie pola</font>';
  42. }
  43. }
  44.  
  45. else if (isset($_GET["wybor"]))
  46. {
  47. switch($_GET["wybor"])
  48. {
  49. case 'DEL':
  50. $zapytanie3="DELETE from katalog where nazwa_czesci='$_GET[nazwa_czesci]';";
  51. $del = mysql_query($zapytanie3);
  52. if($del)
  53. {
  54. echo '<h5>rekord usuniety</h5>';
  55.  
  56. }
  57. else
  58. {
  59. echo '<h5>blad</h5>';
  60. mysql_query($del) or die('BŁĄD:'.mysql_error());
  61. } break;
  62.  
  63. case 'edit':
  64. $zap10="SELECT *from katalog where nazwa_czesci='$_GET[nazwa_czesci]';";
  65. $wyk10=mysql_query($zap10);
  66. $reko=mysql_fetch_array($wyk10);
  67.  
  68. $nazwa_czesci10 =$reko[0];
  69. $typ10=$reko[1];
  70. $typ_materialu10=$reko[2];
  71. $nazwa_materialu10=$reko[3];
  72. $dlugosc10=$reko[4];
  73.  
  74.  
  75. echo '<form action="katalog.php" method="POST">';
  76. echo '<p align="right">';
  77. echo '<input type ="hidden" name="wybor" value="zamien">';
  78. echo '<table>';
  79. echo 'Nazwa części:<input type ="text" name="nazwa_czesci20" value="'.$nazwa_czesci10.'"><br />';
  80. echo 'imie:<input type ="text" name="typ20" value="'.$typ10.'"><br />';
  81. echo 'nazwisko:<input type ="text" name="typ_materialu20" value="'.$typ_materialu10.'"><br />';
  82. echo 'nazwa firmy:<input type ="text" name="nazwa_materialu20" value="'.$nazwa_materialu10.'"><br />';
  83. echo 'telefon:<input type ="text" name="dlugosc20" value="'.$dlugosc10.'"><br />';
  84. echo '<input type ="submit" value="zmień">';
  85. echo '</table>';
  86. echo '</p>';
  87. echo '</form>';
  88. break;
  89.  
  90. case 'zamien':
  91. $nazwa_czesci10= $_POST['nazwa_czesci20'];
  92. $typ10= $_POST['typ20'];
  93. $typ_materialu10= $_POST['typ_materialu20'];
  94. $nazwa_materialu10=$_POST['nazwa_materialu20'];
  95. $dlugosc10=$_POST['dlugosc_detalu20'];
  96.  
  97.  
  98. $zap11="UPDATE katalog set typ='$typ10', typ_materialu='$typ_materialu10',nazwa_materialu='$nazwa_materialu10' where nazwa_czesci='$_GET[nazwa_czesci]'";
  99. $wyk11=mysql_query($zap11);
  100. break;
  101. }
  102.  
  103.  
  104.  
  105. }
  106. $zapytanie1 = "SELECT *from katalog";
  107. $wyk1=mysql_query($zapytanie1);
  108.  
  109. //echo '<div id="h4">';
  110. echo '<table bordercolor="blue" cellpading=5 border=2>';
  111. echo "<tr>";
  112. echo "<td><b>Nazwa części</td></b>";
  113. echo "<td><b>Typ</td></b>";
  114. echo "<td><b>Typ materiału</td></b>";
  115. echo "<td><b>Nazwa katalogowa materiału</td></b>";
  116. echo "<td><b>Długość detalu</td></b>";
  117. echo "</tr>\n";
  118.  
  119. while($rekord=mysql_fetch_array($wyk1))
  120. {
  121. $nazwa_czesci =$rekord[0];
  122. $typ=$rekord[1];
  123. $typ_materialu=$rekord[2];
  124. $nazwa_materialu=$rekord[3];
  125. $dlugosc_detalu=$rekord[4];
  126.  
  127. echo "<tr>";
  128. echo "<td><b>$nazwa_czesci</td></b>";
  129. echo "<td><b>$typ</td></b>";
  130. echo "<td><b>$typ_materialu</td></b>";
  131. echo "<td><b>$nazwa_materialu</td></b>";
  132. echo "<td><b>$dlugosc_detalu</td></b>";
  133. echo "<td><a href = \"katalog.php?wybor=DEL&nazwa_czesci=$nazwa_czesci\">kasuj</a></td>";
  134. echo "<td><a href = \"katalog.php?wybor=edit&nazwa_czesci=$nazwa_czesci\">edytuj</a></td>";
  135. echo "</tr>\n";
  136. echo '</div>';
  137. }
  138. echo "</table>";
  139.  
  140.  
erix
  1. $nazwa_czesci10= $_POST['nazwa_czesci20'];
  2. $typ10= $_POST['typ20'];
  3. $typ_materialu10= $_POST['typ_materialu20'];
  4. $nazwa_materialu10=$_POST['nazwa_materialu20'];
  5. $dlugosc10=$_POST['dlugosc_detalu20'];

Błędy pokazuje, bo pobierasz z tablicy wartości, które tam nie istnieją.
szokmen
Teraz zrobiłem tak:
  1. $nazwa_czesci10= $_POST['nazwa_czesci'];
  2. $typ10= $_POST['typ'];
  3. $typ_materialu10= $_POST['typ_materialu'];
  4. $nazwa_materialu10=$_POST['nazwa_materialu'];
  5. $dlugosc10=$_POST['dlugosc'];

i tamte notice zniknęły ale teraz mi wyskakuje coś takiego "Duplicate entry 'M22/M22' for key 'PRIMARY'" i mam pytanie czy jak kolumna nazwa_czesci jest ustawiona na primary key to nie mogę jej zrobić update? Bo w zasadzie to taki komunikat powinien się pokazywać przy dodawaniu nowego rekordu a to by chyba znaczyło, że moje "edytuj" działa jak dodawanie rekordu ehhh
erix
Możesz, ale prawdopodobnie wykonujesz insert zamiast update. Sprawdź sobie warunki.
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.