manque 1 enregistrement

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : manque 1 enregistrement

par falgan » 19 oct. 2006, 16:43

le code que je te proposait correspondait a TOUT ce qui etait necessaire donc comme on te le propose par la suite, ne pas faire un fetch puis ensuite la boucle,
il te suffisait de faire un copier/coller à l'adaptation près.
En fait le principe est simple:
1. ecrire la requete
2. l'executer
3. verifier que le resultat comporte des lignes
4. parcourir les ligne en faisant le traitement necessaire

re

par toujoursenretard » 19 oct. 2006, 13:01

je posterai ca ce soir l'ai pas avec moi et je ferai un ou deux tests avant histoire de verifier tout ce que tu me dis ...
Merci encore

par Ryle » 19 oct. 2006, 12:54

Ben l'idée, c'est de ne faire le fetch qu'au moment où tu as besoin de lire tes enregistrements, c'est à dire dans ta boucle. Tu devrais donc normalement pouvoir te passer de celui-ci :
$query_Recordset = "SELECT annuaire.ID, annuaire.nom, annuaire.lien_lang, annuaire.classement,annuaire.rubrique, rubrique.ID 
FROM annuaire, rubrique where annuaire.rubrique='Art Culture & Patrimoine' and rubrique.rubrique=annuaire.rubrique and validation='v'"; 
$Recordset = mysql_query($query_Recordset, $livre_dor) or die(mysql_error()); 
// cette ligne ci lit le premier enregistrement (qui te manque ensuite) et n'a pas l'air d'être utilisée. 
// $row_Recordset = mysql_fetch_assoc($Recordset); 
$totalRows_Recordset = mysql_num_rows($Recordset);  
Si cela génère des erreurs ou ne ramène pas l'enregistrement manquant, c'est que tu as un problème dans le reste du code... montre nous dans ce cas la boucle dans laquelle tu récupères les données :)

re

par toujoursenretard » 19 oct. 2006, 12:19

ok mais je fais comment ensuite pour recuperer mes enregistrements sans mon fetch ...

Re: manque 1 enregistrement

par sadeq » 19 oct. 2006, 11:39

bonjour,
avec cette requete il me manque un enregistrement, je sais que c'est du au $totalrows_recordset, parce que ca decale le pointeur de 1 je crois.
Mais je ne sais pas comment faire pour quand meme recuperer la valeur qui manque ...
Voici mon code :

$query_Recordset = "SELECT annuaire.ID, annuaire.nom, annuaire.lien_lang, annuaire.classement,annuaire.rubrique, rubrique.ID FROM annuaire, rubrique where annuaire.rubrique='Art Culture & Patrimoine' and rubrique.rubrique=annuaire.rubrique and validation='v'";
$Recordset = mysql_query($query_Recordset, $livre_dor) or die(mysql_error());
$row_Recordset = mysql_fetch_assoc($Recordset);
$totalRows_Recordset = mysql_num_rows($Recordset);
Merci d'avance

Tu peux remarquer que tu fais déjà un mysql_fetch_assoc() qui lit le premier, c'est pourquoi si tu enchaines avec une boucle while qui fait aussi un fetch elle commencera à partir du second.

Correction : efface le mysql_fetch_assoc() qui se trouve avant mysql_num_rows().

par Vikchill » 19 oct. 2006, 11:25

Peux-tu montrer le code qui pose problème?

re

par toujoursenretard » 19 oct. 2006, 11:19

ma boucle existe et est comme la tienne . Le probleme est que ca me zappe le premier enregistrement qui doit etre afficher par la requete ( il m'enleve l'enregistrement 0 )
j'avais lu qu'il y avait un pb quand on utilisait mysql-numrows ... et je n'arrive pas a remettre la main dessus ...

par falgan » 13 oct. 2006, 13:55

je ne comprends pas trop ton code, tu veux recuperer tous les enregistrement mais tu ne fais qu'un mysl_fetch_assoc donc tu ne peux recupérer qu'un enregistrement

avec un truc dans ce genre ca devrait mieux marcher:
<?php 
$query_Recordset = "SELECT annuaire.ID, annuaire.nom, annuaire.lien_lang, annuaire.classement,annuaire.rubrique, rubrique.ID 
FROM annuaire, rubrique 
WHERE annuaire.rubrique='Art Culture & Patrimoine' 
AND rubrique.rubrique=annuaire.rubrique and validation='v'";

$Recordset = mysql_query($query_Recordset, $livre_dor) or die(mysql_error());
//tu verifie la présence d'enregistrement dans le resultat
if(mysql_num_rows($Recordset)!=0){
   //tu parcours les enregistrements retournés
   while($row_Recordset = mysql_fetch_assoc($Recordset){
     //et la tu fait ton traitement en utilisant $row_Recordset
   }
}
?>

manque 1 enregistrement

par toujoursenretard » 11 oct. 2006, 13:56

bonjour,
avec cette requete il me manque un enregistrement, je sais que c'est du au $totalrows_recordset, parce que ca decale le pointeur de 1 je crois.
Mais je ne sais pas comment faire pour quand meme recuperer la valeur qui manque ...
Voici mon code :

$query_Recordset = "SELECT annuaire.ID, annuaire.nom, annuaire.lien_lang, annuaire.classement,annuaire.rubrique, rubrique.ID FROM annuaire, rubrique where annuaire.rubrique='Art Culture & Patrimoine' and rubrique.rubrique=annuaire.rubrique and validation='v'";
$Recordset = mysql_query($query_Recordset, $livre_dor) or die(mysql_error());
$row_Recordset = mysql_fetch_assoc($Recordset);
$totalRows_Recordset = mysql_num_rows($Recordset);
Merci d'avance