[MySQL] Variables je crois

Jeremy -  
Reivax962 Messages postés 3742 Statut Membre -
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. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    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>";
    
    0
  2. Tittom Messages postés 422 Statut Membre 128
     
    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 :)
    0
  3. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    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 ?
    0
  4. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
     
    Exact :)

    j'avais cru voir un $_POST moi :s

    Comme quoi le matin c'est jamais bien pour décoder :p
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Jeremy
     
    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 ...
    0
    1. kij_82 Messages postés 4102 Date d'inscription   Statut Contributeur Dernière intervention   857
       
      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.
      0
  7. Jeremy
     
    ok merci ;)

    Mais c'est quoi, autrement ??

    Merci
    0
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Ca dépend de ce que tu veux faire :)
      Essaie de nous expliquer le but final...
      0
  8. Jeremy
     
    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.
    0
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      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();
      ?>
      0
    2. Jeremy
       
      Ha !!! Merci énormément Reivax962 !!!!


      Je t'adore, [mort de rire].

      Merci beaucoup :)
      0
  9. Jeremy
     
    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.
    0
    1. Reivax962 Messages postés 3742 Statut Membre 1 011
       
      Ah ben oui, forcément, il manque un $ devant data["id"] ...
      0