après requète SQL" />

Calcul de "maxlength" pour <input> après requète SQL

Signaler
Messages postés
34
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
11 mai 2007
-
Messages postés
34
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
11 mai 2007
-
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.

5 réponses

Messages postés
34
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
11 mai 2007

PS : ne pas tenir compte de la ligne :

$length = str_replace($rowlength, !is_int($rowlentgh), 'a');

dans la fonction maxLength(), c'était juste un test pour moi ;)
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
mysql_field_len(),
Retourne la longueur maximale du champ spécifié
Messages postés
366
Date d'inscription
mercredi 7 avril 2004
Statut
Membre
Dernière intervention
20 février 2007
2
http://fr.php.net/manual/fr/function.mysql-field-len.php

Thomvaill
IRC : Thomas (irc.heliosnet.org:6667 #programmation)
Messages postés
34
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
11 mai 2007

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 !
Messages postés
34
Date d'inscription
mardi 28 décembre 2004
Statut
Membre
Dernière intervention
11 mai 2007

à force de chercher je suis tombé sur les bons mots clés et voilà la solution postée par Ranouf :

http://phpcs.com/codes/CREER-FORMULAIRE-PARTIR-REQUETE-SQL_35400.aspx

enjoy