Array to String [Résolu]

cs_Aaron 116 Messages postés lundi 29 juillet 2002Date d'inscription 19 janvier 2009 Dernière intervention - 13 août 2007 à 22:18 - Dernière réponse : cs_Aaron 116 Messages postés lundi 29 juillet 2002Date d'inscription 19 janvier 2009 Dernière intervention
- 15 août 2007 à 14:57
Hello à tous,

J'aimerais savoir s'il est possible d'obtenir un résultat du genre :
$req = "INSERT INTO `$table` (`champ1`, `champ2`, `champ3`...) VALUES (`val1`, `val2`, `val3`)" à partir d'un tableau qui se présenterait sous la forme array('champ1=val1', 'champ2=val2', 'champ3=val3')....

J'ai codé la chose de la manière suivante :

        function DB_Write($user, $table, $val){
            for($i=0; $i<count($val); $i++){
                list($champ, $valeur) = explode('=', $val[$i]);
                $string1 .= '`'.$champ.'`';
                $string2 .= '`'.$valeur.'`';
            }
            $SQL = 'INSERT INTO '.$table.' ('.$string1.') VALUES ('.$string2.')';
            $this->mysql_query($SQL) or die(mysql_error());
        }   

Le prob c'est qu'il ajoute une virgule de trop...

Merci :) !!
Afficher la suite 

10 réponses

Répondre au sujet
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 13 août 2007 à 22:23
+3
Utile
Hello, et bien enlève la virgule de trop avec substr( )
cf php.net
à+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Evangun
cs_Aaron 116 Messages postés lundi 29 juillet 2002Date d'inscription 19 janvier 2009 Dernière intervention - 13 août 2007 à 22:32
0
Utile
Waww j'y avais pas pensé mdr!

Merci :D (*cherchait depuis 1 heure*)
Commenter la réponse de cs_Aaron
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 13 août 2007 à 23:32
0
Utile
Salut

en utilisant implode, tu aurais un meilleur temps de calcul

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Commenter la réponse de coucou747
cs_Aaron 116 Messages postés lundi 29 juillet 2002Date d'inscription 19 janvier 2009 Dernière intervention - 14 août 2007 à 19:30
0
Utile
Pour utiliser implode je devrais avoir deux tableaux, non?

Car je récup' et stock dans deux variables différentes ce qu'il y'a de part et d'autre du "=" avec explode.

Tandis que si j'utilise implode j'aurais : $string = "champ1, val1, champ2, val2, etc..."

Non?
Commenter la réponse de cs_Aaron
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 14 août 2007 à 21:57
0
Utile
oui, il a dû lire trop vite ta question c'est tout
Commenter la réponse de Evangun
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 14 août 2007 à 23:51
0
Utile
Salut

a partir d'un champ :

array('champ1=val1', 'champ2=val2', 'champ3=val3')

c'est pas l'ideal, mais avec array_walk, tu peux obtennir :

array('champ1'=>'val1', 'champ2'=>'val2' ...)
ce qui correspond probablement a qqch de plus approprie pour ce que tu cherches a faire...

ensuite, array_keys, et array_values, suivis d'un implode

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Commenter la réponse de coucou747
cs_Aaron 116 Messages postés lundi 29 juillet 2002Date d'inscription 19 janvier 2009 Dernière intervention - 15 août 2007 à 00:19
0
Utile
Le temps d'éxecution sera aussi long avec toutes ses fonctions, non?

Merci pour vos réponses en tout cas :)
Commenter la réponse de cs_Aaron
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 15 août 2007 à 12:09
0
Utile
Salut

probablement pas... enfin faudrait faire un test...

<hr />une recherche sur exalead vous aurait peut-etre evite de poser cette question

In a dream, I saw me, drop dead...
U were there, U cried...
It was just a dream,
if I die, U won't cry, maybe, U'll be happy
Commenter la réponse de coucou747
Evangun 1982 Messages postés dimanche 20 février 2005Date d'inscription 24 septembre 2012 Dernière intervention - 15 août 2007 à 14:31
0
Utile
Je ne sais pas lequel est le plus rapide, en tout cas à mon avis il faut avoir envie de se prendre la tête pour faire tout ça, et en relisant ton code il te faudra 3 mn avant de te rappeler à quoi ça sert... Après bon si tu programmes le nouveau Google tu chercheras peut-être ce genre d'optimisation... mais sinon je vois pas pourquoi.
Commenter la réponse de Evangun
cs_Aaron 116 Messages postés lundi 29 juillet 2002Date d'inscription 19 janvier 2009 Dernière intervention - 15 août 2007 à 14:57
0
Utile
Certes :))
Commenter la réponse de cs_Aaron

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.