Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/09/2006, 09h15   #1
Invité de passage
 
Inscription : août 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 5
Points : 2
Points : 2
Par défaut Problème de SHOW COLUMNS

Hello

Pour obtenir le type précis (p.ex. SMALLINT(6)) de toutes les colonnes d'une table, j'utilise SHOW (FULL) COLUMNS FROM table.

Je récupère le résultat au moyen d'une boucle en PHP. Mais ensuite, je ne sais pas quoi utiliser pour récupérer les types de mes colonnes 1 à 1.

Car en utilisant mysql_fetch_row _assoc _... j'obtiens toujours (avec un print_r) :

le type de la 1ère colonne de la 1ère table : x fois - ensuite :
le type de la 1ère colonne de la 2ème table : x fois, etc. etc. etc.
(x correspond au nombre de lignes de la table concernée !)

Apparemment, je liste ligne par ligne au lieu de lister colonne par colonne, mais c'est toujours le cas. J'ai pourtant essayé plusieurs fonctions PHP, offsets à 0, etc.

Quelqu'un aurait une idée ?

Merci d'avance !

Greentypem (débutant en php MySQL...)
greentypem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 10h18   #2
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
Bonjour,

A mon avis c'est plus un probleme dans tes boucles et donc, un probleme php.
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 13h51   #3
Invité de passage
 
Inscription : août 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 5
Points : 2
Points : 2
Mais même en-dehors d'une boucle, le listage est toujours donné ainsi !

Extrait de code (il créé du code SQL à partir de bases, mais n'est pas fini : son but est d'extraire un bout de db dans un fichier texte à la sauce phpMyAdmin)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql_select_db($base[$i]['name']);
echo $requete_columns = 'SHOW COLUMNS FROM '.$base[$i][$j]['name'];
$resultat_columns = mysql_query($requete_columns) OR die (mysql_error());
$full_columns = mysql_fetch_assoc($resultat_columns);
 
echo '<pre>';
print_r ($full_columns);
echo '</pre><hr>';		
 
 
$base[$i][$j][$k]['type'] = $full_columns['Type'];
 
$code .= '`'.$base[$i][$j][$k]['name'].'` '.$base[$i][$j][$k]['type'].$r;
Par exemple, ce code peut donner ça à l'écran :

Code :
1
2
3
4
5
6
CREATE TABLE `t_adr` {
`key` tinyint(...) ...
`Nom` varchar(....) ...
`Prénom` ...
PRIMARY KEY (`key`)
}
greentypem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 14h09   #4
Expert Confirmé
 
Avatar de yiannis
 
Inscription : septembre 2005
Messages : 1 499
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : septembre 2005
Messages : 1 499
Points : 2 563
Points : 2 563
euh..... c'est bien ce que je disais, c'est un probleme dans ton code php
il est ou le while() pour avoir tous tes resultats?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
mysql_select_db($base[$i]['name']);
echo $requete_columns = 'SHOW COLUMNS FROM '.$base[$i][$j]['name'];
$resultat_columns = mysql_query($requete_columns) or die (mysql_error());
while ($full_columns = mysql_fetch_assoc($resultat_columns)) {

$base[$i][$j][$k]['type'] = $full_columns['Type'];
$base[$i][$j][$k]['name'] = $full_columns['Name'];
....etc....
}
//et la tu concatennes pour l'affichage
$code .= '`'.$base[$i][$j][$k]['name'].'` '.$base[$i][$j][$k]['type'].$r;
__________________
"Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN
yiannis est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2006, 15h55   #5
Invité de passage
 
Inscription : août 2006
Messages : 5
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 5
Points : 2
Points : 2
Edit : Désolé, je n'avais pas vu que tu avais modifié mon code ... En effet, je n'ai pas utilisé de boucle à cet endroit. Je vais essayer de vérifier mon code à nouveau. Merci
greentypem est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h06.


 
 
 
 
Partenaires

Hébergement Web