Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1199 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  comment savoir quand on est à la fin de la base?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment savoir quand on est à la fin de la base?

n°1781743
drazor
Posté le 03-09-2008 à 10:02:03  profilanswer
 

Est ce que quelqu'un sait comment on fait pour savoir si l'on est à la fin de la bdd, un peu comme le "feof" dans un fichier?  
 
Je doit scanné tout les enregistrement de ma base mais je ne sais pas comment clôturer ma boucle.  
 
merci par avance.

mood
Publicité
Posté le 03-09-2008 à 10:02:03  profilanswer
 

n°1781744
FlorentG
Unité de Masse
Posté le 03-09-2008 à 10:03:18  profilanswer
 

Hein ? [:pingouino] Y'a rien à faire de spécial. Tu fais comment pour lister les enregistrements ? Poste un peu de code

n°1781749
MagicBuzz
Posté le 03-09-2008 à 10:06:20  profilanswer
 

j'adore le "feof" :D
 
y sont au courant les devs de PHP que le "F" de la fin de "EOF" ça veut déjà dire "FILE" ? que donc "FILE END OF FILE" ça veut rien dire ? :o
 
c'est pas parceque les noms de fonction en C sont débiles qu'il faut reprendre les mêmes :o
 
bon, ceci mis à part :
 

Code :
  1. while ($row = mysql_fetch_assoc($result)) {
  2.    echo $row['firstname'];
  3.    echo $row['lastname'];
  4.    echo $row['address'];
  5.    echo $row['age'];
  6. }


 
note le "=" et non le "==".
 
tu as la réponse.
le fetchrow retourne soit un array contenant les champs, soit un booléen "false" quand tu arrives à la fin, ce qui te fait donc sortir du while


Message édité par MagicBuzz le 03-09-2008 à 10:07:24
n°1781799
drazor
Posté le 03-09-2008 à 10:52:58  profilanswer
 

Merci de votre réponse rapide.
 
voici un peu de code

Code :
  1. $sql = 'SELECT * '. ' FROM `architectes2` WHERE numref =' . $i;
  2. $result=mysql_query($sql); // on soumet la requete
  3. $row = mysql_fetch_assoc($result);
  4. echo $row["nom1"];echo '   ';
  5. echo $row["nom2"];echo ' ';
  6. echo $row["numref"]; $email= $row["email"];echo "  ".$email;echo '<br />';


 
si je suis les conseil de MagicBuzz cela devrai donner:
 
 

Code :
  1. while ($row = mysql_fetch_assoc($result))
  2. {
  3. $sql = 'SELECT * '. ' FROM `architectes2` WHERE numref =' . $i;
  4. $result=mysql_query($sql); // on soumet la requete
  5. $row = mysql_fetch_assoc($result);
  6. echo $row["nom1"];echo '   ';
  7. echo $row["nom2"];echo ' ';
  8. echo $row["numref"]; $email= $row["email"];echo "  ".$email;echo '<br />';
  9. }


 
désolé pour l'indentation à la noix ...
Magicbuzz comment fait tu pour avoir la coloration syntaxique dans ton code sur ce forum??

n°1781801
MagicBuzz
Posté le 03-09-2008 à 10:53:37  profilanswer
 

[ code = php ]

n°1781804
MagicBuzz
Posté le 03-09-2008 à 10:55:03  profilanswer
 

Ca devrait plutôt donner ça :

Code :
  1. $sql = 'SELECT * '. ' FROM `architectes2` WHERE numref =' . $i;
  2. $result=mysql_query($sql); // on soumet la requete
  3.  
  4. while ($row = mysql_fetch_assoc($result))
  5. {
  6.  echo $row["nom1"];
  7.  echo '   ';
  8.  echo $row["nom2"];
  9.  echo ' ';
  10.  echo $row["numref"];    
  11.  $email= $row["email"];
  12.  echo "  ".$email;
  13.  echo '<br />';
  14. }


Message édité par MagicBuzz le 03-09-2008 à 10:55:27
n°1781819
drazor
Posté le 03-09-2008 à 11:03:00  profilanswer
 

il faut peut être que j'incrémente mon $i!

n°1781820
anapajari
s/travail/glanding on hfr/gs;
Posté le 03-09-2008 à 11:05:26  profilanswer
 

non il faudrait que tu apprennes à faire une jointure pour éviter de refaire une requete dans ta boucle.


Message édité par anapajari le 03-09-2008 à 11:05:33

---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1781826
drazor
Posté le 03-09-2008 à 11:10:20  profilanswer
 

ben je gougeulise sa et je reviens vers vous!

n°1781831
drazor
Posté le 03-09-2008 à 11:21:02  profilanswer
 

A part stocker la table base dans un tableau je vois pas comment faire pour pas faire de requête dans une boucle.

mood
Publicité
Posté le 03-09-2008 à 11:21:02  profilanswer
 

n°1781849
MagicBuzz
Posté le 03-09-2008 à 11:41:15  profilanswer
 

cf ma signature
 
c'est un peu long à lire, mais tu auras toutes les explications pour faire des jointures, et pourquoi il vaut mieux faire des jointures


Message édité par MagicBuzz le 03-09-2008 à 11:41:26
n°1781873
drazor
Posté le 03-09-2008 à 12:01:39  profilanswer
 

une jointure je sais ce que c'est mais là je ne vois pas comment l'appliquer!

n°1781884
Marty_McFl​y
Nan hé ho, d'accord?
Posté le 03-09-2008 à 12:09:31  profilanswer
 

petites questions:
 
nom1, nom2, numref et email sont des champs de la table architectes2? (si oui, t'as pas forcément besoin d'une jointure)
 
est ce que numref est une PK ? (si oui, le while ne sert plus vraiment à grand chose)
 
est ce que tu veux le nom1, nom2, numref et email de TOUS les enregistrements de ta table? (si oui: enleve la clause where de ta requete)


Message édité par Marty_McFly le 03-09-2008 à 12:13:07

---------------
arg(z) = pi /2 donc z = i, moi je prends pas
n°1781888
drazor
Posté le 03-09-2008 à 12:12:10  profilanswer
 

oui.

n°1781889
MagicBuzz
Posté le 03-09-2008 à 12:13:16  profilanswer
 

while ($row = mysql_fetch_assoc($result))
 
=> ton $result il vient de quoi comme requête ?
 
c'est cette requête qu'il faut joindre avec 'SELECT * '. ' FROM `architectes2` WHERE numref =' . $i;

n°1781890
Marty_McFl​y
Nan hé ho, d'accord?
Posté le 03-09-2008 à 12:13:25  profilanswer
 

désolé, j'ai édité entre temps...


---------------
arg(z) = pi /2 donc z = i, moi je prends pas
n°1781895
drazor
Posté le 03-09-2008 à 12:18:25  profilanswer
 

J'ai ma table architecte2 qui est peuplée, Je veux scanné ma table pour récupérer le champ email de chacun envoyer le mail et passer a l'enregistrement suivant récupérer le mail ... et arriver à la fin de ma table et dire terminer.Mon numref et une clef primaire autoincrement.


Message édité par drazor le 03-09-2008 à 12:18:45
n°1781902
Marty_McFl​y
Nan hé ho, d'accord?
Posté le 03-09-2008 à 12:22:56  profilanswer
 

ok, parfait.
 
ta requete est donc erronée: si tu indiques un numref (qui est donc pk autoincrement) tu n'auras qu'un seul et unique enregistrement en réponse (ou 0, eventuellement). En revanche, si tu lui précises pas de filtre, il te renvoie la liste entiere des enregistrements, que tu parcours avec le

Code :
  1. while( $row = mysql_fetch_assoc($result) )


 
il te reste donc à écrire ton traitement à l'intérieur du { } du while.


Message édité par Marty_McFly le 03-09-2008 à 12:25:05

---------------
arg(z) = pi /2 donc z = i, moi je prends pas

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  comment savoir quand on est à la fin de la base?

 

Sujets relatifs
[SQL] Créer une base/une tableJavscript : Savoir si le curseur est a l'exterieur d'un element
Erreur création base de donnéesAide pour schéma de base de donnée
Dédoublonnage Base AccesAccess 2000 - Savoir si un état est chargé ou non
Cours et exercices : Base de donnéesSelect base de données
[Oracle] Savoir sur quelle base on se trouveDelphi : Savoir si une clé existe dans la base de registre ?
Plus de sujets relatifs à : comment savoir quand on est à la fin de la base?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR