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

-RoRo- Messages postés 103 Statut Membre -  
-RoRo- Messages postés 103 Statut Membre -
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 1344 Statut Membre 194
 
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 1344 Statut Membre 194
 
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 103 Statut Membre 1
 
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 1344 Statut Membre 194
 
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 103 Statut Membre 1
 
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 103 Statut Membre 1
 
Personne pour m'aider ?
0
-RoRo- Messages postés 103 Statut Membre 1
 
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 344 Statut Membre 46
 
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 103 Statut Membre 1
 
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 103 Statut Membre 1
 
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 103 Statut Membre 1
 
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 103 Statut Membre 1
 
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 103 Statut Membre 1
 
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