Array to String

Résolu
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 13 août 2007 à 22:18
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009 - 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 :) !!

10 réponses

Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
13 août 2007 à 22:23
Hello, et bien enlève la virgule de trop avec substr( )
cf php.net
à+
3
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
13 août 2007 à 22:32
Waww j'y avais pas pensé mdr!

Merci :D (*cherchait depuis 1 heure*)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
13 août 2007 à 23:32
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
0
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
14 août 2007 à 19:30
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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
14 août 2007 à 21:57
oui, il a dû lire trop vite ta question c'est tout
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 août 2007 à 23:51
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
0
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
15 août 2007 à 00:19
Le temps d'éxecution sera aussi long avec toutes ses fonctions, non?

Merci pour vos réponses en tout cas :)
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
15 août 2007 à 12:09
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
0
Evangun Messages postés 1980 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 24 septembre 2012 4
15 août 2007 à 14:31
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.
0
cs_Aaron Messages postés 116 Date d'inscription lundi 29 juillet 2002 Statut Membre Dernière intervention 19 janvier 2009
15 août 2007 à 14:57
Certes :))
0
Rejoignez-nous