[PHP/MySQL] Arrays in database stoppen met for loop

Pagina: 1
Acties:
  • 33 views sinds 30-01-2008

  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 16-05 11:00
Hallo,
Ik heb een probleem met het aanmaken van projectgroepen. Ik ben ondertussen bezig met het ontwikkelen van een intranet maar nu kwam de vraag of gebruikers ook in verschillende groepen gestopt kunnen worden.

Dus nu ben ik bezig met het maken hiervan, alleen ik heb 1 probleem.

code:
1
Array ( [0] => 42 [1] => 42 [2] => 42 [3] => 42 [4] => 42 )


De Array is gevuld, maar nu krijg ik het niet voor elkaar om deze 5 dingen in 5 verschillende rijen in een tabel te stoppen.
PHP:
1
2
3
4
5
foreach ($user as $key => $value) { 
     $user = $value[$key];  
     $result = mysql_query("INSERT INTO project_leden (id, pid, uid, recht) VALUES ('', '$id', '$user', '')");
    //$i++;
}


Deze code heb ik nu maar hij vult alleen maar de 1ste rij, de rest geeft overal 0 weer.

Iemand die me opweg kan helpen?

edit:

Het gaat om de var $user

[ Voor 9% gewijzigd door RMX op 24-01-2005 15:06 ]


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

1. debuggen: echo je waarden eens voor je zut naar de database gaat schrijven
2. stel eerst een insert samen, je kunt namelijk meerdere inserts in een enkele query verwerken. Scheelt je een hoop I/O.

  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 16-05 11:00
Het probleem is dat er van te voren een aantal op gegeven word, dus het moet met een for opgelost worden.

Het andere probleem is dat ik tegen een deadline aanloop en ik deze middag al veel tijd heb besteed in het doorzoeken van dit forum.

Ik kwam aardig wat oplossingen tegen maar het probleem is dat ik niet verder kom
Hij insert maar 1 entry goed, de rest blijft op 0 staan terwijl alles 42 moet zijn.

Misschien iemand die ff snel me op de goeie weg helpt?

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

1. debuggen: echo je waarden eens voor je zut naar de database gaat schrijven
2. stel eerst een insert samen, je kunt namelijk meerdere inserts in een enkele query verwerken. Scheelt je een hoop I/O.

3. lees tenminste de replies die je krijgt...

Welke query's ben je aan het uitvoeren? Oftewel: wat komt er uit je loop?

Verder zie ik een 1-dimensionale array en in je foreach doe je toch $value[$user] alsof je een multi-dimensional array aan het loopen bent..

[ Voor 44% gewijzigd door Bosmonster op 24-01-2005 15:25 ]


  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 16-05 11:00
Bij reply was een reply op de jouwe, dus punt 3 komt te vervallen.

Want jij zegt je kunt meerdere queries uitvoeren in 1 query, maar dat wil ik helemaal niet.

En met je array's... tsjaah da's het probleem nou juist.

Is er echt niemand die me op de goeie weg wil helpen behalve een paar vage regels ? :+

Verwijderd

Als ik de reacties onder topic start lees heb ik geeneens zin om meer moeite te doen. Ik snap ook niet wat die $user = $value[$key]; voor nut heeft... Al helemaal niet handig dat je in een foreach() loop de variabele $user een nieuwe waarde geeft.

Maar ik zou de boel sowieso als volgt veranderen (de array definiëren als $users ipv $user). Sowieso... waar definieer je de variabele $id eigenlijk?
PHP:
1
2
3
4
foreach ($users as $key => $value) { 
     $user = $users[$key]; // vrij nutteloos, aangezien deze dezelfde waarde zal hebben als $value
     $result = mysql_query("INSERT INTO project_leden (id, pid, uid, recht) VALUES ('', '". $id ."', '". $user ."', '')");
}

Of beter:
PHP:
1
2
3
4
5
6
foreach ($users as $key => $user) {
     // Zo kan je makkelijker je SQL query debuggen, d.m.v. $sql te echo-en bijv
    $sql = "INSERT INTO project_leden (id, pid, uid, recht) ".
           "VALUES ('', '". $id ."', '". $user ."', '')";
    $result = mysql_query($sql);
}

[ Voor 33% gewijzigd door Verwijderd op 24-01-2005 15:47 ]


  • RMX
  • Registratie: Augustus 2000
  • Laatst online: 16-05 11:00
Ok, ik ben je hartelijk dankbaar dat jij de moeite hebt genomen mij wel IETS uit te leggen ipv de standaard reply's....

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 17:45

gorgi_19

Kruimeltjes zijn weer op :9

RMX schreef op maandag 24 januari 2005 @ 15:22:
Misschien iemand die ff snel me op de goeie weg helpt?
Als je snel een oplossing wilt, dan zit je in Programming & Webscripting op het verkeerde pad :) Wil je snel een oplossing, dan huur je iemand in; in Programming & Webscripting verwachten we zelfwerkzaamheid van mensen en krijg je hooguit een schop in de goede richting.

Verwacht je kant en klare antwoorden c.q. een complete, op maat gemaakte uitleg, dan zit je fout :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:05

Creepy

Tactical Espionage Splatterer

RMX schreef op maandag 24 januari 2005 @ 15:59:
Ok, ik ben je hartelijk dankbaar dat jij de moeite hebt genomen mij wel IETS uit te leggen ipv de standaard reply's....
De reply van BosMonster was overigens ook geheel terecht. Zoiets triviaals als dit had je met enige moeite echt wel zelf kunnen oplossen. Het is hier geen MacDonalds waar je ff snel een kant en klare oplossing kan halen. Zie ook P&W FAQ - De "quickstart" voor wat we eigenlijk verwachten van een topicstart. En P&W FAQ - Leer **** debuggen!! zodat je eerst gaat debuggen voordat je een topic hier opent

gorgi_19: :w (dat is de tweede keer al vandaag ;) )

[ Voor 14% gewijzigd door Creepy op 24-01-2005 16:04 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.