2017-01-18 2 views
2
$mengetotzut = 7','8','9','22','23','24','25 ; 
$zutatiddd = 42','75','8','90','23','82','33 ; 
$sql5= "UPDATE zutaten SET Menge=('$mengetotzut') WHERE Zutat_ID IN('$zutatiddd')"; 
$run_query = mysqli_query($con,$sql5); 

같이 찾고 : 내가 뭘하려고 오전하는 것입니다PHP, MySQL의 업데이트 여러 열 SQL 문으로

UPDATE zutaten SET Menge=('42','75','8','90','23','82','33') WHERE Zutat_ID IN('7','8','9','22','23','24','25') 

것은 :

Update Menge='42' Where Zutat_ID is '7' AND Update Menge ='75' Where Zutat_ID = '8' ... 

그러나 하나의 SQL 문에서

. 누군가 가능하며 가능하면 어떻게 할 수 있습니까?

+0

왜 foreach 및 루프를 사용하지 마십시오 – coder

+0

@coder 어떻게이 작업을 수행 할 수 있습니까? –

+1

하나의 쿼리에서 여러 업데이트를 수행 할 수 없습니다. "중복 된 키 업데이트"절을 사용하여 여러 번 삽입하면 원하는 작업을 수행 할 수 있습니다. 당신은 이것을 다음에서 찾을 수 있습니다 : http://stackoverflow.com/questions/3432/multiple-updates-in-mysql – SBO

답변

0

두 배열은 같은 수를 가지고 있음을 고려할 때, 당신은 한 가지로 UPDATE에 다음과 같은 SQL 쿼리를 사용할 수 있습니다

$count = 7; 

for ($i=0; $i<$count; $i++) { 
    $sql5= "UPDATE zutaten SET Menge=$mengetotzut[$i] WHERE Zutat_ID = $zutatiddd[$i]"; 
    $run_query = mysqli_query($con,$sql5); 
} 
+0

이 많이 들으은 –

+0

을 @andyd 및 편집 @lorem의 minkey –

0

사용 foreach 루프

foreach($mengetotzut as $index => $code) { 
$sql5= "UPDATE zutaten SET Menge=('$code') WHERE Zutat_ID = $zutatiddd[$index]; 
$run_query = mysqli_query($con,$sql5); 
} 
+0

$ code) { $ sql5 = "UPDATE SET Menge = ('$ 코드') WHERE Zutat_ID = $ zutatiddd [$ index]; $에서 사용합니다. run_query = mysqli_query ($ 콘, $ sql5);?. }> 그는 오류로 저를 보여 –

0

다음을 시도해보십시오

UPDATE zutaten AS t1 
JOIN (
    SELECT 7 AS Zutat_ID, 42 AS Menge 
    UNION ALL 
    SELECT 8, 75 
    UNION ALL 
    SELECT 9, 8 
) t2 ON t1.Zutat_ID = t2.Zutat_ID 
SET t1.Menge = t2.Menge 
+0

에 대한 문제가 수 있기 때문에이를 변경할 수 있다는 것입니다 도움이 내 코드에서 나는 더 많은 SQL 문을 가지고 있으며 숫자는 왜 내가 변수로부터 그것을 할 것인가를 바꿀 수있다. –

0

이후 내용은입니다.의 경우 쿼리는 다음과 같습니다.

UPDATE zutaten SET Menge = CASE Zutat_ID 
    WHEN 42 THEN 7 
    WHEN 75 THEN 8 
    WHEN 8 THEN 9 
    WHEN ... 
END WHERE Zutat_ID IN (42,75,8,...) 
+0

문제는 숫자가이 코드를 변경할 수 있기 때문이다. 더 많은 SQL 문과 숫자로 인해 내가 원하는 이유를 바꿀 수있다. 변수 –

+0

@ CristianCănănău에서 그렇게하려면 dy로 작성하십시오. 변수를 사용합니다. 'WHEN THEN' 부분을 출력하는 for 루프를 추가하는 것은 어렵지 않습니다. – Styphon

+0

나를 코드로 보여줄 수 있습니까? 내 변수 $ mengetotzut = 7 ','8 ','9 ','22 ','23 ','24 ','25; ---- 이렇게 보입니다. $ zutatiddd = 42 ','75 ','8 ','90 ','23 ','82 ','33; ----이처럼 보이네. –