[MySQL] Variables je crois

Bonjour, j'ai un autre problème. Mon script MySql ne marche pas, problème de variable peut-etre ?

Le voici :
<div align="center">
<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
	<tr>
		<td width=\"25\" align=\"center\">ID</td>
		<td align=\"center\" width=\"280\">Numéro de série</td>
		<td align=\"center\" width=\"120\">Date d'ajout</td>
		<td align=\"center\" width=\"120\">Date d'expiration</td>
		<td align=\"center\" width=\"120\">Utilisé le</td>
		<td align=\"center\" width=\"120\">Seulement pour</td>
		<td align=\"center\" width=\"16\">X</td>
		<td align=\"center\" width=\"16\">Ban</td>
	</tr>
<?php
$connexion = mysql_connect("sql3.byethost9.com","b9_235027","0550137") or die(mysql_error());
$db = mysql_select_db("b9_235027_serv1") or die(mysql_error());

$sql = 'SELECT * FROM serial';
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

if ($data['banned'] == 0) {
$banned_oui_non == "Non";
} else {
$banned_oui_non == "Oui";
}


while($data = mysql_fetch_array($req)) {
echo "<tr>		<td align=\"center\" width=\"25\">";
echo $data['id'];
echo "</td>";
echo "		<td align=\"center\" width=\"280\">";
echo $data['serial'];
echo "</td>";
echo "		<td align=\"center\" width=\"120\">";
echo $data['added_date'];
echo "</td>";
echo "		<td align=\"center\" width=\"120\">";
echo $data['valid_until'];
echo "</td>";
echo "		<td align=\"center\" width=\"120\">";
echo $data['used_date'];
echo "</td>";
echo "		<td align=\"center\" width=\"120\">";
echo $data['only_member'];
echo "</td>";
echo "		<td align=\"center\" width=\"16\">"; ?>
<a href='?page=view_serial&action=delete_serial&id=<?PHP echo $data["id"];?>'>X</a>
<?PHP echo "</td>";
echo "		<td align=\"center\" width=\"16\">"; 
echo "<a href='?page=view_serial&action=ban_serial&id=<?PHP echo $data[\'id\'];?>'>".$banned_oui_non."</a>";
echo "</td></tr>";
}
mysql_close();
?>

</table>
</div>
<?PHP } ?>


Tout l'aide que vous pouvez m'apporter sera apprécié :).

Bonne soirée.
Configuration: Windows XP
Firefox 2.0.0.1

9 réponses

  1. Contributeur
    Tu peux virer le :
    <?PHP } ?>

    qui sert à rien à la fin. C'est peut etre ca.

    Sinon, évite de couper sans arret ton script avec <?php ?> ... <?php ... ?>
    Ca ne change rien si ce n'est que ca évite de faire des erreurs et c'est beaucoup plus lisible comme code.

    Par exemple ce passage :
    echo "		<td align=\"center\" width=\"16\">"; ?>
    <a href='?page=view_serial&action=delete_serial&id=<?PHP echo $data["id"];?>'>X</a>
    <?PHP echo "</td>";
    


    deviendrais :
    echo "		<td align=\"center\" width=\"16\">"; 
    echo "<a href='?page=view_serial&action=delete_serial&id=".data["id"].">X</a>";
    echo "</td>";
    
    1. Salut,

      Qu'entends-tu par "ne marche pas" ?
      Quel est le symptôme ? Quel message d'erreur as-tu ?

      Edit : oops, je me suis fait dépasser :)
      1. Bonjour,

        if ($data['banned'] == 0) {
        $banned_oui_non == "Non";
        } else {
        $banned_oui_non == "Oui";
        }
        C'est moi qui n'ai pas les yeux ouverts ce matin, ou $data n'est pas encore défini à cet endroit-là ?
        Il ne faudrait pas rappatrier ce bout de code à l'intérieur du while ?
        1. Contributeur
          Exact :)

          j'avais cru voir un $_POST moi :s

          Comme quoi le matin c'est jamais bien pour décoder :p
          1. Opss., J'ai oublier une ligne au-dessus :D

            C'est quelque chose du genre
            <?PHP if($action == "view_serial") { ?>


            Désolé :)

            Reivax962 :

            Il faut défénir $data? je pensais que dès qu'une base de donnée avec :
            $sql = 'SELECT * FROM serial';
            $req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());

            Sa le faisait toute seul . Oups ...

            Alors sa donne :
            $action a été défini par $_GET["action"];

            <?PHP if($action == "view_serial") { ?>
            <div align="center">
            <table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">
            	<tr>
            		<td width=\"25\" align=\"center\">ID</td>
            		<td align=\"center\" width=\"280\">Numéro de série</td>
            		<td align=\"center\" width=\"120\">Date d'ajout</td>
            		<td align=\"center\" width=\"120\">Date d'expiration</td>
            		<td align=\"center\" width=\"120\">Utilisé le</td>
            		<td align=\"center\" width=\"120\">Seulement pour</td>
            		<td align=\"center\" width=\"16\">X</td>
            		<td align=\"center\" width=\"16\">Ban</td>
            	</tr>
            <?php
            $connexion = mysql_connect("sql3.byethost9.com","b9_235027","0550137") or die(mysql_error());
            $db = mysql_select_db("b9_235027_serv1") or die(mysql_error());
            
            $sql = 'SELECT * FROM serial';
            $req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
            
            if ($data['banned'] == 0) {
            $banned_oui_non == "Non";
            } else {
            $banned_oui_non == "Oui";
            }
            
            
            while($data = mysql_fetch_array($req)) {
            echo "<tr>		<td align=\"center\" width=\"25\">";
            echo $data['id'];
            echo "</td>";
            echo "		<td align=\"center\" width=\"280\">";
            echo $data['serial'];
            echo "</td>";
            echo "		<td align=\"center\" width=\"120\">";
            echo $data['added_date'];
            echo "</td>";
            echo "		<td align=\"center\" width=\"120\">";
            echo $data['valid_until'];
            echo "</td>";
            echo "		<td align=\"center\" width=\"120\">";
            echo $data['used_date'];
            echo "</td>";
            echo "		<td align=\"center\" width=\"120\">";
            echo $data['only_member'];
            echo "</td>";
            echo "		<td align=\"center\" width=\"16\">"; 
            echo "<a href='?page=view_serial&action=delete_serial&id=".data["id"].">X</a>";
            echo "</td>";
            echo "		<td align=\"center\" width=\"16\">"; 
            echo "<a href='?page=view_serial&action=ban_serial&id=<?PHP echo $data[\'id\'];?>'>".$banned_oui_non."</a>";
            echo "</td></tr>";
            }
            mysql_close();
            ?>
            
            </table>
            </div>
            <?PHP } ?>


            Il n'y a pas de message d'erreur, c'est une page blanche ;) Mais quand le script marche, tous s'affiche. Mais je le modifie souvent ...
            1. Contributeur
              Qaund tu écris :
              if ($data['banned'] == 0) {
              $banned_oui_non == "Non";
              } else {
              $banned_oui_non == "Oui";
              }
              
              
              while($data = mysql_fetch_array($req)) {
              echo "<tr>		<td align=\"center\" width=\"25\">";
              echo $data['id'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"280\">";
              echo $data['serial'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['added_date'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['valid_until'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['used_date'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['only_member'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"16\">"; 
              echo "<a href='?page=view_serial&action=delete_serial&id=".data["id"].">X</a>";
              echo "</td>";
              echo "		<td align=\"center\" width=\"16\">"; 
              echo "<a href='?page=view_serial&action=ban_serial&id=<?PHP echo $data[\'id\'];?>'>".$banned_oui_non."</a>";
              echo "</td></tr>";
              }
              


              Que remarque tu ?

              Que tu utilise $data avant de l'avoir déclaré dans ton while. Ton interpréteur php ne peut pas le deviner tout seul... donc fais autrement.
              Le fait que tu utilise quelque chose qui n'est pas déclaré ne passe pas. C'est surtout d'accéder à une zone mémoire non allouée et n'ayant aucune valeur qui ne va pas puisque $data est un tableau avant tout.

              Donc, soit tu met le bout de code :
              if ($data['banned'] == 0) {
              $banned_oui_non == "Non";
              } else {
              $banned_oui_non == "Oui";
              }
              

              dans ton while, soit tu fais autrement.
          2. ok merci ;)

            Mais c'est quoi, autrement ??

            Merci
            1. Ca dépend de ce que tu veux faire :)
              Essaie de nous expliquer le but final...
          3. En fait, j'aimerais que lorsque la valeur dans la table pour "Banned" est activé, un Oui s'affiche et si elle est désactivé "0", elle affiche Non.

            echo "<a href='?page=view_serial&action=ban_serial&id=<?PHP echo $data[\'id\'];?>'>".$banned_oui_non."</a>";


            Mais j'aurais aimé ne pas passé par la variable $banned_oui_non.

            Le but final est d'afficher un tableau contenant tout les serial. Si je clique dans la colone Ban, Oui, sa le "déban". Sil est marqué Non, il n'est pas bani, donc si je clique dessus ca va le bannir. Tu comprend ? C'est pas très clair mon affaire je pense.
            1. OK.

              Voici le code qu'il faut utiliser :
              <?php
              $connexion = mysql_connect("sql3.byethost9.com","b9_235027","0550137") or die(mysql_error());
              $db = mysql_select_db("b9_235027_serv1") or die(mysql_error());
              
              $sql = 'SELECT * FROM serial';
              $req = mysql_query($sql) or die('Erreur SQL !'.$sql.''.mysql_error());
              
              
              while($data = mysql_fetch_array($req)) {
              echo "<tr>		<td align=\"center\" width=\"25\">";
              echo $data['id'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"280\">";
              echo $data['serial'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['added_date'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['valid_until'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['used_date'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"120\">";
              echo $data['only_member'];
              echo "</td>";
              echo "		<td align=\"center\" width=\"16\">"; 
              echo "<a href='?page=view_serial&action=delete_serial&id=".data["id"].">X</a>";
              echo "</td>";
              echo "		<td align=\"center\" width=\"16\">"; 
              echo "<a href='?page=view_serial&action=ban_serial&id=<?PHP 
              
              if ($data['banned'] == 0) {
              $banned_oui_non == "Non";
              } else {
              $banned_oui_non == "Oui";
              }
              
              echo $data[\'id\'];?>'>".$banned_oui_non."</a>";
              echo "</td></tr>";
              }
              mysql_close();
              ?>
            2. Ha !!! Merci énormément Reivax962 !!!!

              Je t'adore, [mort de rire].

              Merci beaucoup :)
          4. J'ai trouvé le bout qui coince :

            echo "<a href='?page=view_serial&action=delete_serial&id=".data["id"].">X</a>";

            Je l'ai enlevé pour testé et sa marche donc c'est cette ligne qui a un problème.
            1. Ah ben oui, forcément, il manque un $ devant data["id"] ...