array in 1 query in db

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ron -

Ron -

17/09/2008 10:02:00
Quote Anchor link
ik heb een array:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
Array
(
    [
15] => 0
    [11] => 0
    [12] => 7
    [13] => 0
    [14] => 0
)
?>

de keys zijn de ids van de gebruikers, de waarde is de nieuwe waarde van een bepaald veld in de database (ik weet welk veld dit is)

hoe kan ik dit in 1 query in de database updaten?
dus voor elk id, de oude waarde vervangen door de nieuwe

ik weet dat dit met een foreach loop kan, maar dan heb je, naar mijn idee, onnodig veel query's

iemand een idee?

alvast bedankt
 
PHP hulp

PHP hulp

16/05/2024 11:56:47
 
RvW Of toch niet

RvW Of toch niet

17/09/2008 10:04:00
Quote Anchor link
je hebt dan maar 1 qeury hoor in een 1 for each.
maar de ene qeury voor je meerdere keren uit.
 
Ron -

Ron -

17/09/2008 10:10:00
Quote Anchor link
ja dat bedoel, hij geeft dan toch steeds een nieuwe opdracht aan de db? lijkt me onnodig dataverkeer
 
Jacco Engel

Jacco Engel

17/09/2008 10:32:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$query
= "INSERT INTO table ";
foreach($array as $waarde)
{

    $query .= "(".$waarde.")," ;
}


$query = substr($query,0,-1) ;
?>


En dan gewoon de rest van je query procedure

Zie ook :
http://en.wikipedia.org/wiki/Insert_(SQL)#Multirow_inserts
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
 
RvW Of toch niet

RvW Of toch niet

17/09/2008 10:35:00
Quote Anchor link
jah dan heb je dus en for each... en dat nou percies volgens mij iets dat hij niet wil ?
 
Jacco Engel

Jacco Engel

17/09/2008 10:36:00
Quote Anchor link
Je leest niet goed,

Wat hij neit wil is meerdere query's uitvoeren DMV foreach.

Wat ik doe is een query opbouwen DMV foreach en dan hoe je maar 1 query uit te voeren
 
RvW Of toch niet

RvW Of toch niet

17/09/2008 10:43:00
Quote Anchor link
ow okee zow je mischien een heel klein beetje meer uitleg kunnen geven over je code ik begrijp hem namelijk niet hellemaal dan denk :$
 

17/09/2008 10:49:00
Quote Anchor link
rvw schreef op 17.09.2008 10:43:
ow okee zow je mischien een heel klein beetje meer uitleg kunnen geven over je code ik begrijp hem namelijk niet hellemaal dan denk :$

Dat staat op die http://en.wikipedia.org/wiki/Insert_%28SQL%29%23Multirow_inserts link die hij geeft..
Jacco schreef op 17.09.2008 10:32:
Zie ook :
http://en.wikipedia.org/wiki/Insert_(SQL)#Multirow_inserts
 
RvW Of toch niet

RvW Of toch niet

17/09/2008 10:59:00
Quote Anchor link
sorry beetje kippig.
 
Ron -

Ron -

18/09/2008 15:26:00
Quote Anchor link
Jacco schreef op 17.09.2008 10:32:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$query
= "INSERT INTO table ";
foreach($array as $waarde)
{

    $query .= "(".$waarde.")," ;
}


$query = substr($query,0,-1) ;
?>


En dan gewoon de rest van je query procedure

Zie ook :
http://en.wikipedia.org/wiki/Insert_(SQL)#Multirow_inserts


dit had ik ook al bedacht :)
maar dit is niet wat ik wil, het zijn namelijk allemaal verschillende rijen, en er moet bij: WHERE id = $key
($key = key van de waarde in de array)
ik weet niet of je dit voor elke rij apart in een query kunt zetten, dit ga ik nu es proberen
 
Eddy E

Eddy E

18/09/2008 15:34:00
Quote Anchor link
Mensen mensen mensen.
Kijk naar implode()!!!!

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php $query = "INSERT INTO table (" . implode($array, "), (") . ")"; ?>




Wat ik alleen niet snap... je wil inserten in verschillende rijen?
WHERE bij een INSERT?
Je wilt dus gaan UPDATEn ipv INSERTen?
 
Ron -

Ron -

18/09/2008 15:39:00
Quote Anchor link
updaten ja, zei ik ook in mijn eerste post

wat jij zegt, is hetzelfde, maar idd veel mooier en sneller dan hierboven al werd genoemt

maar nu doet hij het dus nog steeds niet in de goede rij, de waarde moet geupdate worden bij het goede id

dit heb ik nu, wat zoals ik al dacht, niet werkt
ik begin ook te twijfelen of het wel mogelijk is wat ik wil

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$query
= "UPDATE members ";
        
foreach ($_POST['level'] as $userid => $level)
{
    
       $query .= "SET `level` = ".$level." WHERE `id` = ".$userid.",";
}

$query = substr($query,0,-1) ;
?>
Gewijzigd op 01/01/1970 01:00:00 door Ron -
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.