12. februar 2007 - 09:55
Der er
8 kommentarer
Bruge et array til at lave en insert
Hejsa Jeg bruger 2 array's til at generere mine insert/updates. Eksempel ses nedenfor. Problemet er, at selvom jeg specificerer nogle af værdierne som strenge, bliver de lavet om til IKKE-strenge i selve inserten. Og så får jeg selvfølgelig en fejl. Nogle ideer til at komme videre. $IIM_FIELD[$i] = IPROD; $IIM_VALUE[$i] = array($HTTP_POST_VARS[IPROD],'','',''); $i = $i + 1; $IIM_FIELD[$i] = IDESC; $IIM_VALUE[$i] = array($HTTP_POST_VARS[IDESC],'','',''); $i = $i + 1; $IIM_FIELD[$i] = IDSCE; $IIM_VALUE[$i] = array($HTTP_POST_VARS[IDSCE],'','',''); $i = $i + 1; $IIM_FIELD[$i] = SAFLG; $IIM_VALUE[$i] = array(1,1,1,); $i = $i + 1; $IIM_FIELD[$i] = IITYP; $IIM_VALUE[$i] = array($HTTP_POST_VARS[IITYP],6,6,6); SQL: UPDATE TABEL SET IPROD=Array,IDESC=beskrivelse,IDSCE=UGE 01-16 ,SAFLG=1,IITYP=1 PS. Der er ca 100 felter!!!
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
12. februar 2007 - 11:09
#1
$HTTP_POST_VARS har været deprecated siden PHP 4.1, så med mindre du benytter en PHP version ældre end den, så brug $_POST i stedet. Personligt ville jeg foretrække at gøre således: $felter['IPROD'] = $_POST['IPROD']; $felter['IDESC'] = $_POST['IDESC']; $felter['IDSCE'] = $_POST['IDSCE']; osv. $tmp = array(); foreach ($felter as $felt => $value) { $tmp[] = "$felt = '$value'"; } "UPDATE tabel SET ".implode(',', $tmp); Skulle give noget alla: UPDATE tabel SET IPROD = 'værdi fra IPROD',IDESC = 'noget IDESC',IDSCE='blåbær'
12. februar 2007 - 11:32
#2
mon ikke der mangler en where clause i den sql sætning.
12. februar 2007 - 11:41
#3
hmmm, jo men where-delen har jeg styr på :-) Det der er udfordringen, er at nogle værdier er strenge, andre tal! Det kan jeg ikke lige se ud af fixxxer's løsning, hvordan det løses!
12. februar 2007 - 12:31
#4
UPDATE tabel SET IPROD = 'værdi fra IPROD',IDESC = '45233',IDSCE='blåbær' er lige så tilladt som UPDATE tabel SET IPROD = 'værdi fra IPROD',IDESC = 45233,IDSCE='blåbær' hvis det er det, der giver anledning til problemer?
13. februar 2007 - 06:48
#5
Også selvom feltet IDESC er angivet som integer i databasen?
13. februar 2007 - 07:57
#6
Ja
13. februar 2007 - 08:27
#7
Du kan jo også foreach ($felter as $felt => $value) { $save_as = (is_numeric($value) ? $value : "'". $value ."'"); $tmp[] = $felt ."=". $save_as; }
Vi tilbyder markedets bedste kurser inden for webudvikling