Page 1 sur 2

$variable avec plusieurs Valeurs?

Posté : 31 août 2006, 15:20
par dunbar
Bonjour,

Je voudrais savoir si ceci est valable :?:
$commentaire = mysql_real_escape_string ($_POST['com'][1][2][3]);
Ou si je suis obliger de faire ceci :?:
$commentaire = mysql_real_escape_string ($_POST['com'][1]);
$commentaire = mysql_real_escape_string ($_POST['com'][2]);
$commentaire = mysql_real_escape_string ($_POST['com'][3]);
D'avance merci

Posté : 31 août 2006, 15:54
par ouckileou
$_POST['com'][1][2][3]
Ceci représente une cellule de tableau à 3 dimensions, et pas la cellule 1, puis 2, puis 3

Donc si tu veux appliquer la fonction à chaque cellule de ton tableau, tu dois effectivement le faire une par une (via une boucle a priori)

Ou alors utiliser une fonction comme array_map() , qui appliquera ta fonction à chaque élément du tableau

Posté : 31 août 2006, 16:00
par dunbar
$_POST['com'][1][2][3]
Ceci représente une cellule de tableau à 3 dimensions, et pas la cellule 1, puis 2, puis 3

Donc si tu veux appliquer la fonction à chaque cellule de ton tableau, tu dois effectivement le faire une par une (via une boucle a priori)

Ou alors utiliser une fonction comme array_map() , qui appliquera ta fonction à chaque élément du tableau
Ok et merci :wink:

Posté : 31 août 2006, 17:21
par dunbar
Salut,

Donc avec le fonction "array_map()
Cela donnerais (si j'ai compris :idea: ) ceci :?:
$commentaire = array_map ('mysql_real_escape_string', $_POST['com'],1,2,3,4,5,6);
J'ai compris :?: :?:

Merci :wink:

Posté : 01 sept. 2006, 11:15
par dunbar
Salut,

Donc avec le fonction "array_map()
Cela donnerais (si j'ai compris :idea: ) ceci :?:
$commentaire = array_map ('mysql_real_escape_string', $_POST['com'],1,2,3,4,5,6);
J'ai compris :?: :?:

Merci :wink:
La syntax et la méthode sont t'elle correct :?:

Merci :?:

Posté : 01 sept. 2006, 11:21
par ouckileou
Je comprends jamais les gens qui posent ici ce genre de question : niveau syntaxe, on teste d'abord et on voit si c'est bon. Et si c'est pas bon, là tu viens demander de l'aide si besoin.
PHP sera toujours mieux placé que n'importe qui pour te dire si ton code fonctionne ou non. :roll:

Par contre je crois que t'as pas compris le principe des tableaux :
C'est censé représenter quoi ça ? :shock:
$_POST['com'],1,2,3,4,5,6
Rappel :
$tableau = Array('cellule 0', 'cellule 1'); 
$tableau; // ceci représente le tableau en entier
$tableau[0]; // ceci représente une cellule (la première)
$tableau[1]; // // ceci représente une cellule (la deuxième)
Regarde dans la doc le type du deuxième paramètre et l'exemple qui est donné

Posté : 01 sept. 2006, 12:12
par dunbar
Je comprends jamais les gens qui posent ici ce genre de question : niveau syntaxe, on teste d'abord et on voit si c'est bon. Et si c'est pas bon, là tu viens demander de l'aide si besoin.
PHP sera toujours mieux placé que n'importe qui pour te dire si ton code fonctionne ou non. :roll:

Par contre je crois que t'as pas compris le principe des tableaux :
C'est censé représenter quoi ça ? :shock:
$_POST['com'],1,2,3,4,5,6
Rappel :



$tableau = Array('cellule 0', 'cellule 1'); 
$tableau; // ceci représente le tableau en entier
$tableau[0]; // ceci représente une cellule (la première)
$tableau[1]; // // ceci représente une cellule (la deuxième)
Regarde dans la doc le type du deuxième paramètre et l'exemple qui est donné
La question était plus de savoir si je partais dans le bonne direction :wink:
Ceci suite à ton lien je travail dans cete direction et évidament j'ai une erreur.
function commentaire($a, $b) {
   return array($a => $b);
  }

  $a = array(1, 2, 3, 4, 5, 6);
  $b = array_map($_POST['com']);
  $c = array_map($a, $b);
  print_r($c);
Et la déclaration de la variable
$commentaire = mysql_real_escape_string ($c);
:wink:

Posté : 01 sept. 2006, 12:19
par Ryle
Tu as l'air de beaucoup tenir à ton array_map(), mais as-tu regardé la doc pour savoir à quoi il servait et comment l'utiliser ?

Il attend un nom de fonction et un tableau en paramètre, ce qui n'a pas grand chose à voir avec ce que tu lui passes :)

Posté : 01 sept. 2006, 13:08
par ouckileou
Je suis d'accord avec Ryle, regarde mieux le principe d'array_map()

Tu avais un tableau $_POST contenant des commentaires. Tu voulais appliquer à chacun de ces commentaires (chaque cellule en fait) la fonction mysql_real_escape_string().

array_map() appliquera cette fonction donc à chaque cellule du tableau. Tu n'as pas besoin d'utiliser une fonction en plus ni des variables $a, $b, ou $truc.

Posté : 01 sept. 2006, 15:15
par dunbar
Je suis d'accord avec Ryle, regarde mieux le principe d'array_map()

Tu avais un tableau $_POST contenant des commentaires. Tu voulais appliquer à chacun de ces commentaires (chaque cellule en fait) la fonction mysql_real_escape_string().

array_map() appliquera cette fonction donc à chaque cellule du tableau. Tu n'as pas besoin d'utiliser une fonction en plus ni des variables $a, $b, ou $truc.
Oui j'étudie,
alors le résultat j'arrive à ceci.
$commentaire = array_map( 'mysql_real_escape_string', $_POST['com']);
Mon soucis es tdans dans ma table il m'indique Array et non pas le commentaire :?: et pourquoi qu'il me pourrie la vie :wink: non blague à part quelle est mon erreur :?: (enfin pas le code hein :wink: plutôt une direction :roll: )

Parce ce que non somme bien d'accord ? Ma variable $commentaire = array_map ----- les $_POST['com'] j'ai quand même bien compris le principe non :?: :?:

Posté : 01 sept. 2006, 15:27
par Ryle
Au delà de ce que fait une fonction et des paramètres nécessaire à son exécution, la dernière chose importante à savoir, c'est ce qu'elle retourne :)

Donc retour sur la doc de array_map() et re-lecture de la description de cette fonction ;)

De manière générale, lorsque tu affiches une variable et qu'au lieu du résultat attendu du vois apparaitre "Array", cela signifie généralement que ta variable est un tableau, alors que ce qui t'interesse est très probablement juste ses cellules.
print_r() et var_dump() te permettent de voir facilement ce que contient un tableau (valeurs et index) :)

Posté : 01 sept. 2006, 15:33
par dunbar
Au delà de ce que fait une fonction et des paramètres nécessaire à son exécution, la dernière chose importante à savoir, c'est ce qu'elle retourne :)

Donc retour sur la doc de array_map() et re-lecture de la description de cette fonction ;)

De manière générale, lorsque tu affiches une variable et qu'au lieu du résultat attendu du vois apparaitre "Array", cela signifie généralement que ta variable est un tableau, alors que ce qui t'interesse est très probablement juste ses cellules.
print_r() et var_dump() te permettent de voir facilement ce que contient un tableau (valeurs et index) :)
:gla: Ok j'y retourne :arrow:

Posté : 01 sept. 2006, 16:25
par dunbar
Au delà de ce que fait une fonction et des paramètres nécessaire à son exécution, la dernière chose importante à savoir, c'est ce qu'elle retourne :)

Donc retour sur la doc de array_map() et re-lecture de la description de cette fonction ;)

De manière générale, lorsque tu affiches une variable et qu'au lieu du résultat attendu du vois apparaitre "Array", cela signifie généralement que ta variable est un tableau, alors que ce qui t'interesse est très probablement juste ses cellules.
print_r() et var_dump() te permettent de voir facilement ce que contient un tableau (valeurs et index) :)
:gla: Ok j'y retourne :arrow:
Je bloque tu n'aurais pas envie de me donner un pt truc en plus :?:

Posté : 01 sept. 2006, 16:45
par Ryle
Si tu ne vas pas jusqu'à la doc, la doc ira-t-à-toi :!:
array_map() retourne un tableau...
Une fois cet étrange message décrypté par les différents algorythmes du service de recherche de vie extraterrestre de la nasa, il semblerait que la fonction array_map() retourne un tableau :)

Donc, le résultat de array_map( 'mysql_real_escape_string', $_POST['com']) est un tableau, et il y a ainsi de grandes chances pour que $commentaire dans lequel tu stockes ce tableau, soit également un ... tableau ! ;)
... un tableau contenant tous les éléments du tableau arr1 (NdPiou: arr1 est le tableau passé en paramètre),
après leur avoir appliqué la fonction callback (NdP: dont le nom est passé en paramètre également)
La fonction print_r() te permet de voir ce que contient ce tableau. Il est ainsi plus facile de trouver le ou les bons index pour faire appel à le ou les éléments désirés du tableau :)

Posté : 01 sept. 2006, 21:38
par dunbar
Si tu ne vas pas jusqu'à la doc, la doc ira-t-à-toi :!:
array_map() retourne un tableau...
Une fois cet étrange message décrypté par les différents algorythmes du service de recherche de vie extraterrestre de la nasa, il semblerait que la fonction array_map() retourne un tableau :)

Donc, le résultat de array_map( 'mysql_real_escape_string', $_POST['com']) est un tableau, et il y a ainsi de grandes chances pour que $commentaire dans lequel tu stockes ce tableau, soit également un ... tableau ! ;)
... un tableau contenant tous les éléments du tableau arr1 (NdPiou: arr1 est le tableau passé en paramètre),
après leur avoir appliqué la fonction callback (NdP: dont le nom est passé en paramètre également)
La fonction print_r() te permet de voir ce que contient ce tableau. Il est ainsi plus facile de trouver le ou les bons index pour faire appel à le ou les éléments désirés du tableau :)
Si j'ai été à la doc rassure toi mais je comprend pas sorry :oops:
Mais bon je vais me débrouiller. :wink: