SÉLECTION D'UNE TABLE MYSQL

Signaler
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
-
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

Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
4
Un code crade, obsolète, blindé de mauvaises pratiques et inutilisable en l'état...
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

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°
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

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°
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
t'as oublie de mettre un
or die(mysql_error());
a la place
Messages postés
2
Date d'inscription
mercredi 21 juin 2006
Statut
Membre
Dernière intervention
6 décembre 2008

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
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
42
# 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.
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015

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°