Tables MySQL

Résolu
david77179 Messages postés 172 Statut Membre -  
david77179 Messages postés 172 Statut Membre -
Bonjour,

Je souhaiterais afficher sur ma page php le nom des colonnes d'un table MySQL. Je ne sais pas du tout comment je peux faire....

Merci de votre aide

David

1 réponse

  1. david77179 Messages postés 172 Statut Membre 22
     
    J'ai trouvé par moi même la solution; la voici pour ceux qui en aurait besoin:

    <?php
    /* paramètres du bouts de code pour vous */
    $mabase = "XXXXXX";
    $matable = "XXXXXX";
    $requete =
    "SELECT * FROM $matable" .
    " LIMIT 0, 10";

    /* connection au serveur MySQL */
    $id_connection = mysql_connect("localhost", "root", "");
    if (!$id_connection) {
    echo
    "<p style=\"color: red;\">Impossible de se connecter au serveur MySQL.</p>";
    }

    /* sélection de la base */
    $id_selection_base = mysql_select_db($mabase);
    if (!$id_selection_base) {
    echo
    "<p style=\"color: red;\">Impossible de sélectionner la base" .
    " <samp>$mabase</samp>.</p>";
    }

    /* exécution de la requête */
    $resultatsRequete = mysql_query($requete, $id_connection);

    if (!$resultatsRequete) {
    echo
    "Lecture impossible, la requête <samp>$requete</samp> est mal formulée.";
    }
    else {
    /* affichage des résultats */
    echo
    "<table>\n<caption>Résultats pour la requête <samp>$requete</samp></caption>\n";

    echo "\t<tr>\n";

    /* détection des libellés complets des colonnes (= cas de jonture) */
    preg_match_all("[[\w]+\.[\w]+]", $requete, $champsVeritables, PREG_SET_ORDER
    );

    // les intitulés complets détectés dans $requete sont enregistrés dans l'array
    // $champsVeritables

    /* affichage des noms des champs, selon le résultat renvoyé par MySQL + les vrai
    // noms des en-têtes */
    $nombreDeChamps = mysql_num_fields($resultatsRequete);
    for ($i = 0; $i < $nombreDeChamps; $i++) {
    $nom_colonne = mysql_field_name($resultatsRequete, $i);
    if (!empty($champsVeritables)) { // si on a fait une jointure
    $nom_colonne .= "<br />({$champsVeritables[$i][0]})";
    /* emphase de la table : décommentez la ligne suivante */

    //$nom_colonne = preg_replace("[([\w]+)\.]", "<em title=\"nom de la table dont
    // le champ fait partie\">$1</em>.", $nom_colonne);

    /* autre mise en relief : que la partie différente du nom du champ (après le
    // préfixe comprenant un underscore)
    /* marche pour dotclear et wordpress, entres autres systèmes */
    $nom_colonne = preg_replace("[(.+)_(.+)\.([\w]+)]",
    "$1_<em>$2</em>.$3", $nom_colonne);
    }
    echo "\t\t<th scope=\"col\">$nom_colonne</th>\n";
    }
    echo "\t</tr>\n";
    // FIN affichage des intitulés de champs

    /* remplissage de chaque ligne, par les résultats correpondants */
    while($ligne = mysql_fetch_array($resultatsRequete,MYSQL_NUM))
    {
    echo "\t<tr>\n";
    foreach($ligne as $valeur)
    {
    echo "\t\t<td>$valeur</td>\n";
    }
    echo "\t</tr>\n";
    }

    echo "</table>";
    }

    mysql_close($id_connection);
    ?>

    Il faut juste changer les lignes 3 et 4 là ou j'ai mis les X par vos noms de base et de table MySQL.
    Il faut aussi que vous verifier les paramètres de connexion a la table juste en dessous (3-4lignes en dessous)
    Et ça marche!!!!!!!!!!

    Source: https://phpsources.net/code/php/securite/305_passez-de-http-ehttps-avec-une-redirection-automatique
    0