Bug d'une requete select

Résolu/Fermé
Utilisateur anonyme - Modifié par zemalabare le 18/12/2013 à 11:19
 Utilisateur anonyme - 18 déc. 2013 à 13:42
Bonjour,

Voici le contexte.
J'ai une table dans laquelle j'enregistre les tickets de nos insterventions informatiques.

dans cette table (tincidents) j'ai une colonne user, time, date_res (entre autres)
j'ai une table tusers qui reférence tous nos clients
j'ai une table ttime qui référence plusieurs durée d'intervention

l'idée est simplement d'afficher toutes nos interventions, sous forme de tableau avec <table> et à 3 colonnes : Nom du client, date d'intervention, durée.

le problème est que lorsque je fais un SELECT sur la table users, ca bug! Oo (détail du bug plus bas)

mon code
1. je selectionne tous mes tickets pour un futur listage

$query=$bdd_intervention->query('SELECT * FROM tincidents LIMIT 0, 3000');
$queryfetch=$query->fetch();


ici no soucis

2. je boucle afin de pouvoir tout lister.

while($queryfetch)

no soucis

3.1 je veux récupéré les users et la durée d'intervention donc dans un premier temps, voici comment je récupère la durée


$query_time=$bdd_intervention->query('SELECT * FROM ttime WHERE id='.$queryfetch['time'].'');
$queryfetch_time=$query_time->fetch();


ici NO soucis!

3.2 et voici comment je récupère les users

$query_user=$bdd_intervention->query('SELECT * FROM tuser WHERE id='.$queryfetch['user'].'');
$queryfetch_user=$query_user->fetch();


et là, C'EST LE DRAME

Le bug est que si je supprime les 2 dernières lignes de codes concernant la recup des users, j'ai un beau tableau avec mes 185 interventions, bien triées etc etc. Mais bon sans les nom des clients. Donc les 2 dernières ligne de code ci dessus me servent à cela ... problème : elles me limitent ma requete qu'au 30 premiers tickets!! Alors que si je les supprime, ma requete m'affiche bien 185 tickets.

j'ai essayé avec LIMIT 0,200 mais sans succès.

et si je change le dernier SELECT (qui se fait sur tusers) par un SELECT sur ttime ou une autre table quelconque, mon affichage est toujours de 185 lignes!

C'est uniquement lorsque je fais une requete sur tusers, qu'il ne veut plus m'affichier mes 185 lignes, il m'affiche 30 ligne seulement (et les 30 premiers pour infos)

C'est moi? j'ai mal écrit quelque chose? :(

Merci d'avance!

PS= à la fin des requete ce n'est pas des doubles quotes, mais 2 simples quotes. pas de débat la dessus s'il vous plait. Je ne suis pas dev. Merci

2 réponses

kherox Messages postés 131 Date d'inscription dimanche 13 janvier 2013 Statut Membre Dernière intervention 17 octobre 2015 1
18 déc. 2013 à 11:44
verifie dans ton $queryfetch['user'], ya qoui dedans en faisant
print_r($queryfetch['user']); et ensuite poste le resultat. en plus j aimerais savoir comment tu faire tes requette et ou? dans ta boucle while ou en dehors? je parle des deux dernieres requettes
0
Utilisateur anonyme
18 déc. 2013 à 11:48
$query=$bdd_intervention->query('SELECT * FROM tincidents ORDER BY date_res DESC');
$queryfetch=$query->fetch();
while($queryfetch)
{
if ($queryfetch['date_res']!="0000-00-00")
{
$query_time=$bdd_intervention->query('SELECT * FROM ttime WHERE min=\''.$queryfetch['time'].'\'');
$queryfetch_time=$query_time->fetch();

$query_user_test=$bdd_intervention->query('SELECT * FROM tusers WHERE id=\''.$queryfetch['user'].'\'');
$queryfetch_user_test=$query_user_test->fetch();

echo "<tr><td>Chez ".$queryfetch_user_test['company']."</td><td> le ".$queryfetch['date_res']."</td><td> d'une durée de ".$queryfetch_time['name']."</td></tr>";
}
$queryfetch=$query->fetch();
}
0
Utilisateur anonyme
18 déc. 2013 à 11:49
Voici mon Code, mais j'ai trouvé d'où venait le soucis, je poste de suite la solution.
0
Utilisateur anonyme
18 déc. 2013 à 11:56
Merci de t'être pencher sur mon cas, et je ne connaissais pas le print_r ! je m'le garde sous le coude, ça pourrait servir
0
Résolue!

Alors en faite, ma colonne user était de type VAR.
Donc je ne sais toujours pas pourquoi cela me limitait à un affichage de 30 lignes, mais du coup j'ai rajoute des simples quote et ca a fonctionné (merci papa nowel?)

du coup mes deux dernieres lignes ca donne ca

$query_user=$bdd_intervention->query('SELECT * FROM tuser WHERE id=
\'
'.$queryfetch['user'].'
\'
');
$queryfetch_user=$query_user->fetch();

"Internet" est un outil ... apprenez à l'utiliser svp! Nous ne sommes pas là pour vous mâcher le travail. Faite une recherche sur CCM ou sur GG avant de poster, merci!
0
kherox Messages postés 131 Date d'inscription dimanche 13 janvier 2013 Statut Membre Dernière intervention 17 octobre 2015 1
18 déc. 2013 à 11:58
ajoute un resolue au poste . regarde en haut.
merci
0
Utilisateur anonyme
18 déc. 2013 à 13:42
je l'avais déjà fait,
merci
0