Recuperation de données php/mysql

Résolu/Fermé
SAM_32 Messages postés 14 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 29 décembre 2008 - 5 mars 2008 à 16:41
 Utilisateur anonyme - 6 mars 2008 à 10:30
Bonjour,
je souhaite recuperer les données que me retourne ma requete, mais je n'arrive qu'a "attraper" la premiere ligne.
Auriez vous une idée de ce qu'il faut que je modifie ?

$requete = "SELECT * FROM promotion";

$resultatRequete = mysql_query($requete, $connexionMYSQL);

$resultats = mysql_fetch_array($resultatRequete);

$numligne = mysql_num_rows($resultatRequete);

for ($i=0 ; $i < $numligne ; $i++){

$id = $resultats['identifiant_promotion'];
$li = $resultats[$i][0];
$te = $resultats[$i];

echo $id." ";
echo $li." ";
echo $te;
echo "<br>";
}

cela m'affiche :

14 1 14
14 C Collines.jpg
14 p promotion
14

Merci par avance pour l'aide apportée
A voir également:

12 réponses

eee.eee Messages postés 69 Date d'inscription samedi 12 janvier 2008 Statut Membre Dernière intervention 15 septembre 2009 20
5 mars 2008 à 16:52
Normal!
mysql_fetch_array() fonctionne de façon assez particulière, et passe automatiquement à la ligne suivante lors de son prochain appel. Il rend un tableau et sinon il rend false lorsque tout les résultats sont donnés. Il faut écrire:

$resultatRequete = mysql_query($requete, $connexionMYSQL);
while($resultats = mysql_fetch_array($resultatRequete))
{
$id = $resultats['identifiant_promotion'];
echo $id." ";
echo "<br>";
}
0
SAM_32 Messages postés 14 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 29 décembre 2008
5 mars 2008 à 17:11
pourrai tu m'expliquer, si tu as le temps, ce que fais l'instruction

while($resultats = mysql_fetch_array($resultatRequete))
0
hanane_1 Messages postés 95 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 5 avril 2010 2
5 mars 2008 à 17:18
bonjour
while($resultats = mysql_fetch_array($resultatRequete))
indique que tand quil existe des enregistremment dans la table il va afficher
les enregistremment du champ
identifiant_promotion
:)
;
0
SAM_32 Messages postés 14 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 29 décembre 2008
5 mars 2008 à 17:30
Sans oser abuser de votre gentillesse et de votre temps,
j'aimerai récupérer les lien_photo afin de pouvoir les afficher.
j'avais pensé a utiliser les variables de session pour stocker les résultats et donc afficher les 4 images qui sont stockées.

while($resultats = mysql_fetch_array($resultatRequete))
{
$id = $resultats['identifiant_promotion'];
echo $id." ";
echo "<br>";
$i = 0;
$_SESSION['photo_promo'][$i] = $resultats['lien_photo'];
echo $_SESSION['photo_promo'][$i];
echo "<br>";

}

j'ai donc :
14
Collines.jpg
15
sebyan.JPG
16
Nénuphars.jpg
17
Hiver.jpg

mais en sortant du while, et c'est normal, quand je fais

echo $_SESSION['photo_promo'];

j'ai jsute Hiver.jpg d'afficher

comment puis je les mettre dans un tableau afin de les réutiliser ?

merci par avance
0
Utilisateur anonyme
5 mars 2008 à 17:34
Tu n'incrémentes pas la valeur de i dans ta boucle. C'est donc normal que tu n'ais que la dernière image dans ton tableau.

$i = 0;

while($resultats = mysql_fetch_array($resultatRequete))
{
$id = $resultats['identifiant_promotion'];
echo $id." ";
echo "<br>";
$_SESSION['photo_promo'][$i++] = $resultats['lien_photo'];
echo $_SESSION['photo_promo'][$i-1];
echo "<br>";

}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SAM_32 Messages postés 14 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 29 décembre 2008
5 mars 2008 à 17:46
Avec le dernier code donné,
j'obtiens comme resultats
14
C
15
s
16
N
17
H

En fait, je voudrais recuperer les lien_photo, pour les stocker dans une variable de sessions, afin d'afficher sur une vue
(vueElementaire_accueil.php) les differentes photos

<?php

echo '<IMG SRC="Photos/'.$_SESSION[indice tableau][indice de la photo1].'" BORDER="0">';

echo '<IMG SRC="Photos/'.$_SESSION[indice tableau][indice de la photo2].'" BORDER="0">';
echo '<IMG SRC="Photos/'.$_SESSION[indice tableau][indice de la photo3].'" BORDER="0">';
echo '<IMG SRC="Photos/'.$_SESSION[indice tableau][indice de la photo4].'" BORDER="0">';


?>

désolé si je suis pas clair
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
5 mars 2008 à 17:52
Salut,

Essai peut-être :

$i = 0;

while($resultats = mysql_fetch_array($resultatRequete))
{
$id = $resultats['identifiant_promotion'];
echo $id." ";
echo "<br>";
$_SESSION['photo_promo'][$i] = $resultats['lien_photo'];
echo $_SESSION['photo_promo'][$i];
echo "<br>";

$i++;
}
0
SAM_32 Messages postés 14 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 29 décembre 2008
5 mars 2008 à 18:06
non cela ne marche pas :/
LA véritable question est :
Une fois la boucle effectuée, comment fais-je pour que les données récupérées (a savoir les lien photo) soit dans un tableau afin que je puisse les afficher ?

J'utilise la méthode de conception MVC (du moins j'essaye !), mon action qui récupère les données (lien photo) s'appelle action_initialiser (là ou il y a la boucle pour récupérer les liens) et avec le contrôleur, qui exécute l'action, j'envoie les lien photo (qui sont dans une variable de session) a afficher sur ma vue, vueElementaire_accueil.php où serait une sorte d'

echo '<IMG SRC="Photos/'.$_SESSION['affichage'][1].'" BORDER="0">';

avec ou sans boucle d'affichage.

Je pense avoir expliqué le plus clairement possible le problème auquel je suis confronté mais bon, même moi je ne me trouve pas clair des fois :/
0
Utilisateur anonyme
5 mars 2008 à 18:17
Essaye ça : $_SESSION['photo_promo']['$i'] = $resultats['lien_photo'];
0
SAM_32 Messages postés 14 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 29 décembre 2008
5 mars 2008 à 18:42
non, ça ne marche pas :/
0
chico200987 Messages postés 791 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 30 juillet 2018 143
5 mars 2008 à 19:18
Essaie peut-être de contourner il y a peut-être des conditions lors de l'utilisation de variable de sessions que je ne vois pas (on peut les utiliser directement comme tableau ? je pencherai pour oui mais ..)

Donc remplis tes liens avec un tableau et ensuite ajoute le dans ta variable de session. Du genre :

$i = 0;

while($resultats = mysql_fetch_array($resultatRequete))
{
$id = $resultats['identifiant_promotion'];
echo $id." ";
echo "<br>";
$monTab[$i] = $resultats['lien_photo'];
$i++;
}

$_SESSION['photo_promo'] = $monTab;

Puis sur ton autre page :

$i = sizeof($tab) - 1 ;

while ($j < $i)
{
echo $_SESSION['photo_promo'][$j];
echo "<br>";
}
0
SAM_32 Messages postés 14 Date d'inscription mercredi 5 mars 2008 Statut Membre Dernière intervention 29 décembre 2008
6 mars 2008 à 10:18
Merci pour la première partie, j'arrive maintenant a enregistrer le tableau de mes liens dans la variable de session,
mais avec la deuxième partie du code, j' n'arrive pas a afficher ce que je veux :/

j'obtiens une boucle infini qui n'affiche pas les photos puisque cela ne trouve pas les liens ...

alors j'avais pensé a faire une boucle comme ça :

dans mon action =>
$numligne = mysql_num_rows($resultatRequete);

$_SESSION['nbresultats'] = $numligne;

$i = 0;

while($resultats = mysql_fetch_array($resultatRequete))
{
$id = $resultats['identifiant_promotion'];
echo $id." ";
echo "<br>";
$monTab[$i] = $resultats['lien_photo'];
$i++;
}


$_SESSION['photo_promo'] = $monTab;

et pour afficher mes photos, dans ma deuxieme page :

$resTableau = $_SESSION['nbresultats'];

for ($i = 0 ; $i < $resTableau ; $i++)
{
echo '<IMG SRC="Photos/'.$_SESSION['photo_promo'][$i].'" height="40%" width="40%" BORDER="0">';
echo "<br>";
}

Cela m'affiche les photos. Mais je sais pas si c'est optimisé x)
Si vous avez quelque chose à me proposer avant que je ne mette "résolu", je suis tout ouïe !
En tout cas merci beaucoup pour votre aide :D
0
Utilisateur anonyme
6 mars 2008 à 10:30
Non rien à ajouter ton code est nickel. Il manquait juste l'incrément dans la boucle de chico pour que tu n'ais plus de boucle infini.

Bonne continuation
0