IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur requete sql variable en nom de table [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut Erreur requete sql variable en nom de table
    Bonjour

    j'ai une requete sql qui fonction mais qui me renvoit une erreur , je passe le nom de la table en variable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql = "SELECT * FROM $nomtable[$j] ORDER BY id DESC LIMIT 1";
    je ne voit pas l'erreur de syntaxe

    merci de votre aide

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    hum... Tu peux essayer comme ça : $sql = 'SELECT * FROM '.$nomtable[$j].' ORDER BY id DESC LIMIT 1';.
    Si ça ne marche toujours pas, donne nous le message d'erreur exact.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    merci pour ta reponse
    voila le message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur SQL !
    SELECT * FROM ORDER BY id DESC LIMIT 1
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY id DESC LIMIT 1' at line 1
    j'ai essayer ta solution et la requete ne fonctionne plus

  4. #4
    Invité
    Invité(e)
    Par défaut
    bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM ORDER BY id DESC LIMIT 1
    Donc la variable $nomtable[$j] est vide.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    Bonjour j 'ai vérifié en affichant la variable juste avant la requête , elle contient bien le nom de la table, de plus la requête fonctionne bien puisque j' obtient ce
    que je veut par la suite.

    mon code complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php 
    include("../conf.php");
    mysql_connect($host, $login, $pass); 
    mysql_select_db($db);
     
    $sql = "SHOW TABLES FROM $db";
    $result = mysql_query($sql);
     
    if (!$result) {
       echo "Erreur DB, impossible de lister les tables\n";
       echo 'Erreur MySQL : ' . mysql_error();
       exit;
    }
     
    $i=0;
    while ($row = mysql_fetch_row($result)) {
    	if ( $row[0] != "vehicule"){
        $nomtable[$i] = $row[0] ; 
    	$i++;
    	}
    }
     
    $nbretable = $i;
    mysql_free_result($result);
    ?>
     
    <?php  for($j=0; $j<=$nbretable; $j++)
      { ?>
      <tr>
       <?php  $sql = "SELECT * FROM vehicule WHERE alias LIKE '$nomtable[$j]'";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
      while($data = mysql_fetch_assoc($req)) 
        { 
        ?>
        <td  height="100" align="left" id="champs"><?php echo $data['alias']; ?></td>
        <td  height="100" align="left" id="champs"><?php echo $data['marque']; ?>&nbsp;&nbsp;<?php echo $data['modele'];?></td>
      <?php }?>  
      <?php  
      echo $nomtable[$j];
      $sql = "SELECT * FROM $nomtable[$j] ORDER BY id DESC LIMIT 1";
      $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
      while($data = mysql_fetch_assoc($req)) 
        { 
        ?>
        <td id="champs"><?php 
        $dateformat = new DateTime($data['date']);
        echo $dateformat->format('d/m/Y');?></td>
        <td id="champs"><?php echo $data['type']; ?></td>
        <td id="champs"><?php echo $data['nom']; ?></td>
        <td id="champs"><?php }?></td>
        <td id="champs">&nbsp;</td>
      </tr>
    <?php 
    mysql_free_result($req);
    } 
    ?>
      <tr>
        <td height="100" align="left" id="champs"></td>
        <td height="100" align="left" id="champs">&nbsp;</td>
        <td colspan="4" id="champs">&nbsp;</td>
      </tr>
    <?php
     
    mysql_close();
    ?>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    Resolu problème avec la boucle FOR.
    Merci pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur de type a l'éxecution d'une requete sql parametrée
    Par tipa42 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 31/10/2010, 09h49
  2. Erreur requete SQL/Access
    Par polianita dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 08/06/2006, 15h20
  3. Réponses: 3
    Dernier message: 15/05/2006, 17h29
  4. Réponses: 11
    Dernier message: 12/05/2006, 17h18
  5. requete sql pour bd access97 a tables multiples
    Par waspy59 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2006, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo