Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Undefined index
Forum PHP.pl > Forum > Przedszkole
Bager
Witam,
Po załadowaniu strony pojawia się następująca informacja
Notice: Undefined index: akcja in C:\wamp\www\newsy\edytuj.php on line 6

Notice: Undefined index: zmien in C:\wamp\www\newsy\edytuj.php on line 27


  1. <?php include ('polaczenie.php'); ?>
  2. <a href="dodaj.php">Dodaj newsa</a> || <a href="wyswietl.php">Wyswietl</a><br>
  3.  
  4. <?php
  5.  
  6. if ($_GET['akcja'] == 'edytuj') {
  7.  
  8.    $zapytanie = "SELECT * FROM news WHERE id=".$_GET['id'];
  9.    $newsdb = mysql_query($zapytanie);
  10.    $rekord = mysql_fetch_assoc($newsdb);
  11. ?>
  12.    <p><b>Edytuj Newsa</b></p>
  13.  
  14.    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
  15.  
  16.    Tytuł: <input name="title" value="<?php echo $rekord['title'] ?>" size="25" /><br />
  17.    Treść: <textarea cols="50" rows="10" name="text" size="55" /><?php echo $rekord['text'] ?></textarea><br />
  18.    Data: <input name="data" value="<?php echo $rekord['data'] ?>" size="25" /><br />    
  19.        <input type="submit" name="zmien" value="Zmień" />
  20.        <input type="reset" value="Resetuj" />
  21.  
  22.    </form><br />
  23.    
  24. <?php
  25. }
  26.  
  27. if ($_POST['zmien']) {
  28.  
  29.    $zapytanie = "UPDATE news SET 'title'='".$_POST['title']."', 'text'='". $_POST['text']."' WHERE 'id'='".$_POST['id']."'";
  30.  
  31.    $newsdb = mysql_query($zapytanie);
  32.  
  33.    if ($newsdb)
  34.        echo "<p>Aktualizacja powiodła się</p>";
  35.    else
  36.        echo "<p>Aktualizacja nie powiodła się!</p>"; echo mysql_error();
  37. }
  38.  
  39.  
  40. ?>
  41.  
  42.  
  43. <?php
  44. $zapytanie = "SELECT * FROM news ORDER BY data DESC";
  45. $newsdb = mysql_query($zapytanie) or die ('Błąd: ' . mysql_error());
  46. ?>
  47. <hr />
  48. <table>
  49. <?php
  50. while ($rekord = mysql_fetch_assoc($newsdb)) {
  51. ?>
  52.    <tr>
  53.            <td><a href="<?php echo $_SERVER['PHP_SELF'];?>?akcja=edytuj&id=<?php echo $rekord['id'];?>">
  54.            EDYTUJ --></a></td>
  55.            <td><?php echo $rekord['data']; ?></td>
  56.            <td><?php echo $rekord['title'];?></td>
  57.            <td><?php echo $rekord['text'];?></td>
  58.    </tr>
  59. <?php
  60.  
  61.  
  62. }
  63. ?>
  64. </table>


Zapewne rozwiązanie tego jest bardzo proste, ale ja niestety nie umiem sobie z tym poradzić : / Z góry dziękuję za pomoc!
wookieb
Tzn ze w tablicy nie ma klucza ktorego uzywasz np w tablicy $_GET nie ma aktualnie klucza 'akcja', wiec najpierw dajesz
Kod
if(isset($_GET['akcja']) && dalsze warunki)
Bager
Ok, wprowadziłem stosowne zmiany:
  1. <?php
  2. if (isset($_GET['akcja']) == 'edytuj') {
  3. ?>

  1. <?php
  2. if (isset($_POST['zmien'])) {
  3. ?>


Przy okazji zauważyłem, że ta informacja pojawia się tylko wtedy gdy mam włączone PHP 5.2.8, natomiast przy PHP 4.4.9 wszystko jest ok. Czy to normalne zachowanie?

Tak czy siak, po dodaniu 'isset' informacja już się nie pojawia. Jednak gdy wybiorę dany news do edycji, wprowadzę stosowne zmiany i kliknę 'Zmień' dostaje:
Notice: Undefined index: id in C:\wamp\www\newsy\edytuj.php on line 29
Aktualizacja nie powiodła się!

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''title'='Tytul zmieniony', 'text'='Tresc newsa XYZ ' WHERE 'id'=''' at line 1


Co tym razem jest źle? : /

Nie wiem czy to potrzebne: MySQL wersja 5.1.30
bełdzio
Kod
'UPDATE news SET title="'.$_POST['title'].'", text="'. $_POST['text'].'" WHERE id='.$_POST['id'];
+ jakas filtracja
decha-design
isset()" title="Zobacz w manualu PHP" target="_manual zwraca true lub false w przypadku niepowodzenia ... więc nie wiem jak chcesz porównać wartość 1 lub 0 z tekstem 'akcja' ... raczej nielogiczne, poczytaj manual

Cytat
Notice: Undefined index: id in C:\wamp\www\newsy\edytuj.php on line 29
to samo co wyżej, zastosuj isset, lub gdzies przed sprawdzaniem przypisz jej wartosc jakąś ... chociażby null ...

Cytat
Przy okazji zauważyłem, że ta informacja pojawia się tylko wtedy gdy mam włączone PHP 5.2.8, natomiast przy PHP 4.4.9 wszystko jest ok.
Bo tak to już jest =) PHP 5.x jest bardziej wrażliwe (?) ... poczytaj o error_reporting()" title="Zobacz w manualu PHP" target="_manual
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.