Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/06/2006, 15h44   #1
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 152
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 152
Points : 28
Points : 28
Envoyer un message via ICQ à 18Marie Envoyer un message via AIM à 18Marie Envoyer un message via MSN à 18Marie
Par défaut [SQL] requete sql dans php

salut,

En fait, je fais une requete sql dans php et je veux utiliser le resultat de cette requete 2 fois mais le php execute juste une fois, voila par exemple un petit exemple, juste imprimer le resultat 2 fois:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <?php
    mysql_connect("localhost", "root", "");
    mysql_select_db("bdm");
    $reponse1 = mysql_query("SELECT * FROM ts ");
 while     ($donnees11 = mysql_fetch_array($reponse1))
             {
               echo $donnees11['site'];  
      }
 
while ($donnees11 = mysql_fetch_array($reponse1))
       {
       echo $donnees11['site'];  
      }
      ?>
Il imprime seulement une fois, le porbleme que je ne veux pas fait tant de requetes que je veux utiliser, ce n'est pas logique de faire pls requetes.

Merci,
18Marie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 16h01   #2
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
travaille sur une copie de $reponse1.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 16h07   #3
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Je dirai teste avec cette fonction : Comment se repositionner sur le premier enregistrement d'une requête Select
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 17h37   #4
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 152
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 152
Points : 28
Points : 28
Envoyer un message via ICQ à 18Marie Envoyer un message via AIM à 18Marie Envoyer un message via MSN à 18Marie
Merci pour les réponses;
J'ai essaye de me positionner sur le premier enregistrement avec:
@mysql_data_seek($reponse1,0);
$donnees11 = @mysql_fetch_assoc($reponse1);
mais dans ma table il y a 4 enregistrements et tjs il affiche tous sans le premier c.a.d les " derniers.

Alors...j'utilise la derniere version de wamp5
18Marie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 17h42   #5
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
je dirai que tout simplement, tu passes une seule fois dans le while qui prend tes valeurs dans ta BDD, tu stockes tout ca dans un tableau, et apres tu travailles, autant de fois que tu veux sur le tableau.

Code :
1
2
3
4
5
6
7
    mysql_connect("localhost", "root", "");
    mysql_select_db("bdm");
    $reponse = mysql_query("SELECT * FROM ts ");
    while( $donnees = mysql_fetch_array($reponse))
    {
               $tab[] = $donnees['site'];  
     }
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 18h05   #6
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 152
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 152
Points : 28
Points : 28
Envoyer un message via ICQ à 18Marie Envoyer un message via AIM à 18Marie Envoyer un message via MSN à 18Marie
Merci pour ton aide, mais $donnees n'est pas déjà un array....et comment apres je veux lire l'array, je sais avec while mais commet je l'arrete??
18Marie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 18h12   #7
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
TU fais une boucle for de i = 0 à la taille du tableau
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 19h28   #8
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 152
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 152
Points : 28
Points : 28
Envoyer un message via ICQ à 18Marie Envoyer un message via AIM à 18Marie Envoyer un message via MSN à 18Marie
Mais mi je ne sais pas la taille de tableau comme c'est une requete de BD qui change tt le temps saus si je fais une requette avec count et dans ce cas la j'aurai 2 requette, ca va pas etre lourd.
Tu veux dire
while( $donnees = mysql_fetch_array($reponse1))
{
$tab[] = $donnees['site'];
}
(for $i=0;$i<taille_tableau;$i++)
{echo $tab[i];
}
18Marie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 22h24   #9
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Code :
1
2
3
4
5
6
7
8
9
while( $donnees = mysql_fetch_array($reponse1))
{
     $tab[] = $donnees['site'];
}
 
for( $i=0 ; $i<count($tab) ; $i++)
{
     echo $tab[i];
}
exactement c'est ça.

il faut te dire que parcourir le fetch array, c'est un peu long et donc le faire une seul fois, c'est beaucoup mieux, comme ca tu embete plus ta BDD apres.

par contre un for sur un tableau, ca va vite en PHP.

Voila, j'espère qu'on a répondu a toute tes questions.
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2006, 22h30   #10
Nouveau Membre du Club
 
Inscription : mars 2006
Messages : 152
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 152
Points : 28
Points : 28
Envoyer un message via ICQ à 18Marie Envoyer un message via AIM à 18Marie Envoyer un message via MSN à 18Marie
Merci bcp,

Ca fonctionne maintenant.

Merci
18Marie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/06/2006, 22h45   #11
Membre éprouvé
 
Homme Cyrill Gremaud
Ingénieur systèmes et réseaux
Inscription : août 2005
Messages : 1 002
Détails du profil
Informations personnelles :
Nom : Homme Cyrill Gremaud
Âge : 23
Localisation : Suisse

Informations professionnelles :
Activité : Ingénieur systèmes et réseaux
Secteur : Enseignement

Informations forums :
Inscription : août 2005
Messages : 1 002
Points : 429
Points : 429
n'oublie pas le merci !
__________________
Il y a 10 types de personnes sur la planète. Ceux qui comprennent le binaire et ceux qui ne le comprennent pas...
cyrill.gremaud est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h22.


 
 
 
 
Partenaires

Hébergement Web