8791 sujets

Développement web côté serveur, CMS

Bonjour,

j'aimerais savoir comment on peut récupérer en PHP le type d'un champ MySQL (int, varchar, bool, datetime, timestamp, etc.) ; je ne trouve cette info nulle part...

Ce serait pour créer des conditions du genre :


if([b]typechamp=='varchar'[/b]) {
    echo('Champ de texte');
} elseif([b]typechamp=='bool'[/b]) {
    etc.
}


Merci d'avance ! Smiley smile

Lionel
Salut,

il y a cette fonction qui retourne (notamment) le type d'un champ

mysql-fetch-field

et idem avec un i msqli_fetch_field pour les versions plus récentes de mysql

mais tu ne connais pas d'avance ce genre d'info? ou tu ne peux pas rapidement le savoir?

si tu fais tous ces tests et requete j'ai peur que ça ralentisse ton code.

pascal
Merci beaucoup Pascal ! J'ai bien accès à ces infos puisque je construis mes tables. Smiley cligne

C'est juste une idée qui me passait en tête ; en fait, j'ai écrit une petite interface de saisie de données pour un client, que j'ai ré-utilisée pour un autre, puis un autre, etc., et que j'essaie d'améliorer petit à petit.

Et plutôt que de ré-écrire les formulaires en HTML en dur à chaque fois (chaque client ne veut pas forcément la même chose), je pensais le construire avec une boucle PHP en fonction de ce qu'elle trouve dans MySQL, car il serait plus rapide de créer les champs dans phpMyAdmin qu'en dur dans la page (je ne sais pas si je suis clair là). Ça donnerait quelque chose dans ce genre :


<form action="test_submit" method="post">
    <?php while($row = mysql_fetch_field($result)): ?>
        <p>
            <?php if($row->type=='string'): ?>
                <input type="text" name="<?= $row->name ?>" />
            <?php elseif($row->type=='blob'): ?>
                <textarea name="<?= $row->name ?>" cols="20 "rows="8"></textarea>
            <?php endif ?>
        </p>
    <?php endwhile ?>
    <p><input type="submit" value="Continue" /></p>
</form>

Voilà, je vais creuser l'idée... Mais s'il existe une solution plus simple et/ou moins lourde pour parvenir à ce résultat, je suis preneur ! Smiley cligne
Bah je crois que l'idée me vient de ROR effectivement, mais je dois avouer que ce n'est pas si simple que ça à appréhender (en tout cas pour un gentil petit webmaster comme moi)... Smiley cligne