Besoin d'un génie lol pour résoudre $donnees['variable']

Besoin d'un génie lol pour résoudre $donnees['variable'] - PHP - Programmation

Marsh Posté le 21-06-2007 à 13:39:10    

voila j'ai sorti des données e ma base avec $donnees
exemple $donnees['pseudo'] équivant à blaster 59  
 
 
mais je veux faire une fonction while en incrémentant (pour avoir $donnees['1'] puis $donnees['2']
 
donc j'appelle cette variable pour incrementer $variable tel que
 
while ($variable != 12) {
echo $donnees['".$variable."'] ;  
$variable = $variable +1 ;
}
 
mais $donnees['".$variable."'] n'est pas reconnu par le php , pouvez vous m'aidez ?

Reply

Marsh Posté le 21-06-2007 à 13:39:10   

Reply

Marsh Posté le 21-06-2007 à 14:08:46    

blaster59 a écrit :

voila j'ai sorti des données e ma base avec $donnees
exemple $donnees['pseudo'] équivant à blaster 59

 


mais je veux faire une fonction while en incrémentant (pour avoir $donnees['1'] puis $donnees['2']

 

donc j'appelle cette variable pour incrementer $variable tel que

 

while ($variable != 12) {
echo $donnees['".$variable."'] ;
$variable = $variable +1 ;
}

 

mais $donnees['".$variable."'] n'est pas reconnu par le php , pouvez vous m'aidez ?

 

Oui, Bonjour.

 

C'est un peu du n'importe quoi, mais bon. On va corriger le tire.

 

Premièrement, tu devrais initialiser $variable à 0
Secondement, ce que tu fais est complètement inutile. Tu n'as pas besoin de mettre un chiffre dans des quotes.
Troisièment, voici la solution :

Code :
  1. for ($i = 0; $i < 12; $i++) {
  2. $donnees[$i] = quelquechose;
  3. }


 ou

Code :
  1. for ($i = 0; $i < count($donnees); $i++) {
  2. $donnees[$i] = quelquechose;
  3. }


Message cité 1 fois
Message édité par AlphaZone le 21-06-2007 à 14:09:36

---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 21-06-2007 à 15:09:54    

merci , je vais essayer je dirais si cela à fonctionner

Reply

Marsh Posté le 21-06-2007 à 16:23:02    

AlphaZone a écrit :

Oui, Bonjour.
 
C'est un peu du n'importe quoi, mais bon. On va corriger le tire.
 
Premièrement, tu devrais initialiser $variable à 0
Secondement, ce que tu fais est complètement inutile. Tu n'as pas besoin de mettre un chiffre dans des quotes.
Troisièment, voici la solution :

Code :
  1. for ($i = 0; $i < 12; $i++) {
  2. $donnees[$i] = quelquechose;
  3. }


 ou

Code :
  1. for ($i = 0; $i < count($donnees); $i++) {
  2. $donnees[$i] = quelquechose;
  3. }



 
Et foreach ?
 

Code :
  1. foreach($donnees as $var) {
  2. echo $var;
  3. }


 
Je rajouterais que si tu veux extraire tout $donnees['pseudo'], il faut procéder avec $donnees['pseudo'] dans foreach


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 21-06-2007 à 16:59:37    

Oops! Je l'ai zappé celui là ^^ Et pourtant ce n'est pas la première fois que je l'utilise. Honte à moi.


---------------
"Nous avons tous nos machines du temps. Celles qui nous ramènent en arrière sont les souvenirs, celles qui nous projettent en avant sont les rêves."
Reply

Marsh Posté le 21-06-2007 à 20:34:55    

aparament c'est plus compliquer enfaite ma base fait :
 
Base inventaire  
 
pseudo | 1 | 2 | 3 |
 
test07  | 3 | 1 | 4 |  
 
et la table objet
 
id | nom | type |             ( le type ici ne sert a rien)
 1 | potion | 2 |
 2 | arc | 1 |  
 
 
(en gros raccourci)  
 
j'ai d'après vous
 
for ($i = 0; $i < 12; $i++) {  
 
$reponses = mysql_query("SELECT * FROM `inventaire` WHERE `pseudo` = '".$pseudo."' LIMIT 0,1" );
    $lot = mysql_fetch_array($reponses);
 
$valeur = $lot[$i] ; // apparament cette ligne ne marche pas
 
$dabo = mysql_query("SELECT * FROM `objet` WHERE `id` = '".$valeur."' LIMIT 0,1" );
    $si = mysql_fetch_array($dabo);  
 
echo $si['nom'] ;
echo "<br />
 
}
 
et cela ne marche toujours pas

Reply

Marsh Posté le 21-06-2007 à 21:23:11    

salut,
 
premierement, il faut que tu commence ta boucle a 1 puisque dans ta table tu commence a 1.
et que ca soit < et = a 12.
 
ensuite sort $reponses et $lot de ta boucle,
tu n'a pas besoin de refaire ta requete a chaque boucle.
 
comme ca :

Code :
  1. $reponses = mysql_query("SELECT * FROM `inventaire` WHERE `pseudo` = '".$pseudo."'" );
  2.     $lot = mysql_fetch_array($reponses);
  3. for ($i = 1; $i <= 12; $i++)
  4.      $valeur = $lot[$i] ;
  5.      $dabo = mysql_query("SELECT * FROM `objet` WHERE `id` = '".$valeur."'" );
  6.      $si = mysql_fetch_array($dabo); 
  7.      echo $si['nom'] ;
  8.      echo "<br />
  9. }


 
sinon le LIMIT 0,1 ne sert a rien puisque tu ne fait appel a mysql_fetch_array qu'une seul fois.
enfin moi je ferais comme ca
 
voila, j'espere t'avoir aidé.
 
hackzor

Reply

Marsh Posté le 21-06-2007 à 21:53:27    

Arrêtez le massacre svp, for pour traiter un array y'a rien de plus sale, utilisez foreach ...


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 21-06-2007 à 21:58:23    

premierement, j'ai repris son code.
ensuite il n'a pas forcement besoin de toutes les données de sa bdd.
a priori, il n'a besoin que des valeurs numeriques, puis on ne sais pas ce qu'il a apres...
 
m'enfin...
 
Hackzor

Reply

Marsh Posté le 21-06-2007 à 22:00:43    

hackzor a écrit :

premierement, j'ai repris son code.
ensuite il n'a pas forcement besoin de toutes les données de sa bdd.
a priori, il n'a besoin que des valeurs numeriques, puis on ne sais pas ce qu'il a apres...
 
m'enfin...
 
Hackzor


LIMIT pour les valeurs.
 
Le mieux serait qu'il nous passe son code + ce qu'il veut faire comme ca on serait fixés.


---------------
"I can cry like Roger. It's just a shame I can't play like him" - Andy Murray, 2010
Reply

Marsh Posté le 21-06-2007 à 22:00:43   

Reply

Marsh Posté le 21-06-2007 à 22:05:31    

ouaip, ta raison.
 
mais ca ca devrait marcher dans un premier temps, par la suite il verra.
 
Hackzor

Reply

Marsh Posté le 22-06-2007 à 09:12:05    

bonne nouvelle et mauvaise , le scrit marche (plus d'erreur indiquez) mais le  
 
<?
echo $si['nom'] ;
?>
donnez quelque chose uniquement à partir de $i == 3 , or ma table mysql est bien remplis en 1 et en 2

Reply

Marsh Posté le 22-06-2007 à 09:16:54    

nan c'est bon j'ai rien dit , c'est une erreur de ma part , enfete c'est pas id = ".$valeur." c'est id = ".$i."

Reply

Marsh Posté le 22-06-2007 à 09:18:36    

ok bon courage pour la suite

Reply

Marsh Posté le 22-06-2007 à 09:18:47    

merci beaucoup je pense que le sujet est clos merci encore de votre aide (quel soulagement de pas devoir faire du copier / coller)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed