Partage

Problème de syntaxe MySQL

Sujet résolu
Le 12 février 2012 à 18:59:19

Bonjour amis Zéros!

Je souhaiterai savoir ce qui cloche dans ma syntaxe!
Pouvez-vous m'aider?

SELECT t.COUNT(*) nb, s.nb_modifs m
FROM `' . $_GET['id_tarif'] . '` t
INNER JOIN `tarifs` s
ON s.id = t;


Je récupère bien mon nb_modifs mais pas le count sur la première table :o

Merci d'avance :D
Publicité
Le 12 février 2012 à 18:59:19
Le 12 février 2012 à 20:11:51

Salut,

Essaies ça
SELECT COUNT(t.*) as nb, s.nb_modifs m
FROM ' . $_GET['id_tarif'] . ' t
INNER JOIN tarifs s
ON s.id = t.id;
Le 12 février 2012 à 20:28:48

Salut cdie!

Merci pour ta réponse mais ça ne marche pas :o
Zéro d'honneur Le 12 février 2012 à 21:12:36

> ça ne marche pas

Voilà un message d'erreur clair...

Outre l'injection SQL monumentale et le fait que la requête ne veut rien dire, j'ai un doute : tu cherches à faire quoi ?
Le 12 février 2012 à 21:57:13

Je sais que ça peut paraitre bête, surtout pour un utilisateur confirmé des bases de données, mais je cherche à perfectionner les temps de traitement.

Je pourrai obtenir le résultat que je souhaite en faisant 2 requêtes mais je souhaitais compter le nombre d'entrées dans une table x et récupérer une entrée spécifique dans une autre, où l'id correspond au nom de la table x
Zéro d'honneur Le 12 février 2012 à 21:58:43

Fais 2 requêtes.
Le 12 février 2012 à 21:59:13

Tes tables avec un nom dynamique, ca sent la mauvaise conception. Y a quoi dans ces tables ? Comment ça se fait que le nom soit dynamique ?
Le 12 février 2012 à 22:15:25

C'est dynamique car je ne savais pas s'il était possible de les rendre variables avec des "?" ou des ":" :p

Va pour les 2 requêtes! Merci...
Zéro d'honneur Le 13 février 2012 à 9:39:30

Ça sent la BDD foireuse...

PS : enlève cette injection sql...
Le 14 février 2012 à 18:58:51

Ok, j'ai séparé les requêtes!

Par contre j'en profite, Taguan, pour te demander comment ne pas concaténer mes noms de tables dans la requête. J'ai lu dans le bouquin de m@teo que ce genre de requêtes ouvrait des failles... J'ai essayé avec "?" puis "execute" mais çà ne fonctionne pas, Ça doit être tout bête, j'en suis sûr...
Zéro d'honneur Le 14 février 2012 à 20:39:24

Fais au moins une validation des noms de tables autorisés, en les mettant dans un array...
Le 15 février 2012 à 15:16:34

Sinon, en préparant la requête dans une variable comme ceci

<?php
$req = "SELECT ma_table FROM " . $_GET['id'] . " WHERE blabla = 'true';";

$sql=$bdd->query($req);
?>


Suis-je toujours confronté au problème de failles?

Par contre, j'ai pas compris la validation des noms de tables autorisés, tu peux m'expliquer?
Zéro d'honneur Le 15 février 2012 à 17:27:06

> Suis-je toujours confronté au problème de failles?

As-tu remarqué que tu mets toujours un $_GET['id'] dans ton code sql ?
Le 15 février 2012 à 22:39:49

Tu es désagréable comme ça dans ta vie de tous les jours où c'est juste un rôle que tu te donnes ici?
Zéro d'honneur Le 15 février 2012 à 22:47:32

Je mange des orphelins trisomiques au petit déjeuner.

Accessoirement, tiens, la becquée.
Le 15 février 2012 à 22:55:15

C'est bien ce qu'il me semblait. Faut se détendre tu sais, ici c'est plein de petits zéros, comme moi :)
Si ça t'énerve de répondre à leurs satanées questions de noobs ne leur réponds pas, à moins que cela n'aide ton égo... "Lord" :-°

Problème de syntaxe MySQL

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown