[MySQL] Variables je crois

Fermé
Jeremy - 22 déc. 2006 à 03:40
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 - 26 déc. 2006 à 09:50
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.

9 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
22 déc. 2006 à 09:29
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
Tittom Messages postés 422 Date d'inscription mardi 30 mai 2000 Statut Membre Dernière intervention 10 janvier 2007 128
22 déc. 2006 à 09:31
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
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
22 déc. 2006 à 11:25
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
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
22 déc. 2006 à 13:01
Exact :)

j'avais cru voir un $_POST moi :s

Comme quoi le matin c'est jamais bien pour décoder :p
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
22 déc. 2006 à 15:28
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
ok merci ;)

Mais c'est quoi, autrement ??

Merci
0
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
22 déc. 2006 à 16:59
Ca dépend de ce que tu veux faire :)
Essaie de nous expliquer le but final...
0
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
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
22 déc. 2006 à 17:20
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
Ha !!! Merci énormément Reivax962 !!!!


Je t'adore, [mort de rire].

Merci beaucoup :)
0
Tien, voila la source plus haut, avec les modifications, dans un txt :
http://narksweb.byethost9.com/source.txt

Sa va être plus lisible.

Sa ne marche pas mettre ma variable dans le while.
0
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
Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
26 déc. 2006 à 09:50
Ah ben oui, forcément, il manque un $ devant data["id"] ...
0