Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] problem wyborem z listy
Forum PHP.pl > Forum > Przedszkole
marian84
Mam stworzony formularz... który do wczoraj działał....
ma on m.in. po wyborze z listy rozwijanej dopisać w ostatnim rekordzie wartosc id parenta...
błąd jaki następuje to dopisanie ostatniego id a nie id wybranego... gdzie jest błąd?
Kod
<fieldset style="width:610px;">
<form action="" method="post">
    <table border="0">
      <tr><td>Tytuł</td></tr>
      <tr>
        <td width="610"><input type="text" name="tytul" width="500"></td>
      </tr>
      <tr><td>
      <?php
  $pytam = "SELECT * FROM strony WHERE parent = 0 ORDER BY id";
   $wynik = mysql_query($pytam);

          echo "<select name=\"parent\">";
          echo "<option value=\"0\">** brak **</option>";

          while($wiersz = mysql_fetch_array($wynik))
          {
          $sid = $wiersz["id"];
          $nazwa = $wiersz["temat"];

          echo "<option value=\"$sid\">$nazwa</option>";
          }
          echo "</select>";
?>

        </td>
      </tr>
      <tr><td>Opis</td></tr><tr><td style="height:300px">
      <?php
        $oFCKeditor = new FCKeditor('opis');
        $oFCKeditor->BasePath = 'fckeditor/';
        $oFCKeditor->Width= '600px';
        $oFCKeditor->Height= '400px';
        $oFCKeditor->Create();
        ?>
        </td></tr>
      <tr><td colspan="2" align="right"><input type="submit" name="dodaj_art" value="Zapisz"></td></tr>
    </table>
    
  </form>
  </fieldset>
  <?php
  if(isset($_POST['dodaj_art'])){
    mysql_query('INSERT INTO strony VALUES ("", "'.$tytul.'", "'.$opis.'", "0", "'.$sid.'")');
}
?>
JoShiMa
A nie powinno być tak:

  1. <?php
  2. if(isset($_POST['dodaj_art'])){
  3.  mysql_query('INSERT INTO strony VALUES ("", "'.$_POST['tytul'].'", "'.$_POST['opis'].'", "0", "'.$_POST['parent'].'")'); 
  4. }
  5. ?>


zamiast wartości wysłanej przes skrypt pod zmienna $parent brałeś zmienną $sid którą wykorzystywałeś do tworzenia selecta

  1. <?php
  2. $sid = $wiersz["id"];
  3. ?>


Dlatego miałeś tam ostatnią wartość z selecta smile.gif

Poza tym poczytaj sobie o tym dlaczego należy używać tablic $_POST i $_GET. smile.gif
marian84
Cytat(JoShiMa @ 1.04.2008, 22:44:18 ) *
A nie powinno być tak:

  1. <?php
  2. if(isset($_POST['dodaj_art'])){
  3.  mysql_query('INSERT INTO strony VALUES (\"\"\"'.$_POST['tytul'].'\"\"'.$_POST['opis'].'\"\"0\"\"'.$_POST['parent'].'\")'); 
  4. }
  5. ?>


zamiast wartości wysłanej przes skrypt pod zmienna $parent brałeś zmienną $sid którą wykorzystywałeś do tworzenia selecta

  1. <?php
  2. $sid = $wiersz[&#092;"id\"];
  3. ?>


Dlatego miałeś tam ostatnią wartość z selecta smile.gif

Poza tym poczytaj sobie o tym dlaczego należy używać tablic $_POST i $_GET. smile.gif

nie do konca dobrze... tym razem czyta tylko pierwszą wartosc...
JoShiMa
Po wygenerowaniu skryptu podejrzyj w przeglądarce źródło strony i sprawdz, czy prawidłowo generujesz tego selecta, czyli jakie wartości mają poszczególne <option>
marian84
Czy coś nie tak?
<select name="parent"><option value="0">** brak **</option><option value="1">Strona1</option><option value="2">Strona2</option><option value="3">strona3</option><option value="15">Strona 4</option><option value="43">strona ostatnia</option><option value="44">qqqq</option><option value="45">asd</option><option value="46">qweq</option></select>



jest błąd!!.... przepraszam, za dużo wrazeń, jest ok wielkie dzieki, pomógł
JoShiMa
W takim razie upewnij się, że dobrze skonstruowałeś zapytanie (tak na marginesie te slesze nie są tam potrzebne).

Wyświetl sobie to zapytanie. Poza tym bezpieczniej jest używać tej wesrsji:
  1. INSERT INTO table1 (pole1,pole2, pole2) VALUES ('wartosc1','wartosc2','wartosc3');
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.