Bonjour
j'ai une requete sql qui fonction mais qui me renvoit une erreur , je passe le nom de la table en variable :
je ne voit pas l'erreur de syntaxeCode:$sql = "SELECT * FROM $nomtable[$j] ORDER BY id DESC LIMIT 1";
merci de votre aide
Version imprimable
Bonjour
j'ai une requete sql qui fonction mais qui me renvoit une erreur , je passe le nom de la table en variable :
je ne voit pas l'erreur de syntaxeCode:$sql = "SELECT * FROM $nomtable[$j] ORDER BY id DESC LIMIT 1";
merci de votre aide
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.
merci pour ta reponse
voila le message :j'ai essayer ta solution et la requete ne fonctionne plus :?Code:
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
bonjour,
Donc la variable $nomtable[$j] est vide.Code:SELECT * FROM ORDER BY id DESC LIMIT 1
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:
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']; ?> <?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"> </td> </tr> <?php mysql_free_result($req); } ?> <tr> <td height="100" align="left" id="champs"></td> <td height="100" align="left" id="champs"> </td> <td colspan="4" id="champs"> </td> </tr> <?php mysql_close(); ?>
Resolu problème avec la boucle FOR.
Merci pour votre aide :P