Problème de récupération de données de ma BDD

Fermé
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 - 19 janv. 2010 à 14:54
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 - 21 janv. 2010 à 11:20
Bonjour, J'ai créé un tableau reprennant toutes les données d'une table d'une base de données. Dans une colonne du tableau nommée "Pseudos", se trouve la liste des pseudos. Ces peudos sont cliquables afin d'envoyer le nom du pseudo à un fchier ChangeDataSecond.php. Dans ce fichier, j'ai une ligne permettant de récupérer la valeur :

$recup=$_POST['ID'];

Le problème est le suivant :
Tous les liens dans la colonne "Pseudos" envoyent la même valeur. Et pourtant, j'ai créer une variable unique pour chaque Pseudo !!!

Mon script :
<?php
$var="0";

while ($tab = mysql_fetch_array($result))

{

$identifiant=$tab[Identifiants];
...
..
.

$var++;
$$var=$identifiant;

echo "$var";

?>

<form id='formulaire' name='formulaire' method='post' action='ChangeDataSecond.php'>

<td><center><a href="javascript:document.forms['formulaire'].submit();"><input type="hidden" name="ID" value=<?php echo "$var"; ?>><?php echo "$var"; ?></a></center></td>

....
...
..
.
</tr>
<form name='formulaireModification' method='post' action='ChangeDataSecond.php'>
<?php
}
?>

</form></TABLE>


POUVEZ VOUS M'AIDER SVP ???


13 réponses

Bertrand40 Messages postés 1196 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 193
20 janv. 2010 à 14:03
Déjà tu n'as pas corrigé les diverses erreurs que je t'ai indiquées.. Donc même si la structure était bonne ça ne fonctionnerait pas..
1
Bertrand40 Messages postés 1196 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 193
19 janv. 2010 à 15:02
Salut, j'ai pas compris où se situati le pb mais il y a des fautes là :

$var = 0;
$$var = $identifiant sort d'où ?
formulaire dans ta boucle ?
echo $var;
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
19 janv. 2010 à 15:14
SALUT et MERCI !

$identifiant=$tab[Identifiants];

-->Je récupère à chaque tours dans ma boucle le nom de l'identifiant. Je me suis trompé, la colonne s'intitule Indentifiants et non pseudos.

$var++; //premier tour, $var=1
$$var=$identifiant //premier tour, création de $1 avec affectation de $identifiant

--> Permet de créer une variable à chaque tours.

$var++;
$$var=$identifiant;

RESULTATS :
$1 se voit donc affecter la première valeur de l'idendentifiant de ma table de ma BDD
$2 se voit donc affecter la deuxième valeur de l'idendentifiant de ma table de ma BDD
$3 se voit donc affecter la troisième valeur de l'idendentifiant de ma table de ma BDD
etc


PS : "echo $var;" oublie le, c'était pour un essai
0
Bertrand40 Messages postés 1196 Date d'inscription vendredi 27 mars 2009 Statut Membre Dernière intervention 27 février 2023 193
19 janv. 2010 à 15:23
J'ai corrigé qq petites choses :

<td style="text-align: center;">
<a href="javascript:document.forms['formulaire'].submit();">
<input type="hidden" name="ID" value="<?php echo $var; ?>" />
<?php echo $var; ?></a>
</td>
0

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

Posez votre question
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
19 janv. 2010 à 15:25
Je réécrie mon script proprement :

<?php

$var="0";

while ($tab = mysql_fetch_array($result))
{

$identifiant=$tab[Identifiants];
...
..
.

$var++;
$$var=$identifiant;

?>

<form id='formulaire' name='formulaire' method='post' action='ChangeDataSecond.php'>

<td><center><a href="javascript:document.forms['formulaire'].submit();"><input type="hidden" name="ID" value=<?php echo "$var"; ?>><?php echo "$var"; ?></a></center></td>

....
...
..
.
</tr>
</form>
<?php
}
?>

</form></TABLE>
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
20 janv. 2010 à 10:38
Personne pour m'aider ?
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
20 janv. 2010 à 11:10
Je me suis rendu compte dans ma boucle "while" que je ne créais pas de variables. Je Changer tout simplement le nom de la variable du N-1 tours.

Voici ma question :

Je souhaite générer des variables afin d'obtenir plusieurs variables différentes Et dans chacunes de ces variables, une donnée de ma base de données sera affectée.
Comment créer une variable svp ?
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
20 janv. 2010 à 11:41
slt
ok essaie ça voir
<table>
...
..
.

<?php

// Execution de la requete


while ($tab = mysql_fetch_array($result))
{
   $identifiant=$tab['Identifiants'];
   echo '<tr>';
   echo '<td>'; 
   echo '<a href= "ChangeDataSecond.php?ID="'.$identifiant.'>'.$identifiant.'</a>';
   echo '</td>';
   echo '</tr>';
}

?>

</TABLE>


je ne sais pas si c'est un truc pareil que t'as besoin si ce n'est pas le cas essaie de mieux expliquer car ta methode de créer n formulaire dynamiquement et avec le même nom, je ne la comprend pas très bien et je me dit que le navigateur peut s'embrouiller lors de l'envoie car il executer la methode submit du formulaire 'fomulaire' or il y'a n formulaire ayant ce nom

dlt.
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
20 janv. 2010 à 12:24
Merci pour ta participation ! Mais le problème, c'est que je dois récupérer la valeur de $identifiant dans ChangeDataSecond.php
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
20 janv. 2010 à 13:00
J'ai essayé une autre méthode : insérer les données dans un tableau. Hélas, ça ne fonctionne toujours pas :

<?php  
....
...
..
..
$nbResults = mysql_num_rows($result);
echo "Comptes : $nbResults ";
$i="0";
$cases="\"0\",";

   While ($i<$nbResults)
        {
  	        $i++;
	        $add="\"$i\",";
	        $caseNew=$cases.$add;
        }
		
$a=$caseNew;
$tableGet=array($a);

$i=0;

  while ($tab = mysql_fetch_array($result))
       
	   {
	   	 $i++;
		 
       	 $identifiant=$tab[Identifiants];
		 $tableGet[$i]=$identifiant;
		
?>		 
		 <td><center><a href="javascript:document.forms['formulaire'].submit();"><input type="hidden" name="ID" value=<?php echo "$tableGet[$i]"; ?>><?php echo "$tableGet[$i]"; ?></a></center></td>
         </tr>
		 </form>
<?php	   
	   }
?>
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
20 janv. 2010 à 14:27
Salut, j'ai oublié de te dire que ta solution ne fonctionnait pas.

Sinon, j'ai réussi à voir le problème plus facilement,
regardes ceci :

<?php
$i=0;
while ($i<6)

{
$i++;
?>

<a href="javascript:document.forms['formulaire'].submit();"><input type="hidden" name="ID" value=<?php echo "$tableGet[$i]"; ?>><?php echo "$tableGet[$i]"; ?><br>

<?php
}
?>

RESULTAT :

1
2
3
4
5
6

Tous ces liens (1, 2, 3...) envoient la même valeur, soit la dernière valeur de i (=6).
Alors que le lien nommé 1 doit envoyé 1 par exemple.
le lien nommé 2 doit envoyé 2
le lien nommé 3 doit envoyé 3
le lien nommé 4 doit envoyé 4

ça fait une journée que je suis dessus !
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
20 janv. 2010 à 14:49
Finallement, j'ai du travailler avec la méthode GET. Je n'ai pas d'autres solutions. Par contre, je ferai un cryptage lors de l'envoi avec la méthode GET. Voici mon script :

<?php

while ($tab = mysql_fetch_array($result))

{

$identifiant=$tab[Identifiants];
...
..
.
?>
....
...
..

</tr>
<td><center><a href="ChangeDataSecond.php?ID=<?php echo $identifiant;?>"><?php echo "$tableGet[$i]"; ?></center>
</td>

<?php
}
?>

</form></TABLE>

et dans mon fichier DataChangeSecond :

<?php

$recup=$_GET['ID'];
echo "$recup";
......
....
..
.
0
-RoRo- Messages postés 98 Date d'inscription dimanche 2 novembre 2008 Statut Membre Dernière intervention 14 mai 2010 1
21 janv. 2010 à 11:20
J'AI TROUVÉ LA SOLUTION SEUL AU BOUT DE 1.5 JOURS !!!!

!!! YOUPI !!!


Voici la solution si ça peut aider certains d'entres vous :

Page d'envoi :
<html>

	
<?php
.....
...
..
.

$nbResults = mysql_num_rows($result);
echo "Comptes : $nbResults ";

$i="1";
$cases="1";


?>

<TABLE BORDER=1><tr> 
<th><center>Pseudos</center></th>
<th><center>Instruments</center></th>
<th><center>Prénoms</center></th>
<th><center>Noms</center></th>
<th><center>Mots de passe</center></th>
<th><center>Adresses mail</center></th>

<?php

      While ($i<$nbResults)
           {
  	             $i++;
	             $add=",$i";
	             $caseNew=$cases.$add;
	        	 $cases=$caseNew;
           }
		
  $a=$caseNew;
  $tableGet=array($a);

  $i=0;

      while ($tab = mysql_fetch_array($result))
           {
	         	
	   	        $identifiant=$tab[Identifiants];
		        $instrument=$tab[Instruments];
				$nom=$tab[Noms];
				$prenom=$tab[Prenoms];
				$password=$tab[Passwds];
				$adressemail=$tab[AdrsMail];
			   
			    $tableGet[$i]=$identifiant;

?>
              <form name="<?php echo $i; ?>" method="post" action="ChangeDataSecond.php">
               <tr>
		       <td><a href="javascript:document.forms['<?php echo $i; ?>'].submit();"><input type="hidden" name="<?php echo $i; ?>" value="<?php echo $identifiant;?>" /><?php echo "$identifiant"; ?></href></input></a></td>
               <td><center><?php echo "$instrument" ?></center></td>
			   <td><center><?php echo "$nom" ?></center></td>
			   <td><center><?php echo "$prenom" ?></center></td>
			   <td><center><?php echo "$password" ?></center></td>
			   <td><center><?php echo "$adressemail" ?></center></td>
			  </tr>
		      </form>
		  
<?php
	   $i++;
	       }
mysql_close();

...
..
.
?>
		
		    
</table>
</html>


page de récupération :
<?php
...
..
.
while ($i<$nbResults)
   {
       $recup=$_POST[$i];
	   
       if (isset($_POST[$i]))
           {
               $recup=$_POST[$i];
               break;
           }
       $i++;
    }
	
$getID=$recup;

....
..
...
?>
0