Recuperation de données php/mysql

[Résolu/Fermé]
Signaler
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
29 décembre 2008
-
 Utilisateur anonyme -
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

12 réponses

Messages postés
69
Date d'inscription
samedi 12 janvier 2008
Statut
Membre
Dernière intervention
15 septembre 2009
20
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>";
}
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
29 décembre 2008

pourrai tu m'expliquer, si tu as le temps, ce que fais l'instruction

while($resultats = mysql_fetch_array($resultatRequete))
Messages postés
95
Date d'inscription
dimanche 8 avril 2007
Statut
Membre
Dernière intervention
5 avril 2010
2
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
:)
;
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
29 décembre 2008

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

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>";

}
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
29 décembre 2008

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
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
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++;
}
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
29 décembre 2008

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 :/

Essaye ça : $_SESSION['photo_promo']['$i'] = $resultats['lien_photo'];
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
29 décembre 2008

non, ça ne marche pas :/
Messages postés
791
Date d'inscription
mardi 6 avril 2004
Statut
Membre
Dernière intervention
30 juillet 2018
143
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>";
}
Messages postés
14
Date d'inscription
mercredi 5 mars 2008
Statut
Membre
Dernière intervention
29 décembre 2008

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

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