Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] update i delete
Forum PHP.pl > Forum > Przedszkole
aga323
Witam mam taki oto kod:
  1. <?php
  2. for ($i=$powtuzen; $i>=1; $i--)
  3. {
  4. $oc_ ='oc'.$i;
  5. $id_ ='id'.$i;
  6.  if(!empty($oc_)){
  7. //-------------------------
  8. //  Zapytanie
  9. //-------------------------
  10. $query = "UPDATE oceny SET ocena=$_POST[$oc_] WHERE id=$_POST[$id_]";
  11. $result = mysql_query ($query);
  12. //-------------------------
  13.  }
  14. else{
  15. $query = "DELETE FROM oceny WHERE id=$POST[$id_]";
  16. $result = mysql_query ($query);
  17. }
  18. }
  19. ?>

Jak można zauważyć jest to kod do aktualizowania i usuwania ocen. Edytowanie działa sprawnie a usuwanie niestety nie. Czy mógłby mnie ktoś oświecić i powiedzieć mi co robię źle? Z góry dziękuje smile.gif
cornholio666
Tak powinno działać
  1. <?php
  2. $query = "DELETE FROM oceny WHERE id=$_POST[$id_]";
  3. ?>
aga323
No tak mam ale coś nie chce działać sad.gif
sniezny_wilk
W ogóle masz dziwnie, że masz ID jako wartoś alfanumeryczną, ja zawsze używam ID jako integer (potem można dodać auto_increment, co jest przydatne), ale jak kto woli. Ale jeśli bardzo chcesz robić to na tekstowych kolumnach, proponuje coś takiego:
  1. <?php
  2. $query = " DELETE FROM `oceny` WHERE `oceny`.`id`="".$_POST[$id_]."" ";
  3. ?>
cornholio666
Miałaś tak:

  1. <?php
  2. $query = "DELETE FROM oceny WHERE id=$POST[$id_]";
  3. ?>


Daj tak:

  1. <?php
  2. $query = "DELETE FROM oceny WHERE id=$_POST[$id_]";
  3. $result = mysql_query ($query);
  4.  
  5. if(!$result){
  6.  
  7. }
  8. ?>


I zobacz czy ci cos wypisuje
aga323
@sniezny_wilk Twoje rozwiązanie niestety nie pomogło sad.gif Cornholio miałes racje teraz wyskakue błąd "Parse error: syntax error, unexpected $end in /var/www/sites/yoyo.pl/g/2/g2test/dziennik/up2.php on line 41"
Podaję cały kod:
  1. <?
  2. //Laczenie z baza
  3. include ("connect.php");
  4. //------------------
  5. // Tablica post
  6. //---------------
  7. $ilosc = count($_POST);
  8. $powtorzen = $ilosc /2;
  9. //--------------------
  10.  
  11. //-------------------------
  12. //  Zapytanie
  13. //-------------------------
  14. $query = "SELECT id FROM users";
  15. $result = mysql_query ($query);
  16. //-------------------------
  17. for ($i=$powtorzen; $i>=1; $i--)
  18. {
  19. $oc_ ='oc'.$i;
  20. $id_ ='id'.$i;
  21.  if(!empty($oc_)){
  22. //-------------------------
  23. //  Zapytanie
  24. //-------------------------
  25. $query = "UPDATE `oceny` SET ocena=$_POST[$oc_] WHERE id=$_POST[$id_]";
  26. $result = mysql_query ($query);
  27. //-------------------------
  28.  }
  29. else{
  30. $query = " DELETE FROM `oceny` WHERE id=$_POST[$id_];
  31. $result = mysql_query ($query);
  32. if(!$result){
  33.  
  34. die(mysql_error());
  35.  
  36. }
  37. }
  38. header( 'Location: ses.php?co=lista' );
  39. ?>
cornholio666
Domknij "else"
aga323
Domknęłam else ale w dalszym ciągu to samo sad.gif
cornholio666
Tu masz jeszcze blad:

  1. <?php
  2. $query = " DELETE FROM `oceny` WHERE id=$_POST[$id_];
  3. ?>


powinno być

  1. <?php
  2. $query = " DELETE FROM `oceny` WHERE id=". $_POST[$id_];
  3. ?>
aga323
dobra zrobiłam tak:
  1. <?php
  2. $query = " DELETE FROM `oceny` WHERE id=' .$_POST[$id_]. '";
  3. ?>

i ta twoją wersje też spróbowałam ale nic....
Hmmm... myślę bardziej o poprawności tego fragmentu
  1. <?php
  2. for ($i=$powtorzen; $i>=1; $i--)
  3. {
  4. $oc_ ='oc'.$i;
  5. $id_ ='id'.$i;
  6.  if(!empty($oc_)){
  7. ?>

Tak jakby cos mi tu nie pasi ale nie wiem co...
cornholio666
Jaki masz komunikat błędu?

EDIT:

Zmienna $oc_ nigdy nie bedzie pusta

  1. <?php
  2. $oc_ ='oc'.$i;
  3. ?>
aga323
To w takim razie jak by to można inaczej zrobić?
cornholio666
A co dokladnie chcesz zrobic?
aga323
Bo robie dzienniczek ucznia i chce zrobić tak, że wyświetla sie formularz z ocenami z bazy i jeśli zmienimy ocene na jakąs inna to ta zmianę zapisuje w mysql (to jest w tym fragmencie) a jeśli pozostawimy pole na ocene puste (tzn. usuniemy ocenę pobraną z bazy i pozostawimy puste pole) to wtedy skrypt kasuje tę ocene z bazy.
cornholio666
To by bylo chyba tak

  1. <?php
  2. if(!empty($_POST[$oc_])){
  3. //-------------------------
  4. //  Zapytanie
  5. //-------------------------
  6. $query = "UPDATE oceny SET ocena=$_POST[$oc_] WHERE id=$_POST[$id_]";
  7. $result = mysql_query ($query);
  8. //-------------------------
  9.  }
  10. else{
  11. $query = "DELETE FROM oceny WHERE id=$POST[$id_]";
  12. $result = mysql_query ($query);
  13. }
  14. ?>
aga323
Teraz wyskakuje błąd: "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 '' at line 1"
Podaję cały kod
  1. <?
  2. //Laczenie z baza
  3. include ("connect.php");
  4. //------------------
  5. // Tablica post
  6. //---------------
  7. $ilosc = count($_POST);
  8. $powtorzen = $ilosc /2;
  9. //--------------------
  10.  
  11. //-------------------------
  12. //  Zapytanie
  13. //-------------------------
  14. $query = "SELECT id FROM users";
  15. $result = mysql_query ($query);
  16. //-------------------------
  17. for ($i=$powtorzen; $i>=1; $i--)
  18. {
  19. $oc_ ='oc'.$i;
  20. $id_ ='id'.$i;
  21.  if(!empty($_POST[$oc_])){
  22. //-------------------------
  23. //  Zapytanie
  24. //-------------------------
  25. $query = "UPDATE oceny SET ocena=$_POST[$oc_] WHERE id=$_POST[$id_]";
  26. $result = mysql_query ($query);
  27. //-------------------------
  28.  }
  29. else{
  30. $query = "DELETE FROM oceny WHERE id=$POST[$id_]";
  31. $result = mysql_query ($query);
  32.  
  33. if(!$result){
  34.  
  35. }
  36. }
  37.  
  38. }
  39. header( 'Location: ses.php?co=lista' );
  40. ?>
cornholio666
Juz chyba 3 raz poprawiam ci ten sam błąd:

  1. <?php
  2. $query = "DELETE FROM oceny WHERE id=$_POST[$id_]";
  3. ?>
aga323
Sorry, ja to zawsze jakiś głupi błąd muszę popełnić... Ale dzięki za poprawienie i pomoc bo teraz działa biggrin.gif guitar.gif na prawde jeszcze raz wielkie dzięki 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.