probleme j y arrive pas..... Need help....

Gregoriz
Invité n'ayant pas de compte PHPfrance

31 juil. 2005, 21:21

edit mere-teresa : bon j'ai remis le code en couleurs, si ça tente quelqu'un d'aider...


bonjour, j ai un soucis, je n arrive pas a faire fonctionner ma page....
Si qq un voit un erreur please help me ....

>>>>>>> Mon principale pb rédide dans le fait que je liste les données dans un tableau afin de faire un sondage.
On peut voter pour chaque items d'ou le radiobutton.
Mais au click tous mes items sont selectionnés et tous ont un vote.

.... j y arrrrrrive pooooooooo.......... help !


<?


$host = 'localhost';
//$user = 'root';
//$pass = '';
//$db = '';


$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$select = "SELECT * FROM laBase  WHERE categorie='2' ORDER BY id DESC ";
$result = mysql_query($select,$link) or die(mysql_error());
if($result) $number = mysql_num_rows($result);
else $number = 0;
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>


  <table  border="0" cellpadding="2" cellspacing="2">
  <tr>
      <td>>>></td>
      <td align="left" valign="middle">Lots propos&eacute; : </td>
      <td align="left" valign="middle">Valeur</td>
      <td align="left" valign="middle">Graph : </td>
      <td align="left" valign="middle">Nbs votes : </td>
    </tr>
	<tr><td colspan="5" height="1" bgcolor="#000000"></td></tr>

	 
	<br>
	<?

for ($gro = 0; $gro < $number; $gro++)
{
		$theid = mysql_result($result,$gro,"id");
		$categorie = mysql_result($result,$gro,"categorie");
		$valeur = mysql_result($result,$gro,"valeur");
		$vote = mysql_result($result,$gro,"vote");
		$intitule = mysql_result($result,$gro,"intitule");
		
	?>
	 <form name="lots_bolw" method="post" action="">

	 <tr align="left" valign="top">
	
 <td> <input name="reponse" type="radio" value="<? echo $theid;?>"> 
 <i>
      </i></td>
      
      <td><i>
	     <? echo $intitule ?>
	   </i></td>
	   <td><? echo $valeur ?></td>
	   
      <td>
	  
	  <table>
   <tr>
   	<td width="<?
$longueur=50;
$longueur0=$vote*100/$longueur;
$longueur0=round($longueur0);
	
	
	 echo $longueur0; ?>"  bgcolor="#0000FF" height="100%">&nbsp;</td>
	 
   </tr>
	  </table>
	  
	  </td>
	  
      <td><i><? echo $vote; ?>  votes </i></td>
    </tr>
  
  
	 <tr align="right" valign="top">
	   <td colspan="5"><i>
	   </i>
	     <i>
	     <input name="id" type="text" id="id" value="<? echo $theid; ?>">
	     </i>
	     <?php
if (empty($reponse)) {
?>
<input name="bitch" type="submit" class="input_checkbox2" value="OK" >
<?      //onclick="javascript:window.reload()"
}

else {
echo "<p>Merci de nous avoir transmis les donn&eacute;es !</p>\n";
if (isset($reponse)){
$new_vote=$vote+1;

$req=" UPDATE labase SET vote='$new_vote' WHERE id='$theid'"; 
$result2= mysql_query($req,$link) or die(mysql_error());
echo $req;



}
}




?></td></tr>
   
  
  <tr><td height="1" colspan="5" bgcolor="#000000"></td></tr>
</form><? }?>	

</table>
</body>
</html>

Mammouth du PHP | 19672 Messages

31 juil. 2005, 21:35

Plusieurs choses :
- 1 - : LISEZ les RÈGLES
- 2 - : Attarde-toi en particulier sur la première ligne de l'article 3 :!:
- 3 - : En générant des éléments de formulaire dns une boucles, si tu n'y prends pas garde, le même élément aura le même nom à chaque tour de boucle, donc name="xyz" sera reproduit à chaque tour. Il faut que tu te serves du pointeur.
- 4 - : Aérer son code, c'est une bonne chose, l'éparpiller à tout vent, c'est plus pénible à lire :
- 5 - : tes balises <form> et </form> ne sont pas à la bonne place et rendent ton code invalide.

Voici comment il faudrait écrire proprement :
<?
$host = 'localhost';
//$user = 'root';
//$pass = '';
//$db = '';

$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$select = "SELECT * FROM laBase WHERE categorie='2' ORDER BY id DESC ";
$result = mysql_query($select,$link) or die(mysql_error());
if($result)
{
    $number = mysql_num_rows($result);
}
else
{
    $number = 0;
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="lots_bolw" method="post" action="">
  <table border="0" cellpadding="2" cellspacing="2">
    <tr>
      <td>>>></td>
      <td align="left" valign="middle">Lots proposé : </td>
      <td align="left" valign="middle">Valeur</td>
      <td align="left" valign="middle">Graph : </td>
      <td align="left" valign="middle">Nbs votes : </td>
    </tr>
    <tr>
      <td colspan="5" height="1" bgcolor="#000000"></td>
    </tr>
<?
for ($gro = 0; $gro < $number; $gro++)
{
    $theid = mysql_result($result,$gro,"id");
    $categorie = mysql_result($result,$gro,"categorie");
    $valeur = mysql_result($result,$gro,"valeur");
    $vote = mysql_result($result,$gro,"vote");
    $intitule = mysql_result($result,$gro,"intitule");

    $longueur=50;
    $longueur0=$vote*100/$longueur;
    $longueur0=round($longueur0);
    ?>
    <tr align="left" valign="top">
      <td> <input name="reponse" type="radio" value="<? echo $theid;?>"><i></i></td>
      <td><i><? echo $intitule ?></i></td>
      <td><? echo $valeur ?></td>
      <td>
        <table>
          <tr>
            <td width="<? echo $longueur0; ?>" bgcolor="#0000FF" height="100%">&nbsp;</td>
          </tr>
        </table>
      </td>
      <td><i><? echo $vote; ?> votes </i></td>
    </tr>
    <tr align="right" valign="top">
      <td colspan="5"><i></i><i><input name="id" type="text" id="id" value="<? echo $theid; ?>"></i>
    <?php
    if (empty($reponse))
    {
?>
        <input name="bitch" type="submit" class="input_checkbox2" value="OK" >
<? //onclick="javascript:window.reload()"
    }
    else
    {
?>
        <p>Merci de nous avoir transmis les données !</p>
<? //onclick="javascript:window.reload()"
        if (isset($reponse))
        {
            $new_vote=$vote+1;
            $req=" UPDATE labase SET vote='". $new_vote ."' WHERE id='". $theid ."'";
            $result2= mysql_query($req,$link) or die(mysql_error());
            echo $req;
        }
    }
?>
      </td>
    </tr>
    <tr>
      <td height="1" colspan="5" bgcolor="#000000"></td>
    </tr>
<?
}
?>
  </table>
</form>
</body>
</html>
Il te reste à corriger ce problème de nom d'éléments. Fais une concaténation avec le pointeur de la boucle.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Gregoriz
Invité n'ayant pas de compte PHPfrance

31 juil. 2005, 21:40

Merci pour les infos....
Bien platement....

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

01 août 2005, 09:38

Modération : ouaip ton titre est pas vraiment explicite, si je suis fan des expressions régulières ou un boss sur les sessions ou si je pense pouvoir aider sur les tableaux, j'irais voir les posts dont le titre me parle.
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Mammouth du PHP | 543 Messages

01 août 2005, 10:16

Pareil :)