Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prawidłowa składnia
Forum PHP.pl > Forum > Przedszkole
yalus
Witam wszystkich!

kod wyglada nastepujaco oczywiscie bez wdawania sie w szczegoly

<?php
<a href=\"kasuj.php?stan=del>KASUJ</a>

if($stan=="del") {}
else {}
?>

wartosc zmienej stan ustalam sobie na linku i w zaleznosci od jej wartosci jest wykonywana odpowiednia akcja

i tutaj mam wlasnie problem bo odpalajac tego skrypta dostaje notica

Cytat
Notice: Undefined variable: stan


wydaje mi sie ze ona zostala zadeklarowana po kliknieciu w linka ale w instrukcji if wartosc tej zmiennej prostu jest pusta tak jakby nic do niej nie zostalo przekazane

ps. skrypt ten znajduje sie w pliku kasuj.php
nospor
pewnie masz wyłączone register_globals w php.ini

  1. <?php
  2.  
  3. if(isset($_GET['stan']) && $_GET['stan']==&#092;"del\") {}
  4.  
  5. ?>


a swoją drogą dziwne że ci link pokazuje. Bo powinno chyba byc tak:
  1. <?php
  2.  
  3. echo '<a href=\"kasuj.php?stan=del\">KASUJ</a>';
  4.  
  5. ?>
yalus
to jest tylko czesc kody wszystko jest wew. echo

ale to co ty napisales to niedziala nawet po wlaczeniu register_globals=on

masz jeszcze jakis pomysl??
nospor
to co napisalem dziala czy jest wlaczone rg czy też nie .
a co ci nie dziala?
strife
Cytat(yalus @ 2005-07-15 14:47:44)
to jest tylko czesc kody wszystko jest wew. echo

ale to co ty napisales to niedziala nawet po wlaczeniu register_globals=on

masz jeszcze jakis pomysl??

error_reporting(0) biggrin.gif, a poważnie to spróbuj na początku skryptu zadeklarować tą zmienną np.
  1. <?php
  2.  
  3. $stan = TRUE;
  4.  
  5. ?>


albo po prostu wyłącz Notice... ?
yalus
  1. <?php
  2.  
  3.  
  4. mysql_connect (&#092;"127.0.0.1\",\"\",\"\");
  5. mysql_select_db (&#092;"baza\");
  6.  
  7. $zapytanie = &#092;"SELECT * FROM tabela ORDER BY ID DESC\";
  8. $wykonaj = mysql_query ($zapytanie);
  9. while($wiersz=mysql_fetch_array ($wykonaj)) {
  10. echo &#092;" <tr>
  11. <td align=&#092;"center\">\".$wiersz['ID'].\"</td>
  12. <td align=&#092;"center\">\".$wiersz['Cena'].\"</td>
  13. <td width=&#092;"6%\"><b><a href=\"kasuj_dane.php?stan=del&iddel=\".$wiersz['ID'].\"\">KASUJ</a></b></td></tr>\";
  14. }
  15.  
  16. if (isset($_GET['stan']) && $_GET['stan']==&#092;"del\")  {
  17. $zapytanie2=&#092;"DELETE FROM dane WHERE id=$_GET['iddel']\";
  18. $wynik2 = mysql_query($zapytanie2);
  19. echo &#092;"Rekord o id=$iddel został skasowany !\";
  20. }
  21. else {
  22. &#092;"nic z tego\";
  23.  
  24. }
  25.  
  26. ?>


to jest caly kodzik. po wpisaniu Twojej lini kodu if (isset($_GET['stan']) && $_GET['stan']=="del") wchodzi teraz wew. if ale nie kasuje rekordu

wiesz co jest grane??
- nospor
nospor
czyli działa bo wchodzi jak trzeba, więc nie pisz że nie działa mój kod. Nie działa Twój wewnątrz ifa a to różnica

  1. <?php
  2.  
  3. if (isset($_GET['stan']) && $_GET['stan']==&#092;"del\") {
  4. $zapytanie2=&#092;"DELETE FROM dane WHERE id={$_GET['iddel']}\";
  5. $wynik2 = mysql_query($zapytanie2) or die (mysql_error());
  6. echo &#092;"Rekord o id=$iddel został skasowany !\";
  7. }
  8.  
  9. ?>
yalus
sorki ale to bylo nieporozumienie

serdeczne dzieki za pomoc teraz wszystko dziala.

ps.
tzn przekazujac jakas wartosc w zmiennej ze strony do skryptu ja musze zawsze uzywac $_GET[ lub $_POST[ i nie ma znaczenia ze ten link nie byl wewnatrz formularz questionmark.gif
nospor
jeśli robisz linka to $_GET.
Jeśli masz formualrz metodą post to $_POST
Jeśli masz formualrz metodą get to $_GET

To ja skasuje nasze dwa ostatnie posty bo niepotzrebne są
yalus
ok dzieki

ale jeszcze jedno mi sie wlasnie nasunelo

czy jest jakas mozliwosc skasowania kilku rekordow jednoczesnie

tz. w tym moim skrypciku usune linie w ktorej tworzone sa linki USUN a w jej miejsce wstawie kod ktory bedzie generowal checkboxy i na dole tabeli dodam jeszcze buttona.
i teraz chcac skasowac kilka rekordow poprostu zaznacze kilka chckboxow i nacisne buttona bo do tej pory moge skasowac w jednym czasie tylko jeden rekord (linkiem).
nie chodzi mi o to abys mi podal gotowa procedurke (chociaz bylo by milo) ale jakos naswietlil temat.
w linku to jest prosto <a href=\"kasuj_dane.php?stan=del> usun </a>

a jak to wyglada w przypadku kilku zaznaczonych checkboxow??
nospor
a więc.
daj checkboxom nazwę tablicową[] czyli name="test[]" a dla każdego z nich value="twoje id"
w php odbierasz:
  1. <?php
  2.  
  3. $tab = array();
  4. if (isset($_POST['test']))
  5.  $tab = $_POST['test'];
  6. //w tablicy bedą tylko zaznaczone id
  7.  
  8. if (!empty($tab))
  9. {
  10. //tu se przelec po tablicy i kasuj
  11. }
  12.  
  13. ?>
yalus
ogromne dzieki zabieram sie do roboty smile.gif
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.