Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem ze skryptem [php/mysql]
Forum PHP.pl > Forum > Przedszkole
bastek8989
Witam

Mam problem z pewnym skryptem jego zadaniem jest edytowanie poszczegolnych rekordow w bazie danych
oto do czego doszlem: http://hosting.czechowice.net.pl/~bastek/p.../admin/edit.php

A oto sam kod:

  1. <form action="<? echo $PHP_SELF ?>" method="post">
  2. <?
  3. mysql_pconnect("localhost","*****","******");
  4. mysql_select_db("*****");
  5. if(!$cmd)
  6. {
  7. $result = mysql_query("select * from tresc");
  8. while($wynik=mysql_fetch_array($result))
  9. {
  10. $tytul=$wynik["tytul"];
  11. $tresc=$wynik["tresc"];
  12. $id=$wynik["id"];
  13. ?>
  14. <INPUT TYPE="RADIO" NAME="id" VALUE="<?php echo $id; ?>"><? echo $id; ?> <? 
  15. echo $tytul; ?><br>
  16. <? } ?>
  17. <input type="submit" name="cmd" value="edytuj"></form>
  18. <? } ?>
  19. <?
  20. if(isset($_POST["cmd"])) 
  21. {
  22. if (!$wyslij)
  23. {
  24.  $sql = "SELECT * FROM tresc WHERE id=$id";
  25.  $result = mysql_query($sql);
  26.  
  27. ?>
  28. <input type="hidden" name="id" value="<?php echo $row["id"] ?>">
  29. Tytul:<INPUT TYPE="TEXT" NAME="tytul" VALUE="<?php echo $row["tytul"] ?>
  30. SIZE=30><br>
  31. Tresc:<TEXTAREA NAME="tresc" ROWS=10 COLS=30><? echo $row["tresc"] ?>
  32. </TEXTAREA><br>
  33. Kto:<br>
  34. <input type="hidden" name="cmd" value="edytuj">
  35. <input type="Submit" name="wyslij" value="Popraw">
  36. </form>
  37. <? } ?>
  38. <?
  39. if($wyslij)
  40. {
  41.  $sql = "UPDATE tresc SET tytul='$tytul',tresc='$tresc' 
  42.  WHERE id=$id";
  43.  $result = mysql_query($sql);
  44.  echo "Dane zostaly zmienione";
  45. }
  46. }
  47. ?>


Zgóry dziekuje za odpowiedz.
NetJaro
A jaki to problem..?
bastek8989
oto adres: hosting.czechowice.net.pl/~bastek/polski/admin/edit.php

Po wybraniu w formularzu tytulu powinna nastapic edycja rekordów TYTUL i TRESC smile.gif
nospor
w skrocie Twoj wygenerowany formularz wyglada tak:
  1. </form>
  2.  
  3. <input na zapis danych
  4. </form>

To nie ma prawa dzialac, gdyz zamknales juz raz form. w przypadku gdy wyswietlasz inputy na tresc nie mozesz juz w srodku zamykac form. No to teraz se popraw blad smile.gif

ps: i nie mieszaj register globals. Raz piszesz $_POST['zmienna'] a raz $zmienna. sie zdecyduj na jedno rozwiazanie. (najlepiej na $_POST['zmienna'])

i popraw tytul
bastek8989
dodalem form, chyba oto ci chodzilo:

  1. <form><input type="hidden" name="id" value="<?php echo $row["id"] ?>">
  2. Tytul:<INPUT TYPE="TEXT" NAME="tytul" VALUE="<?php echo $row["tytul"] ?>
  3. SIZE=30><br>
  4. Tresc:<TEXTAREA NAME="tresc" ROWS=10 COLS=30><? echo $row["tresc"] ?>
  5. </TEXTAREA><br>
  6. Kto:<br>
  7. <input type="hidden" name="cmd" value="edytuj">
  8. <input type="Submit" name="wyslij" value="Popraw">
  9. </form>


niestety niewtym rzecz bo dalej niedziala :/
nospor
Jak nie dziala jak dziala. juz sie przynajmniej wysyla smile.gif
Dodajac drugiego form, tracisz informacje jaki rekord edytujesz smile.gif
bastek8989
czyli 1 form otworzyc i zamknac winksmiley.jpg

niestety dalej nieedytuje wybranego rekordu :/
Wieviór
Cytat(bastek8989 @ 11.09.2006, 15:39:09 ) *
  1. <?
  2. $sql = "SELECT * FROM tresc WHERE id=$id";
  3. $result = mysql_query($sql);
  4. ?>


Zamień na:

  1. <?php
  2. $sql = "SELECT * FROM tresc WHERE id=$_POST[id]";
  3. $wykonaj = mysql_query($sql);
  4. $result = mysql_fetch_array($wykonaj);
  5. ?>
bastek8989
niestety niedziala wyskakuje blad

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/bastek/public_html/polski/admin/edit.php on line 27

na lini 27 jest

  1. <?php
  2. $result = mysql_fetch_array($wykonaj);
  3. ?>
Wieviór
wyświetl przed tym drugim zapytaniem $_POST[id] i zobacz czy się pokazuje
bastek8989
tak pokazuje sie ale tylko wtedy kiedy usunolem ten fragmencik bo znim to nic niedzialalo

  1. <?php
  2. $result = mysql_fetch_array($wykonaj);
  3. ?>
Wieviór
Poprawiony kod:

  1. <?
  2. mysql_pconnect("localhost","*****","******");
  3. mysql_select_db("*****");
  4. echo '<form action="'.$PHP_SELF.'" method="post">';
  5. if(!isset ($_POST['cmd']))
  6. {
  7. $sql = "SELECT * FROM tresc ORDER BY id ASC";
  8. $result = mysql_query($sql);
  9. while($wynik=mysql_fetch_array($result))
  10. {
  11. echo '<INPUT TYPE="RADIO" NAME="id" VALUE="'.$wynik[id].'">'.$wynik[id].'&nbsp;'.$wynik['tytul'].'<br>';
  12. }
  13. echo '<input type="submit" name="cmd" value="edytuj"></form>';
  14. }
  15.  
  16. if(isset($_POST['cmd']) AND isset($_POST[id])) 
  17. {
  18. if (!isset ($_POST['wyslij']))
  19. {
  20. $sql = "SELECT * FROM tresc WHERE id=$_POST[id]";
  21. $result = mysql_query($sql);
  22. $wynik = mysql_fetch_array($result);
  23. echo '<input type="hidden" name="id" value="'.$wynik[id].'">
  24. Tytul:<INPUT TYPE="TEXT" NAME="tytul" VALUE="'.$wynik['tytul'].'" SIZE=30><br>
  25. Tresc:<TEXTAREA NAME="tresc" ROWS=10 COLS=30>'.$wynik['tresc'].'</TEXTAREA><br>
  26. Kto:<br>
  27. <input type="hidden" name="cmd" value="edytuj">
  28. <input type="Submit" name="wyslij" value="Popraw">
  29. </form>';
  30. }
  31. if(isset ($_POST['wyslij']))
  32. {
  33. $sql = "UPDATE tresc SET tytul='".$_POST['tytul']."', tresc='".$_POST['tresc']."' WHERE id=$_POST[id]";
  34. mysql_query($sql) or die(mysql_error());
  35. echo 'Dane zostaly zmienione';
  36. }
  37. } elseif (isset ($_POST['cmd']) AND !isset($_POST[id])) { echo 'Nie zaznaczono!'; }
  38. ?>
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.