S'abonner :  Newsletters    Magazines
Avis sur les produits Avis sur les logiciels Avis sur les jeux Actualités A propos de 01net
774 utilisateurs connectés

Plusieurs requêtes simultanées

ziko1310 le 01 aout 2008 à 08h42
Bonjour,
J'utilise ODBC pour attaquer une BDD access 2003 via PHP.

voilà le plan d'exécution de mon programme
Exécution requete principale
Tant pas EOF requete principale {
Exécution requete 1 selon valeur retournée par req princpale
Exécution requete 2 selon valeur retournée par req princpale
Exécution requete 3 selon valeur retournée par req princpale
Exécution requete 4 selon valeur retournée par req princpale
Exécution requete 5 selon valeur retournée par req princpale
Requete principale.enregistrement_suivant()
}

Quand j'exécute l'ensemble je ne reçois pas toutes les lignes. Normalement je dois avoir environ 30 lignes alors que j'ai souvent une dizaine de lignes et le dernière ligne n'est jamais complète.
À priori j'ai pensé que ça pourra être un problème de buffering !! j'ai penché un peu mais je n'ai rien pu faire

Si vous pouvez m'aider ou me donner des pistes ça sera très gentil.

Merci d'avance


while (!$recordSet->EOF) { //Requete principale ?>

<tr class="a">
<? //Date ?>
<? $dat = substr($recordSet->fields[0],8,2).'/'.substr($recordSet->fields[0],5,2).'/'.substr($recordSet->fields[0],0,4); ?>
<td align="center"><?php echo '<b>'.$dat.'</b>';?></td>


<td align="center"><?php echo $recordSet->fields[2];?></td>
<td align="center"><?php echo $recordSet->fields[1];?></td>
<? //Répartition des temps ?>

<?

$rmod = "select round(sum(temps)), famille
from saisie, type
where saisie.type like type.type
and jour like #".$recordSet->fields[0]."#
and secteur like '".$secteur."'
and type.famille like 'MOD'
group by famille";

$rmos = "select round(sum(temps)), famille
from saisie, type
where saisie.type like type.type
and jour like #".$recordSet->fields[0]."#
and secteur like '".$secteur."'
and type.famille like 'MOS'
group by famille";

$rmoi = "select round(sum(temps)), famille
from saisie, type
where saisie.type like type.type
and jour like #".$recordSet->fields[0]."#
and secteur like '".$secteur."'
and type.famille like 'MOI'
group by famille";

$smod = &$conn->Execute($rmod);
$smos = &$conn->Execute($rmos);
$smoi = &$conn->Execute($rmoi);

echo '<td align="center">'.$smod->fields[0].'</td>';
echo '<td align="center">'.$smos->fields[0].'</td>';
echo '<td align="center">'.$smoi->fields[0].'</td>';
echo '<td align="center">'.($smod->fields[0]+$smos->fields[0]+$smoi->fields[0]).'</td>';
echo '</tr>';

$smod->Close();
$smos->Close();
$smoi->Close();

$recordSet->MoveNext();
}
}
$recordSet->Close();
$conn->Close();


QuiPhenix le 01 aout 2008 à 17h09
Bonjour,

C'est une vérification élémentaire mais au cas où: si vous affichez les requêtes et les exécutez une a une dans un PhpMyAdmin ou autre, les requêtes fonctionnent bien ?

-------
[:QuiPhenix:3]
ziko1310 le 01 aout 2008 à 19h06
oui quand j'exécute les requête une à une, ça marche très bien !
ziko1310 le 08 aout 2008 à 09h19
J'ai résolu le problème.
En fait, comme je vous ai dit, c'était un problème de buffer. J'ai divisé la table affecté par les requêtes en plusieurs sous tables, et au lieu de rechercher dans la table principale, je visais juste mes sous-tables, de tella façon, je mets moins d'enregistrements dans le buffer ;)


PRODUITS

TÉLÉCHARGER - LOGICIELS

JEUX VIDÉOS

LOISIRS

01NET PRO

AVIS ET COMMENTAIRES

A PROPOS DE 01NET

publicité
>Jeu : Plants vs Zombies
Défendez votre maison en plaçant des plantes armées dans votre jardin.

Service 01net
Newsletters 01net
abonnez vous gratuitement !
  
01Informatique
01 INFORMATIQUE
L'hebdo de référence des décideurs informatiques.
Micro Hebdo
MICRO HEBDO
L'hebdo qui vous simplifie la micro
et Internet.
L'Ordinateur Individuel
L'ORDINATEUR INDIVIDUEL
Le mensuel informatique qui vous informe et vous conseille.
Nous contacter  |  Charte de confiance  |  Voir notice légale

01net.  -  01men  -  RMC  -  BFM Radio  -  BFM TV  -  TousLesPodcasts  -  01informatique.fr  -  Association RMC-BFM
Tous droits réservés © 1999 - 2009 Internext - 01net.