Erreur de test en php
mb42
Messages postés
553
Statut
Membre
-
Neliel Messages postés 7012 Statut Contributeur -
Neliel Messages postés 7012 Statut Contributeur -
Bonjour,
pouvez me corriger mon script invantaire1.php
l'erreur est dans l'affichage de deuxième tableau
<html>
<head>
</head>
<form action="" method="post" name="form1">
<table frame="box" rules="none">
<tr>
<td>resultat de choix</span></td>
</td>
<tr>
<td>
<?php
$local=$_POST['local'];
$choix=$_POST['choix'];
$TableauRef=explode(",",$choix);
$Nb=count($TableauRef);
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from article where local='$local'";
$res=mysql_query($query);
while($ligne=mysql_fetch_row($res))
{
for($i=0;$i<$Nb;$i++){
if($TableauRef[$i]==$ligne[0])
echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
}
}
?>
</td>
</tr>
</table>
<table frame="box" rules="none">
<tr>
<td>resultat de deuximme choix</span></td>
</td>
<tr>
<td>
<?php
$local=$_POST['local'];
$choix=$_POST['choix'];
$TableauRef=explode(",",$choix);
$Nb=count($TableauRef);
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from article where local='$local'";
$res=mysql_query($query);
while($ligne=mysql_fetch_row($res))
{
for($i=0;$i<$Nb;$i++){
if($TableauRef[$i]!=$ligne[0])
echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
}
}
?>
</td>
</tr>
</table>
</form>
</body>
</html>
le script inventaire.php
<html>
<head>
<title>exercice 3</title>
</head>
<body>
<form action="inventaire1.php" method="post" name="form1">
<table frame="box" rules="none">
<td>
Local
</blockquote></td>
<td><select name="local">
<?php
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from depot";
$result=mysql_query($query);
while($ligne=mysql_fetch_row($result))
{
echo"<option value=\"$ligne[0]\">$ligne[2]</option>";
}
?>
</select></td>
</tr>
<tr>
<td>
choix
</td>
<td><input type="text" name="choix"/>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="valider" name="envoyer"/></td></tr>
</table>
</form>
</html>
est ce qu'on peut pas mettre en php test de ce genre
if($TableauRef[$i]!=$ligne[0])
le premier test marche correctement et donne de résultat juste
if($TableauRef[$i]==$ligne[0])
merci d'avance
pouvez me corriger mon script invantaire1.php
l'erreur est dans l'affichage de deuxième tableau
<html>
<head>
</head>
<form action="" method="post" name="form1">
<table frame="box" rules="none">
<tr>
<td>resultat de choix</span></td>
</td>
<tr>
<td>
<?php
$local=$_POST['local'];
$choix=$_POST['choix'];
$TableauRef=explode(",",$choix);
$Nb=count($TableauRef);
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from article where local='$local'";
$res=mysql_query($query);
while($ligne=mysql_fetch_row($res))
{
for($i=0;$i<$Nb;$i++){
if($TableauRef[$i]==$ligne[0])
echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
}
}
?>
</td>
</tr>
</table>
<table frame="box" rules="none">
<tr>
<td>resultat de deuximme choix</span></td>
</td>
<tr>
<td>
<?php
$local=$_POST['local'];
$choix=$_POST['choix'];
$TableauRef=explode(",",$choix);
$Nb=count($TableauRef);
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from article where local='$local'";
$res=mysql_query($query);
while($ligne=mysql_fetch_row($res))
{
for($i=0;$i<$Nb;$i++){
if($TableauRef[$i]!=$ligne[0])
echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
}
}
?>
</td>
</tr>
</table>
</form>
</body>
</html>
le script inventaire.php
<html>
<head>
<title>exercice 3</title>
</head>
<body>
<form action="inventaire1.php" method="post" name="form1">
<table frame="box" rules="none">
<td>
Local
</blockquote></td>
<td><select name="local">
<?php
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from depot";
$result=mysql_query($query);
while($ligne=mysql_fetch_row($result))
{
echo"<option value=\"$ligne[0]\">$ligne[2]</option>";
}
?>
</select></td>
</tr>
<tr>
<td>
choix
</td>
<td><input type="text" name="choix"/>
</td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="valider" name="envoyer"/></td></tr>
</table>
</form>
</html>
est ce qu'on peut pas mettre en php test de ce genre
if($TableauRef[$i]!=$ligne[0])
le premier test marche correctement et donne de résultat juste
if($TableauRef[$i]==$ligne[0])
merci d'avance
10 réponses
-
Pour les test, ils sont corrects... vérifie les valeurs à tester en affichant les variables avec "echo".
Par contre, je remarque ceci à plusieurs endroit...
<table frame="box" rules="none"> <tr> <td>resultat de choix</span></td> </td> <tr> <td>
Tu fermes une balise <span> sans en avoir ouvert... puis derrière tu refermes deux fois de suite la balise <td>
-
les balises de ton tableaux sont un peu mise en vrak .
Tu ouvres des lignes sans avoir fermée la precedente, tu fermes des cellules sans les avoirs ouvert. -
je corrige les faute de le script
mais lors de l'affichage
dans mon cas
le premier affichage donne résultat juste il m'affiche résultat de choix
1 correcte
5 correcte
mais dans le deuxième affichage il m'affiche résultat plusieurs fois
résultat de deuxième choix
9 faux
8 faux
5 faux
7 faux
6 faux
9 faux
8 faux
1 faux
5 faux
7 faux
6 faux
9 faux
8 faux
1 faux
7 faux
6 faux
9 faux
8 faux
1 faux
5 faux
7faux
6 faux
9 faux
8 faux
1 faux
1 faux
5 faux
7 faux
6 faux
le résultat correcte doit être
résultat de la deuxième choix
9 faux
8 faux
7 faux
6 faux
je parle de test selon mon cas
mais le principe de test c le meme -
<table frame="box" rules="none">
<tr>
<td>resultat de deuximme choix</span></td>
</td>
<tr>
<td>
alor déja tu ferme un </span> san en ouvrir un ensuite tu met 2 foi </td> a la suite (jvoi pa pourkoi) et pour finir tu ouvre le <tr> (en dessous de <table frame="box" rules="none">) san le refermé aprè.
Tro d'erreur d'inatention ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
merci de vos réponse
désolé j'oublie d'envoyer le fichier inventaire1.php après modification
<html>
<head>
</head>
<form action="" method="post" name="form1">
<table>
<tr>
<td>resultat de choix</td>
</tr>
<tr>
<td>
<?php
$local=$_POST['local'];
$choix=$_POST['choix'];
$TableauRef=explode(",",$choix);
$Nb=count($TableauRef);
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from article where local='$local'";
$res=mysql_query($query);
while($ligne=mysql_fetch_row($res))
{
for($i=0;$i<$Nb;$i++){
if($TableauRef[$i]==$ligne[0])
echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
}
}
?>
</td>
</tr>
</table>
<table>
<tr>
<td>resultat de deuximme choix</td>
</tr>
<tr>
<td>
<?php
$local=$_POST['local'];
$choix=$_POST['choix'];
$TableauRef=explode(",",$choix);
$Nb=count($TableauRef);
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from article where local='$local'";
$res=mysql_query($query);
while($ligne=mysql_fetch_row($res))
{
for($i=0;$i<$Nb;$i++){
if($TableauRef[$i]!=$ligne[0])
echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
}
}
?>
</td>
</tr>
</table>
</form>
</body>
</html> -
Il faudra que tu expliques l'utilité du formulaire parce que moi perso, je vois pas...
-
c simple dans le premier formulaire (invantaire.php)
je sélectionne un local
après je tape par exemple des références 9,8,1,5,7,6
le test c fait comme suit
premièrement elle cherches tous les references des articles de ce local
et cela se fait par select *from article where local='$local'
le résultat est bien sur un tableau
parcourir ces tableau et comparer valeur par valeur par
les valeur des références tapés( 9,8,1,5,7,6)
pour mon cas 1 et 5 sont correcte
les restes sont fausses
j'espère que devient clair -
le question qui suppose est ce que en php on accepte des testes
comme celle ci if($TableauRef[$i]!=$ligne[0]) -
je change l'opérateur != par <> mais encore le deuxième affichage
est incorrecte pourtant le premier affichage est juste
je pense qu'on dois faire autrement
puisque le premier résultat est juste on peut l'exploiter
mais comment , je pense quant fait le test avec if($TableauRef[$i]==$ligne[0])
on affiche le resulat avec echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
au meme temps je veux décrémente cette valeur de tableau $TableauRef[
pour q'apres juste on parcour ce tableau et on fait l'affichage
avec for($i=0;$i<$Nb;$i++){
echo"<tr><td>$TableauRef[$i]</td><td>faux</td></tr>";
}
je pense mon idee est juste mais reste a l'appliquer
je suppose qu'on doit faire comme celle ci
mais elle m'affiche erreur ( undefined offset -1)
<html>
<head>
</head>
<form action="" method="post" name="form1">
<table frame="box" rules="none">
<tr>
<td>resultat de choix</td>
</tr>
<tr>
<td>
<?php
$local=$_POST['local'];
$choix=$_POST['choix'];
$TableauRef=explode(",",$choix);
$Nb=count($TableauRef);
$serveur="localhost";
$user="user1";
$pwd="user1";
$db="gestionpret";
$lien=mysql_connect($serveur,$user,$pwd) or die("impossible de connecter de serveur");
mysql_select_db($db,$lien);
$query="select *from article where local='$local'";
$res=mysql_query($query);
while($ligne=mysql_fetch_row($res))
{
for($i=0;$i<$Nb;$i++){
if($TableauRef[$i]==$ligne[0])
{echo"<tr><td>$TableauRef[$i]</td><td>correcte</td></tr>";
$TableauRef[$i]=$TableauRef[$i-1];}
}
}
?>
</td>
</tr>
</table>
</form>
</body>
</html> -
En PHP, l'opérateur d'inégalité est "!=" pas "<>".
Après si j'ai bien compris, tu souhaites afficher les valeurs $TableauRef[$i] et ajouté si c'est égal à $ligne[0] "correcte" sinon "incorrecte"... pour cela tu fais:
<table> <tr><td>Valeur</td><td>Statut</td></tr> <?php for($i=0; $i<sizeof($TableauRef);$i++) { ?> <tr><td><?php echo $TableauRef[$i];?></td> <td> <?php if($TableauRef[$i] == $ligne[0]) echo "Correct"; else echo "Incorrect"; ?> </td> </tr> <?php } ?>
"Trotti Trotta, Monsieur P, il y a des anges qui veulent un bisou..."
"Même les joujou de Monsieur P ont besoin de joujou"