Nom de table variable

Résolu
minet5 Messages postés 16 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 15 octobre 2008 - 19 sept. 2008 à 08:59
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009 - 19 sept. 2008 à 15:26
bonjour,

cela fait 2 jours que je ne trouve pas la solution et je viens a votre aide!
je crée une table dont le nom est concatener 'commandex' ou x est une variable.jusque la pas de probleme!
par contre je n arrive pas a faire de requete de la forme SELECT * FROM $commandex
mon code :

$num =  $_GET['variable'];
echo "$num"; // retourne 105 qui est la bonne valeur  d'une variable postée
$num1 =  "commande".$num; // retourne 'commande105' le bon nom de ma table que j'ai créer

mysql_connect($host, $user,$passwd) or die("erreur de connexion au serveur");
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");

$result = mysql_query("SELECT * FROM ' $num1 ' ");
// Recuperation des resultats
while($row = mysql_fetch_row($result)){   //ligne 60
$num_commande = $row[0];
$ref_client = $row[1];
......

mais voila j ai un message d'erreur :

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\wamp\www\commandes.php on line 60

si je met "SELECT * FROM commande105 " cela marche bien!

mon probleme vient donc de l'ecriture de la requete mais j ai beau esseyer toutes les syntaxes que j ai pu trouver donc je pense que le probleme ne vienne pas de la syntaxe mais plutot de la concatenation!

Auriez vous une solution

merci!

le galerien

31 réponses

minet5 Messages postés 16 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 15 octobre 2008
19 sept. 2008 à 14:19
non fausse joie desolé!!
je parle bien du chiffre "1" ou "un"
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
19 sept. 2008 à 14:25
alors fait un var_dump($num1) ... laurent avait mis var_dump($numl) .... je sais pas si tu as recopier son code ou pas ...
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
19 sept. 2008 à 14:25
Et puis su ce n'eest encore pas bon .... fait un gros copier coller de ton code que je regarde si tout va bien, si tout est fait dans le bon ordre etc ...
0
minet5 Messages postés 16 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 15 octobre 2008
19 sept. 2008 à 14:27
$num =  $_GET['variable'];
$num1 =  "commande".$num;
var_dump($num1);

retourne :

string(13) "commande105
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
minet5 Messages postés 16 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 15 octobre 2008
19 sept. 2008 à 14:28
<html>
    <head>
    <title>commandes</title>
    </head>

Numero de commande |
Reference client |
Date de commande |
Montant de la commande |
libelle |
prevu |
MOCH |
MOAT |
MOBE |
MOPR |

<?php
// De'claration des parame`tres de connexion
$host = localhost;
$user = root;
$bdd = affaires;
$passwd  = \"\";

$num =  $_GET['variable'];
$num1 =  \"commande\".$num;
var_dump($num1);
//$num1 = 'commande105';

mysql_connect($host, $user,$passwd) or die(\"erreur de connexion au serveur\");
mysql_select_db($bdd) or die(\"erreur de connexion a la base de donnees\");

$result = mysql_query(\"SELECT * FROM `\".$num1.\"` ; \");
if (!$result) {
   die('Requête invalide : ' . mysql_error());
}

while($row = mysql_fetch_row($result)){
$num_commande = $row[0];
$ref_client = $row[1];
$date_commande = $row[2];
$montant = $row[3];
$libelle_commande = $row[4];
$prevu = $row[5];
$moch = $row[6];
$moat = $row[7];
$mobe = $row[8];
$mopr = $row[9];

echo \"----
\n
$num_commande, \n
$ref_client, \n
$date_commande, \n
$montant, \n
$libelle_commande, \n
$prevu, \n
$moch, \n
$moat, \n
$mobe, \n
$mopr, \n
\n\";

  }
mysql_close();
// Deconnexion de la base de donnees

 ?>

<form>
'">
</form>

<form>

</form>

</html>
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
19 sept. 2008 à 14:43
Plusieurs questions me taraude :

• tu utilises $_GET['variable'] mais pas de test de si il exite ou non ce qui fait que si tu appel ta page inserer_commande.php sans paramètre et bien ça plante.
• dans ton exemple, $num est toujours le même donc c'est inutile de faire ta requête comme tu le fait ... mais j'ose imaginer que tu as synthétiser ton code.
• Ensuite tu utilise les balises form mais tu n'en n'as aucune utilité puisque tu utilise un bouton et un non un submit ... c que je te conseillerais :

<form action="inserer_commande.php" method="POST">
  " />
 
</form>

et au début de ton php en haut tu fais :

<?php
  if ($_POST['send'])
  {
       $num1 = "commande".$_POST['monNum'];
      puis tout ton code ....
  }
?>

Préfères la méthode POST, cela évite de faire trainer les variables dans l'url etc ...
0
minet5 Messages postés 16 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 15 octobre 2008
19 sept. 2008 à 15:11
merci les tintins pour tous vos conseils!! c'est laborieux dans mon code mais j arrive a sortir ma table! va falloir je range tous ca!

cela viendrai de la methode get alors tu crois? parce que pour moi elle avai l'air de bien marcher je recuperai la valeur 105 non?
0
cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
19 sept. 2008 à 15:21
[../auteur/MIKE1310/1137126.aspx mike1310]
==> le problème résolu n'est a priori pas encore à l'ordre du jour.

Le problème c'est que, a priori, si tu essayes d'exécuter le code suivant, ça ne va marcher que dans 1 cas.
$num1 = "commande105";

$query = "SELECT * FROM `".$num1."` ; ";

echo $query;

$result = mysql_query($query);

if (!$result) {

   die('Requête invalide : ' . mysql_error());

}


$query = "SELECT * FROM commande105 ; ";

$result2 = mysql_query($query);


if (!$result2) {


   die('Requête invalide : ' . mysql_error());


}
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
19 sept. 2008 à 15:23
Problème résolu, réponse accepté : c'est pareil tous ça
0
minet5 Messages postés 16 Date d'inscription vendredi 19 septembre 2008 Statut Membre Dernière intervention 15 octobre 2008
19 sept. 2008 à 15:23
question con! c'est ou que l'on mentionne resolu?
0
cs_mike1310 Messages postés 232 Date d'inscription jeudi 30 août 2007 Statut Membre Dernière intervention 31 juillet 2009
19 sept. 2008 à 15:26
Bin en fait je voulais dire "réponse accepté" comme tu la fait c'est bon .... j'me suis emmêlé les mains dans le clavier :D
0
Rejoignez-nous