/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Syntax - mysql
Fra : Torben


Dato : 20-12-05 13:49

Hej vise mænd

hvad gør jeg forkert

$query = "DELETE FROM
bs_customer_varenr
WHERE
customer_ID = '".$_REQUEST['customer_ID']."'
AND
varenr_ID IN (SELECT varenr_ID FROM bs_varenr WHERE prodfil_ID
= '".$_REQUEST['prodfil_ID']."')";
$result = mysql_query($query) or die("Error: " . mysql_error());

Jeg er godt klar over at det muligvis er subselect der ikke understøttes,
men hvad gør jeg så ellers?

Version mysql er 3.23.49

//Torben



 
 
Peter Brodersen (20-12-2005)
Kommentar
Fra : Peter Brodersen


Dato : 20-12-05 14:03

On Tue, 20 Dec 2005 13:48:52 +0100, "Torben" <ichouse@mail.dk> wrote:

>Jeg er godt klar over at det muligvis er subselect der ikke understøttes,
>men hvad gør jeg så ellers?
>
>Version mysql er 3.23.49

Det er subselect (eller DELETE over flere tabeller), der ikke
understøttes. Hvis du kan opgradere til 4.0, kan du lave en DELETE hen
over flere tabeller, og hvis du kan opgradere til 4.1, kan du benytte
dig af subselect-metoden.

Du bliver nødt til at dele forespørgslen op i to, hvor du i første
omgang udfører din select, får alle dine værdier ud, og derefter
bruger dem i applikationen til at sammensætte din delete-forespørgsel.

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

Torben (20-12-2005)
Kommentar
Fra : Torben


Dato : 20-12-05 14:16

Takker

Det kan jeg forstå. Det bliver bare en ret 'dyr' kørsel så. En SELECT og
rigtigt mange DELETE... Jeg klør på.

//Torben

"Peter Brodersen" <usenet2005@ter.dk> skrev i en meddelelse
news:do8vf4$h0i$1@news.klen.dk...
> On Tue, 20 Dec 2005 13:48:52 +0100, "Torben" <ichouse@mail.dk> wrote:
>
>>Jeg er godt klar over at det muligvis er subselect der ikke understøttes,
>>men hvad gør jeg så ellers?
>>
>>Version mysql er 3.23.49
>
> Det er subselect (eller DELETE over flere tabeller), der ikke
> understøttes. Hvis du kan opgradere til 4.0, kan du lave en DELETE hen
> over flere tabeller, og hvis du kan opgradere til 4.1, kan du benytte
> dig af subselect-metoden.
>
> Du bliver nødt til at dele forespørgslen op i to, hvor du i første
> omgang udfører din select, får alle dine værdier ud, og derefter
> bruger dem i applikationen til at sammensætte din delete-forespørgsel.
>
> --
> - Peter Brodersen
> Find dig selv: http://map.ter.dk/



Peter Brodersen (20-12-2005)
Kommentar
Fra : Peter Brodersen


Dato : 20-12-05 14:18

On Tue, 20 Dec 2005 14:16:13 +0100, "Torben" <ichouse@mail.dk> wrote:

>Det kan jeg forstå. Det bliver bare en ret 'dyr' kørsel så. En SELECT og
>rigtigt mange DELETE... Jeg klør på.

Nej, den behøver ikke at være dyr. Du kan jo stadigvæk blot lave én
DELETE med fx:

DELETE FROM bs_customer_varenr WHERE customer_ID =
'".$_REQUEST['customer_ID']."' AND varenr_ID IN (1,5,10,23,29,50,...)

... hvor (1,5,10,23,29,50,...) er sammensat af det tidligere resultat.

Hvis du laver et array med alle værdierne fra dit select, kan du fx
bruge php-funktionen implode() til at sammensætte dem alle til én
streng, adskilt af komma.

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste