Page 1 sur 1
Execution de requête
Posté : 07 juin 2010, 13:00
par pepyte
Bonjour à tous,
J'ai un petit soucis pas compréhensible pour moi...
Alors lorsque que je copie/colle ma requête directement dans ma base, celle si me retourne des résultats (qui devraient être correctes) mais lorsque que je l'exécute via php, des résultats disparaissent.
Quelqu'un aurait une idée svp?
Voici ma requête
$req_prod_cat_parent = mysqli_query($link ,"SELECT DISTINCT `category_parent_id`
FROM jos_vm_category, jos_vm_category_xref
WHERE jos_vm_category.category_id = jos_vm_category_xref.category_child_id
AND jos_vm_category_xref.category_child_id
IN (SELECT category_id
FROM jos_vm_category
WHERE category_publish = 'Y')")or die (mysqli_error($link));
while($rows = mysqli_fetch_object($req_prod_cat_parent))
{
$req_publ_cat_parent = "UPDATE `jos_vm_category` SET category_publish='Y' WHERE `category_id`=".$rows->category_parent_id.";";
$result = mysqli_query($link, $req_publ_cat_parent);
}
Re: Execution de requête
Posté : 07 juin 2010, 13:29
par stealth35
hello, a quelle niveau ca va pas, la première requête ou la 2eme, sinon normalement tu pourrais faire en 1 seule requete ce que souhaite
Re: Execution de requête
Posté : 07 juin 2010, 14:10
par pepyte
Ce doit être au niveau de la première je pense qui ne prend pas tous les enregistrements que je souhaite. Ou sinon c'est la deuxième qui ne parcours pas tous les enregistrements
Re: Execution de requête
Posté : 07 juin 2010, 14:12
par stealth35
Ce doit être au niveau de la première je pense qui ne prend pas tous les enregistrements que je souhaite. Ou sinon c'est la deuxième qui ne parcours pas tous les enregistrements
sur ta 2eme requête fais aussi
$result = mysqli_query($link, $req_publ_cat_parent) or exit(mysqli_error($link));
Re: Execution de requête
Posté : 07 juin 2010, 14:15
par pepyte
Pas d'erreur. Mais les requêtes s'exécutent bien, je n'ai juste pas toutes les données que je veux...pourtant dans ma DB directement j'ai tout
Re: Execution de requête
Posté : 07 juin 2010, 14:26
par macgawel
Pas d'erreur. Mais les requêtes s'exécutent bien, je n'ai juste pas toutes les données que je veux...pourtant dans ma DB directement j'ai tout
Je ne comprends pas trop. Quelle(s) requête(s) passes-tu dans la DB ?
Logiquement, à partir du moment où tu reprends
exactement les mêmes requêtes que celles passées dans le script tu dois avoir le même résultat...
A faire :
- Tester sans la deuxième requête - par exemple en faisant juste un
echo $rows->category_parent_id, pour voir si la première requête renvoie le résultat attendu.
- Afficher les "deuxièmes" requêtes au lieu de les éxécuter. Vérifier qu'elles sont cohérentes.
- Afficher les "deuxièmes" requêtes, les exécuter (et afficher le résultat - ça doit être le nombre d elignes modifiées par la requête). Vérifier la cohérence.
Re: Execution de requête
Posté : 07 juin 2010, 14:32
par pepyte
Je ne comprends pas trop. Quelle(s) requête(s) passes-tu dans la DB ?
Celle-ci
SELECT DISTINCT `category_parent_id`
FROM jos_vm_category, jos_vm_category_xref
WHERE jos_vm_category.category_id = jos_vm_category_xref.category_child_id
AND jos_vm_category_xref.category_child_id
IN (SELECT category_id
FROM jos_vm_category
WHERE category_publish = 'Y')
Logiquement, à partir du moment où tu reprends exactement les mêmes requêtes que celles passées dans le script tu dois avoir le même résultat...
Je suis d'accord mais bizarrement la non...
A faire :
- Tester sans la deuxième requête - par exemple en faisant juste un echo $rows->category_parent_id, pour voir si la première requête renvoie le résultat attendu.
- Afficher les "deuxièmes" requêtes au lieu de les éxécuter. Vérifier qu'elles sont cohérentes.
- Afficher les "deuxièmes" requêtes, les exécuter (et afficher le résultat - ça doit être le nombre d elignes modifiées par la requête). Vérifier la cohérence.
J'ai déjà fait ça et c'est comme ça que j'ai vu qu'il n' y avait pas tout.
Re: Execution de requête
Posté : 07 juin 2010, 14:39
par pepyte
Par exemple quand je l'execute direct dans la DB j'ai
- 0
6
14
15
16
17
18
41
42
43
44
45
46
125
136
146
150
166
167
et en faisant le echo j'ai
- 6
15
16
17
18
41
42
43
44
45
46
125
146
150
On peut voir qu'il en manque(0, 166, 167) entre autre
Re: Execution de requête
Posté : 07 juin 2010, 14:51
par AoSiX
Bonjour,
L'informatique, c'est pas magique !
Si les requêtes sont identiques, les résultats aussi. Si les résultats sont différents, les requêtes ne sont pas identique.
Re: Execution de requête
Posté : 07 juin 2010, 14:53
par pepyte
Et pourtant je fais un copier coller de la requête de mon code et ce, plusieurs fois donc la je ne comprends pas.
Re: Execution de requête
Posté : 07 juin 2010, 15:13
par pepyte
C'est good. En fait je faisais le copier coller après avoir exécuté le programme donc la DB avait changé. Désolé, mais merci qu'en même