Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z update
Forum PHP.pl > Forum > PHP
snaiper
mam pytanko: mam tabele co zawiera nr (auto increment) i pole status (ENUM: 'O','Z') i w petli wyswietla mi na stronce tabelke
wyglada to mniej wiecej tak

-------------------
nr |........| status
-------------------
1 |........| O
2 |........| O

itd.

chce zrobic cos takiego zeby obok pola status byl dla kazdego wpisu osobny przycisk ktory umozliwi zmiane statusu z O na Z
zrobilem cos takiego

  1. <?php
  2.  
  3. $zapytanie = &#092;"SELECT * FROM projekty WHERE status='O' ORDER BY data DESC \";
  4. $wynik = mysql_query($zapytanie);
  5. if(!$wynik)
  6. return false;
  7. else{
  8.  while($pokaz = mysql_fetch_array($wynik)){
  9.  echo &#092;"<tr>\";
  10.  echo &#092;"<td>\" . $pokaz[\"nr\"] . \"</td>\";
  11.  echo &#092;"<td>\" . $pokaz[\"data\"] . \"</td>\";
  12.  echo &#092;"<td>\" . $pokaz[\"od\"] . \"</td>\";
  13.  echo &#092;"<td>\" . $pokaz[\"temat\"] . \"</td>\";
  14.  echo &#092;"<td>\" . $pokaz[\"nazwa\"] . \"</td>\";
  15.  echo &#092;"<td>\" . $pokaz[\"e_mail\"] . \"</td>\";
  16.  echo &#092;"<td>\" . $pokaz[\"status\"] . \"</td>\";
  17.  
  18.  echo ' <FORM ACTION=\"lista.php\" METHOD=\"GET\"> ';
  19.  $glos2=$_GET['$nr'];
  20.  echo &#092;"<INPUT TYPE='submit' VALUE='$nr' NAME='update'>\";
  21. echo &#092;" </FORM>\";
  22. }
  23. $sql = ' UPDATE projekty SET status = \"Z\" WHERE nr = ' . $glos2 . ' ';
  24. $wynik = mysql_query($sql);
  25. return $wynik;
  26.  }
  27.  
  28. ?>

ale nie dziala sad.gif prosze o pomoc
Vertical
Kiedy podajesz:
  1. <?php
  2. $glos2=$_GET['$nr'];
  3. ?>

...wtedy zamiast:
  1. <?php
  2. echo &#092;"<INPUT TYPE='submit' VALUE='$nr' NAME='update'>\";
  3. ?>

...powinno być:
  1. <?php
  2. echo &#092;"<INPUT TYPE='submit' VALUE='cos_innego' NAME='$nr'>\";
  3. ?>

...albo zamień:
  1. <?php
  2. $glos2=$_GET['$nr'];
  3. ?>

...na:
  1. <?php
  2. $glos2=$_GET['nr'];
  3. ?>
snaiper
niestety to nic nie pomoglo sad.gif
Yarecki
Może tak zadziała ?
  1. <?php
  2. $zapytanie = &#092;"SELECT * FROM projekty WHERE status='O' ORDER BY data DESC \";
  3. $wynik = mysql_query($zapytanie);
  4. if(!$wynik)
  5. return false;
  6. else{
  7.  while($pokaz = mysql_fetch_array($wynik)){
  8.  echo &#092;"<tr>\";
  9.  echo &#092;"<td>\" . $pokaz[\"nr\"] . \"</td>\";
  10.  echo &#092;"<td>\" . $pokaz[\"data\"] . \"</td>\";
  11.  echo &#092;"<td>\" . $pokaz[\"od\"] . \"</td>\";
  12.  echo &#092;"<td>\" . $pokaz[\"temat\"] . \"</td>\";
  13.  echo &#092;"<td>\" . $pokaz[\"nazwa\"] . \"</td>\";
  14.  echo &#092;"<td>\" . $pokaz[\"e_mail\"] . \"</td>\";
  15.  echo &#092;"<td>\" . $pokaz[\"status\"] . \"</td>\";
  16.  
  17.  echo ' <FORM ACTION=\"lista.php\" METHOD=\"GET\"> ';
  18.  echo '<input type='hidden' value='' . $pokaz[\"nr\"] . '' name='update'>';
  19.  echo &#092;"<INPUT TYPE='submit' VALUE='' NAME='przycisk'>\";
  20.  echo &#092;" </FORM>\";
  21. }
  22. }
  23.  
  24.  
  25. if( !empty( $_GET['update'] ) 
  26. { 
  27. $sql = ' UPDATE projekty SET status = \"Z\" WHERE nr = ' . int( $_GET['update'] ) . ' ';
  28. $wynik = mysql_query($sql);
  29. return $wynik;
  30. }
  31. ?>


Głównie chodzi o to, że nr to pewnie klucz podstawowy pobrany z bazy ? Jeśli tak to wstawia się go do formularza.

Update jest uzależniony od tego czy w adresie była podana zmienna update i jaką miała wartość. Dlatego nie ma sensu wstawiać tego kawałku kodu do pętli while.

BTW. $_GET['$nr'] to błędny zapis. Nie powinno być $ przy nr, lub nie powinno być ' '.
snaiper
Fatal error: Call to undefined function: int() in e:\program files\apache group\apache\htdocs\tomek\lista.php on line 63
crash
Chodziło mu raczej o rzutowanie, zapisz tam (int).
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.