SÉLECTION D'UNE TABLE MYSQL

kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015 - 19 oct. 2008 à 15:47
webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 - 20 oct. 2008 à 09:02
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/48256-selection-d-une-table-mysql

webdeb Messages postés 488 Date d'inscription samedi 5 avril 2003 Statut Membre Dernière intervention 31 mars 2009 4
20 oct. 2008 à 09:02
Un code crade, obsolète, blindé de mauvaises pratiques et inutilisable en l'état...
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 oct. 2008 à 21:54
Muarf oublié de changer le while dans la dernière portion de code... .. .

Et pour finir... parce que dire de vérifier si une variable est instanciée avant de l'utiliser c'est bien mais le montrer c'est mieux... .. .

if(isset($_POST['test']) && !empty($_POST['test']))
$test_page = $_POST['test'];
else
$test_page = 'aucune table sélectionné';

;o)

@ tchaOo°
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 oct. 2008 à 21:48
Salut Melo... le problème ne réside pas dans le fait que tu sois débutant mais dans l'utilité, ou non, de cette source qui au final n'en est pas une... ce code ne peut pas servir... d'une part parce qu'il n'a aucune utilité et d'autre part parce qu'il n'est pas fonctionnel... .. .

Déja tu ne dois pas passer par une super globale pour sélectionner ta table... la sélection de tes tables se fait au moment de ta requête et si tu veux changer de bdd à la volée fais le via une base de données tiers ou un fichier de conf mais pas via une variable $_POST... d'une part ces variables étant soumise par l'internaute ne sont pas des variables sûr et d'autre part ces variables sont volatile d'une page à l'autre tu perd ta valeur à moins de relancer une requète post via un socket ou de passer le nom de ta table dans l'url ce qui est encore pire... .. .

Bref c'est pas trop viable comme technique... sinon que ce passe t'il si on accède directement à ta page affichage selection (met error_reporting à E_ALL dans ton php.ini) à la limite stock le résultat en session si tu veux juste un stockage temporaire et que tu ne veux pas utiliser de fichier de conf ou autre... .. .

au passage...
while ($row mysql_fetch_row($result))>

while(($row = mysql_fetch_row($result)) !== false)

et d'ailleurs tu ne teste pas le retour de ta requête... .. .

$sql = 'SHOW TABLES FROM '.$bdd;
$result = mysql_query($sql);

if($result !== false)
{
echo '<select name="table" id="table">';

while ($row = mysql_fetch_row($result))
echo ' <option value="'.$row[0].'">'.$row[0].'</option>'."\n";

echo '</select>';
mysql_free_result($result);
}
else echo 'impossible de lister les tables de la base '.$bdd;

Mais bon cette source ne sert malheureusement à rien... il faut poster des sources ayant un minimum d'utilité pour les autres développeur pas forcement des sources compliquée mais qui peuvent être reprise pour d'autres développement et là ça n'est pas le cas... .. .

@ tchaOo°
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 oct. 2008 à 17:36
t'as oublie de mettre un
or die(mysql_error());
a la place
melo8989 Messages postés 2 Date d'inscription mercredi 21 juin 2006 Statut Membre Dernière intervention 6 décembre 2008
19 oct. 2008 à 17:21
Bonjours, Comme je vous l'ai dit je suis débutant.
en se qui concerne l'affichage c'est juste pour retrouver le nom de la base sélectionner. après on fait se que l'on veut de la valeur...(c'est juste un exemple).

en se qui concerne le if :
effectivement il ne sert à rien puisqu'il est déjà intégré à la page de connexion.
je le supprime ^^ merci
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
19 oct. 2008 à 16:49
# if (!$result) {
# echo "Erreur DB, impossible de lister les tables\n";
# echo 'Erreur MySQL : ' . mysql_error();
# exit;
# }

or die(mysql_error());

mouais... ca sert a rien, et c'est mal code.
kankrelune Messages postés 1293 Date d'inscription mardi 9 novembre 2004 Statut Membre Dernière intervention 21 mai 2015
19 oct. 2008 à 15:47
J'ai pas compris l'utilité là... je cherche mais je trouve pas... tu fais quoi une fois que tu l'a sélectionnée... .. ?

"$bdd" Ô_o

----

$test_page = $_POST['test']

et si $_POST['test'] n'est pas instancié... .. ?

Bref... code inutile... à la limite un snippet pour montrer comment lister les tables d'une bdd (et encore) mais surement pas une source... .. .

@ tchaOo°
Rejoignez-nous