Passage d'un array associatif vers un indexé
Résolu/Fermé
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
-
26 févr. 2009 à 01:01
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 - 27 févr. 2009 à 17:29
Fallentree Messages postés 2309 Date d'inscription mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 - 27 févr. 2009 à 17:29
A voir également:
- Passage d'un array associatif vers un indexé
- Passage qwerty azerty - Guide
- Windows 7 vers windows 10 - Accueil - Mise à jour
- Vers quelle adresse web renvoie ce lien - Guide
- Envoyer vers - Guide
- Comment exporter les photos de google photo vers l'ordinateur - Guide
5 réponses
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
26 févr. 2009 à 01:13
26 févr. 2009 à 01:13
Donc 2 tableaux :
- le premier avec les valeurs
- le deuxième avec les champs "indices"
C'est ça??
$rox1=array_keys($_POST);
$rox2=array_values($_POST);
for ($i=0;$i< (count($Rox1)-1);$i++)
{
if ($i==0)
$Sqli= stripslashes($Rox1[$i])."='".stripslashes($Rox2[$i])."'";
else
$Sqli= $Sqli.",".stripslashes($Rox1[$i])."='".stripslashes($Rox2[$i])."'";
}
Merci
- le premier avec les valeurs
- le deuxième avec les champs "indices"
C'est ça??
$rox1=array_keys($_POST);
$rox2=array_values($_POST);
for ($i=0;$i< (count($Rox1)-1);$i++)
{
if ($i==0)
$Sqli= stripslashes($Rox1[$i])."='".stripslashes($Rox2[$i])."'";
else
$Sqli= $Sqli.",".stripslashes($Rox1[$i])."='".stripslashes($Rox2[$i])."'";
}
Merci
ça marche sans doute, mais c'est une très très mauvaise manière d'utiliser les tableaux associatifs, ils sont faits pour simplifier la vie, mais tel que tu les utilises tu te la compliques !
$Sqli="";
foreach ($_POST as $key=>$value) $Sqli.= stripslashes($key)."='".stripslashes($value)."',";
if (strlen($Sqli)) $Sqli=substr($Sqli,0,-1); // enlève la , à la fin
D'autre part c'est en général très très dangereux de faire une boucle sur toutes les valeurs d'un tableau venant de l'extérieur comme $_POST. Un petit malin peut ainsi modifier des champs que tu n'avais pas prévus. Il vaut mieux (toujours en général) faire toi-même la liste des variables à prendre en compte.
$Sqli="";
foreach ($_POST as $key=>$value) $Sqli.= stripslashes($key)."='".stripslashes($value)."',";
if (strlen($Sqli)) $Sqli=substr($Sqli,0,-1); // enlève la , à la fin
D'autre part c'est en général très très dangereux de faire une boucle sur toutes les valeurs d'un tableau venant de l'extérieur comme $_POST. Un petit malin peut ainsi modifier des champs que tu n'avais pas prévus. Il vaut mieux (toujours en général) faire toi-même la liste des variables à prendre en compte.
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
27 févr. 2009 à 12:04
27 févr. 2009 à 12:04
Merci,
Y a t'il la possibilité de rendre lisible le type des Champs des tables de données afin de controler le format de saisie lors du retour $_Post?
Y a t'il la possibilité de rendre lisible le type des Champs des tables de données afin de controler le format de saisie lors du retour $_Post?
toto
>
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
27 févr. 2009 à 14:24
27 févr. 2009 à 14:24
Je ne sais pas ce que tu appelles "rendre lisible" mais tu peux connaître les types des champs par plusieurs moyens : la fonction PHP mysql_field_type et la requete mysql SHOW COLUMNS FROM `matable` par exemple
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
>
toto
27 févr. 2009 à 14:48
27 févr. 2009 à 14:48
Yep! but an error/Warning :
Warning: mysql_fieldflags(): supplied argument is not a valid MySQL result resource in C:\wamp\www\.php on line
Que sygnificados ?
Le test du code tout court ne revoie pas de warning ...
<?php
$serveur = "localhost";
$user= "root";
$passwd = "";
$bdd = "photo";
$connex = mysqli_connect($serveur, $user, $passwd, $bdd);
$sql="SHOW COLUMNS FROM user";
Aff_SQL($sql,$connex);
Aff_SQLhere($sql,$connex);
mysqli_close($connex);
?>
Warning: mysql_fieldflags(): supplied argument is not a valid MySQL result resource in C:\wamp\www\.php on line
Que sygnificados ?
Le test du code tout court ne revoie pas de warning ...
<?php
$serveur = "localhost";
$user= "root";
$passwd = "";
$bdd = "photo";
$connex = mysqli_connect($serveur, $user, $passwd, $bdd);
$sql="SHOW COLUMNS FROM user";
Aff_SQL($sql,$connex);
Aff_SQLhere($sql,$connex);
mysqli_close($connex);
?>
toto
>
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
27 févr. 2009 à 15:13
27 févr. 2009 à 15:13
Je ne peux pas te dire grand chose sur cette erreur avec la fonction mysql_fieldflags, il n'y a pas d'appel à cette fontion dans le code que tu montres ! Regarde le nom de fichier et le numéro de ligne du message d'erreur pour voir où le problème se situe
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
>
toto
27 févr. 2009 à 16:26
27 févr. 2009 à 16:26
Cette fonction sortie du programme principale ne renvoie de warning.
Elle renvoie un warning correspondant à la ligne de l'appel: $flags = mysql_fieldflags($result, 0);
Cette fonction alias ne fonctionne pas... Et, elle était encore présente dans le code source...
Elle avait pour vocation d'afficher les Primary Key autrement que par show...
Pardon, c'était une erreure de ma part. Merci pour votre lecture.
D'autre part, je recherche éventuellement un booktain sur le SQL.
Editeur: Collection PerfectMicro, Campuspress , ENI, Eyrolles , Dunod , Informatique Professionnelle ...
Faut-il qu'il traite du SQL ou de MySQL ou d'APACHE?
Auriez vous une suggestion à ce sujet ?
https://www.chapitre.com/search/Default.aspx?themeId=5475
Merci d'avance.
Elle renvoie un warning correspondant à la ligne de l'appel: $flags = mysql_fieldflags($result, 0);
Cette fonction alias ne fonctionne pas... Et, elle était encore présente dans le code source...
Elle avait pour vocation d'afficher les Primary Key autrement que par show...
Pardon, c'était une erreure de ma part. Merci pour votre lecture.
D'autre part, je recherche éventuellement un booktain sur le SQL.
Editeur: Collection PerfectMicro, Campuspress , ENI, Eyrolles , Dunod , Informatique Professionnelle ...
Faut-il qu'il traite du SQL ou de MySQL ou d'APACHE?
Auriez vous une suggestion à ce sujet ?
https://www.chapitre.com/search/Default.aspx?themeId=5475
Merci d'avance.
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
26 févr. 2009 à 16:25
26 févr. 2009 à 16:25
c'est vrai que c'est bien pratique...
je souligne le fait de la possible manipulation du Post ... Mais pourquoi faire ???
D'autre part, mon idée serait d'éviter de manipuler l'index (clef primaire) lors de l'implémentation de la requête SQL. En fait l'Update à fonctionner une fois sans doute lorsque la requête fut privée de sa clef ...
Mais, je ne sais pas la retrouver de façon informelle dans la table.
Il semble que mysql_fieldflags(,, primary_key"); pourait convenir mais l'aide sqli ne l'incorpore pas ...
Merci d'avance.
je souligne le fait de la possible manipulation du Post ... Mais pourquoi faire ???
D'autre part, mon idée serait d'éviter de manipuler l'index (clef primaire) lors de l'implémentation de la requête SQL. En fait l'Update à fonctionner une fois sans doute lorsque la requête fut privée de sa clef ...
Mais, je ne sais pas la retrouver de façon informelle dans la table.
Il semble que mysql_fieldflags(,, primary_key"); pourait convenir mais l'aide sqli ne l'incorpore pas ...
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Fallentree
Messages postés
2309
Date d'inscription
mercredi 25 février 2009
Statut
Membre
Dernière intervention
22 juillet 2019
209
27 févr. 2009 à 17:29
27 févr. 2009 à 17:29
man est l'équivalent de l'extension /? après les commande DOS .
exple: man show <=> show /?
Le résultat serait le contenu de l'aide http://www.ens.math-info.univ-paris5.fr/mysql/show-database-info.html .
Dans une simple fenêtre au lieu d'une lecture de la racine http://www.ens.math-info.univ-paris5.fr/mysql
où il y a 50 références...
Ce serait une idée ça ... Genre Google Toolbar pour developpeur ...
A suivre...
exple: man show <=> show /?
Le résultat serait le contenu de l'aide http://www.ens.math-info.univ-paris5.fr/mysql/show-database-info.html .
Dans une simple fenêtre au lieu d'une lecture de la racine http://www.ens.math-info.univ-paris5.fr/mysql
où il y a 50 références...
Ce serait une idée ça ... Genre Google Toolbar pour developpeur ...
A suivre...