Calcul de "maxlength" pour <input> après requète SQL
cs_PatX
Messages postés34Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention11 mai 2007
-
17 févr. 2006 à 11:16
cs_PatX
Messages postés34Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention11 mai 2007
-
18 févr. 2006 à 15:05
Bonjour !
Je cherche à créer une fonction qui me permette d'insérer automatiquement le chiffre maxlength dans un input en fonction de la valeur retournée par une requete sql. (j'ai simplifié mes explications ici car en fait, je cherche à générer automatiquement un formulaire suite à une requete sql)
Explication :
1. j'effectue une requète en sql qui me retourne les propriété d'un champ.
exemple : varchar(150)
2. je mets cette valeur dans une variable $string
exemple : $string = 'varchar(150)';
3. j'essaie de créer une fonction qui me retourne uniquement les chiffres de la chaîne $string pour les affecter à maxlength (c'est là où je bloque)
exemple :
function maxLength ($string) {
$length = str_replace($rowlength, !is_int($rowlentgh), 'a');
// traitement sur la chaine
return $length;
}
4. j'insert maxlength dans ma balise suivant la valeur retournée
exemple : <?php echo ' ; ?>
Ceci est mon idée de départ, mais si vous avez une solution plus rapide à me proposer, elle est la bienvenue ! Merci d'avance à ceux qui prendront le temps de me lire et de m'aider,
PatX.
A voir également:
Calcul de "maxlength" pour <input> après requète SQL
cs_PatX
Messages postés34Date d'inscriptionmardi 28 décembre 2004StatutMembreDernière intervention11 mai 2007 17 févr. 2006 à 21:48
la fonction que vous m'avez indiqué (mysql_field_len, de même que mysql_fetch_lengths) retourne le nombre de caractères contenus pour un champ, par exemple, si dans le champ "titre_film" j'ai l'entrée "furtif", cela me retournera le nombre de caractères qui composent le mot "furtif", c'est à dire 6. En pratique :
$requete = "SELECT titre_film FROM films WHERE id='2' ";
$resultat = mysql_query ($requete);
$length = mysql_field_len($resultat)
me renverra après traitement un tableau dans lequel :
$length[0] vaudra 1 // id = 2, donc un seul caractère
$length[1] vaudra 6 // titre_film = furtif donc 6 lettres
dans mon cas, c'est le nombre maximal de caractères qui seront insérés dans ma base de données en fonction des types de champs : varchar(40), int(3) etc ... ce qui donne :
$requete = "SHOW COLUMNS FROM films WHERE id='2' ";
$resultat = mysql_query ($requete);
$length = mysql_field_len($resultat)
me renverra après traitement un tableau dans lequel :
$length[0] vaudra 12 // le nom du champ étant " id_interview ", donc 12 caractères
$length[1] vaudra 7 // le type étant " int(11) " donc 7 caractères
Problème : je ne veux pas récupérer 7 pour mon maxlength, puisqu'en fait, ce sont jusqu'à 11 caractères que je peux insérer : int(11). C'est la où ça bloque toujours, dans mon formulaire à remplir, le champ "titre du film" doit ressembler au final à
J'espère que j'ai été assez clair, merci encore pour votre dévouement !
Vous n’avez pas trouvé la réponse que vous recherchez ?