Tables MySQL

Résolu/Fermé
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 - 14 juin 2011 à 17:14
david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 - 14 juin 2011 à 19:31
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

david77179 Messages postés 155 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 9 janvier 2019 22
14 juin 2011 à 19:31
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