Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Kasowanie rokordów
krzesik
post 30.01.2013, 13:09:46
Post #1





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


Witam, mam tabelkę w której jest checkbox gdzie po zaznaczeniu danego rekordu, i po zapisie powinien zostać on skasowany. Samo kasowanie działa ale kasuje mi zawsze pierwszą pozycję, prosze o poradę gdzie mam babola.

  1. .....
  2. $x = 0;
  3. foreach($nazwa_zw as $x => $y)
  4. {
  5. while(isset($kasuj[$x]))
  6. {
  7. mysql_query("DELETE FROM sprzedaz_srodek WHERE id_dok_srodek='$id_dok_srodek[$x]'") or die('Błąd zapytania: '.mysql_error());
  8. $x++;
  9. }
  10. }
  11.  
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
abort
post 30.01.2013, 13:31:15
Post #2





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

Ostrzeżenie: (0%)
-----


Nie używa się zmiennych ($cośtam) wewnątrz pojedynczych apostrofów.
Możesz rozważyć tzw. backticks (`) lub poprzedzić apostrof znakiem backslasha (\).

A na przyszłość warto debugować, choćby tak:
Kod
$sql = "DELETE FROM sprzedaz [...]";
echo $sql;   // dla debugu => co zawiera zapytanie
mysql_query ($sql) or die('Błąd zapytania: ' . $sql . ", error: " . mysql_error());;

Gdybyś sobie to zrobił w ten sposób, sam byś szybko doszedł co zrobiłeś niepoprawnie.


Ten post edytował abort 30.01.2013, 13:34:45
Go to the top of the page
+Quote Post
krzesik
post 30.01.2013, 14:01:28
Post #3





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


Zrobiłem wg Twojej rady, teraz widzę co jest pobierane do zapytania, jednak zawsze pobiera mi pierwszy rekord, choć checkiem mam zaznaczony inny
może coś tutaj jest nie tak, fragment tabelki

  1. .....
  2. echo '<td><input type="checkbox" name="kasuj[]" /></td>';
  3. echo '<td><input type="text" name="id_dok_srodek[]" value='.$r[id_dok_srodek].' /></td>';
  4. .....
Go to the top of the page
+Quote Post
Sephirus
post 30.01.2013, 14:16:13
Post #4





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Coś tu masz pomieszane na maksa...

Jak to powinno wyglądać:

Form:

  1. <?php while($record = mysql_fetch_array($resource)): ?>
  2. ...
  3. <td><input type="checkbox" name="do_kasowania[]" value="<?php echo $record['id_dok_srodek'];?>"/></td>
  4. ...
  5.  
  6. <?php endwhile;?>


Kasowanie w PHP:

  1. mysql_query("DELETE FROM sprzedaz_srodek WHERE id_dok_srodek IN(" . implode(',',$_POST['do_kasowania']) . ")");



--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
krzesik
post 30.01.2013, 14:27:21
Post #5





Grupa: Zarejestrowani
Postów: 516
Pomógł: 1
Dołączył: 25.08.2012

Ostrzeżenie: (0%)
-----


Dziękuje działa jak należy!
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:13