Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Mysql usuwanie.Nie działa
sajborg
post 3.11.2003, 16:54:05
Post #1





Grupa: Zarejestrowani
Postów: 271
Pomógł: 0
Dołączył: 20.08.2003
Skąd: Szczecinek

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


Siemka mam kilka checkbox o nazwie usun[] taraz daje taki kodzik


[php:1:b8235fa313]<?
if($action=="wykonaj"){
if ($act=="usun"){
$ids = join(' AND id=',$_POST['usun']);
$query=mysql_query("DELETE FROM mecze_typer WHERE id='$ids'") or Die("Nie udało się!");


}
}

?>[/php:1:b8235fa313]
Teoretycznie powinno mi usunąć wszystkie wpisy.Ale usuwa tylko jeden chociaz zmienna $ids ma taką postać

20 AND id=21 AND id=22 AND id=23

czyli

[php:1:b8235fa313]<?

$query=mysql_query("DELETE FROM mecze_typer WHERE id=20 AND id 21 AND id=22 AND id=23") or Die("Nie udało się!");

?>[/php:1:b8235fa313]

ALE NIE DZIAŁA DLACZEGO questionmark.gif


--------------------
Warsztat: gPHPEdit | Linux 2.6.17-11-generic (Ubuntu)
Sprzęt: Noteook BenQ A33E
___________________________________________________
Go to the top of the page
+Quote Post
rzseattle
post 3.11.2003, 17:02:47
Post #2





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


jak dla mnie to pytanie wyglada inaczej:

... where id='10 and id=30'


Daj printa to sam zobaczysz ze $ids masz w cudzyslowach,a stringa '10 and id=30' pewnie nie masz w bazie winksmiley.jpg


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
sajborg
post 3.11.2003, 17:10:10
Post #3





Grupa: Zarejestrowani
Postów: 271
Pomógł: 0
Dołączył: 20.08.2003
Skąd: Szczecinek

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


No własnie nie ma w ' ' jest samo 20 AND ....


--------------------
Warsztat: gPHPEdit | Linux 2.6.17-11-generic (Ubuntu)
Sprzęt: Noteook BenQ A33E
___________________________________________________
Go to the top of the page
+Quote Post
rzseattle
post 3.11.2003, 17:13:31
Post #4





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
No własnie nie ma w ' '  jest samo 20 AND ....


a mozna jasniej questionmark.gif

bo tobie chyba chodzilo o zapytanie

Kod
DELETE FROM mecze_typer WHERE id=$ids


pozatym zamiast AND chyba OR powinien byc


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
sajborg
post 3.11.2003, 17:19:41
Post #5





Grupa: Zarejestrowani
Postów: 271
Pomógł: 0
Dołączył: 20.08.2003
Skąd: Szczecinek

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


OR=albo
AND= i

a ja chcem zeby usuneło id=22 i id=23


--------------------
Warsztat: gPHPEdit | Linux 2.6.17-11-generic (Ubuntu)
Sprzęt: Noteook BenQ A33E
___________________________________________________
Go to the top of the page
+Quote Post
rzseattle
post 3.11.2003, 17:21:56
Post #6





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
OR=albo
AND= i

a ja chcem zeby usuneło id=22 i id=23


OR=lub

usun wiersze gdzie id ma wartosc 10 lub 20 lub 30 :wink:


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
KaMeLeOn
post 3.11.2003, 17:34:09
Post #7





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


W tym wypadku musisz użyć AND...
Wykonaj zapytanie na surowo i sprawdź czy działa, czyli:
[php:1:d13bd02d06]<?php
$link = mysql_connect('...');
$query=mysql_query('DELETE FROM mecze_typer WHERE id=20 AND id=21 AND id=22 AND id=23', $link) or Die("Nie udało się!");
?>[/php:1:d13bd02d06]
PS. Sprawdź też czy masz rekordy o podanych ID.


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
rzseattle
post 3.11.2003, 18:13:34
Post #8





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
W tym wypadku musisz użyć AND


a czemu akurat trza AND?

[sql:1:0a4148811d]DELETE FROM `uzytkownicy` WHERE id = 1 OR id = 10[/sql:1:0a4148811d]

Cytat
Skasowane rekordy: 2 (Wykonanie zapytania trwało 0.0226 sekund(y))


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
FiDO
post 3.11.2003, 18:15:52
Post #9





Grupa: Przyjaciele php.pl
Postów: 1 717
Pomógł: 0
Dołączył: 12.06.2002
Skąd: Wolsztyn..... Studia: Zielona Góra

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


Alternatywne rozwiazanie:
[sql:1:522b151f26]DELETE FROM tabela WHERE id IN (21,22,23);[/sql:1:522b151f26]
Go to the top of the page
+Quote Post
PMadej
post 3.11.2003, 18:21:13
Post #10


Vice-Administrator serwera


Grupa: Przyjaciele php.pl
Postów: 395
Pomógł: 0
Dołączył: 7.08.2003
Skąd: Kielce

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


Cytat
W tym wypadku musisz użyć AND...

Przy czymś takim masz błąd logiczny ... usuń costam gdzie id=10 i id=20
przecież dla danego rekordu możesz mieć tylko jedną wartość id więc musi być zastosowane OR czyli LUB


--------------------
Go to the top of the page
+Quote Post
rzseattle
post 3.11.2003, 18:25:50
Post #11





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
Cytat
W tym wypadku musisz użyć AND...

Przy czymś takim masz błąd logiczny ... usuń costam gdzie id=10 i id=20
przecież dla danego rekordu możesz mieć tylko jedną wartość id więc musi być zastosowane OR czyli LUB


ano wlasnie smile.gif


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
KaMeLeOn
post 4.11.2003, 00:20:45
Post #12





Grupa: Zarejestrowani
Postów: 680
Pomógł: 0
Dołączył: 1.10.2002
Skąd: Wrocław

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


Cytat
Przy czymś takim masz błąd logiczny ... usuń costam gdzie id=10 i id=20  
przecież dla danego rekordu możesz mieć tylko jedną wartość id więc musi być zastosowane OR czyli LUB

Nic nie musi... może być.
Cytat
Siemka mam kilka checkbox o nazwie usun[] [...]

Rozumiem, że checkboxy są generowane na podstawie danych z bazy, więc nie będzie "błędu logicznego"...


--------------------
"Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
Go to the top of the page
+Quote Post
rzseattle
post 4.11.2003, 11:55:42
Post #13





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
Rozumiem, że checkboxy są generowane na podstawie danych z bazy, więc nie będzie "błędu logicznego"...


hmm az sprawdzilem,
AND poprostu nie dziala jesli dasz ...id=2 AND id=3 to poprostu nie skasuje zadnego (zamiast skasowac dwoch), natomiast OR dziala bez problemu i kasuje 2 rekordy

pozatym co do tego ma generowanie checkboksow z bazy do wyrazenia logicznego??


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
Go to the top of the page
+Quote Post
wiesio
post 6.11.2003, 21:03:23
Post #14





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 6.11.2003

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


nie mozeszz skasowac wielu rekordow naraz
musisz uzyc foreach ktora pojedzie po tablicy i skasuje po kolei
[/b]
Go to the top of the page
+Quote Post
rzseattle
post 6.11.2003, 21:05:39
Post #15





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
nie mozeszz skasowac wielu rekordow naraz
musisz uzyc foreach ktora pojedzie po tablicy i skasuje po kolei

A to niby czemu questionmark.gif


--------------------
"Real children don't go hoppity-skip unless they are on drugs."
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.07.2025 - 15:55