Supprimer une valeur d'une table

Eléphant du PHP | 186 Messages

10 mai 2006, 20:12

bonjour,

Pouvez vous me dire pourquoi j'ai uen erreur ligne 24 qui est :
DELETE FROM xxxxx WHERE code='$PASSS'
voici mon code :
<?

$non ="";
$oui ="";
$tous ="";

mysql_connect("", "", "");
mysql_select_db("");


$reponse = mysql_query("SELECT * FROM xxxxx");
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['code'] != "$PASSS")
{
$non++;
} 
else
{
$oui++;
} 
}

DELETE FROM xxxxx WHERE code='$PASSS'
mysql_close();


if ($oui == 1)
{
echo "OUI";
}
else
{
echo "NON";
}


?>
Merci d'avance

Ce que je veux faire c'est supprimé la variable $PASSS qui est testé avant et donc si elle est présente faire $oui++ et ensuite suprimer cette valeur de la table.

Merci d'avance

Mammouth du PHP | 19672 Messages

10 mai 2006, 20:20

Tu n'as pas l'impression que ton code souffre de quelques manques ???

-1- où est initialisée la variable $PASSS ?
-2- comment espères-tu que ta requête DELETE soit exécutée écrite de la sorte ? Tu l'écris comme du PHP au lieu de l'écrire comme instruction d'une commande MySQL sous forme de chaine de caractère : en clair mysql_query("DELETE etc...")

-3- à quoi te sert la première requête au juste ? Pourquoi ne pas faire une requête
$sql = "SELECT COUNT(*) FORM xxxx WHERE code = '". $_PASSS ."';";
Par exemple pour déterminer si la donnée existe ?

-4- Si la donnée n'existe pas, ta seconde requête sera de toutes façons exécutée, ce n'est pas forcément très efficace ni utile;

Essaye de corriger un peu tout ça ... :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 186 Messages

10 mai 2006, 20:28

ma variable $PASSS viens de ma page précédente je passe le paramettre dans l'adresse

du type www.monsite.com/index.php?$PASSS=bonjour

ma première requete me permet de vérifié l'existence de la variable $PASSS dans ma base

Je veux la supprimer ensuite afin que si la personne réutilise le mot entré dans la variable $PASSS qu'elle n'est pas acces à al page

Pour ce qui est de ma formulation PHP j'avais pris cela sur le site du zero :cry:

Que me conseil tu alors

Je veux vérifié que $PASSS est bien dans ma base et si il est dedans qu'il soit supprimé et puis s'il l'est pas ça crémente $non

Mammouth du PHP | 1511 Messages

10 mai 2006, 20:34

Dans ce cas la, il faut utiliser $_GET['pass'] vu que c'est une variable d'url.
@+

Mammouth du PHP | 19672 Messages

10 mai 2006, 20:40

J'entends bien, mais dans cette page, la variable n'est pas initialisée : fais afficher ta requête et tu verras qu'il manque un paramètre.

D'autre part, on envoie pas une variable PHP telle quelle dans une url : ça devrait être :
www.monsite.com/index.php?PASSS=bonjour
sans le "$"

Et là on récupère la valeur par :
$PASSS = isset($_GET['PASSS']) ? $_GET['PASSS'] : "";
Ceci dit: je te déconseille très forrtement de passer ce genre d'information par l'url, ça peut être très dangereux pour ta base de données: si la valeur provient d'un formulaire, utilise la méthode post et remplace ce que je viens d'indiquer par:
$PASSS = isset($_POST['PASSS']) ? $_POST['PASSS'] : "";
Et n'ajoute rien à l'url.

Enfin, relis bien toutes mes questions de tout à l'heure, une par une et fais le tour de ton code. Il faut de la rigueur et de la logique quand tu développes, à terme tu feras des choses plus efficaces et performantes ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 186 Messages

10 mai 2006, 20:47

non la valeur provient pas d'un formulaire

enfet je crée des mots genre bonjour
sa c'est bon j'ai fait

ensuite la personne entre un mot

moi je le vérifie sur la page apres le formulaire de saisi dans lequel j'ai placé le code :
$test=@file("http://www.monsite.com/index.php?PASSS="lecodesaisi");
ensuite donc sa arrive sur la page dont le code source est ci dessus et je test ensuite
if ($test[0]=OUI) { echo "BRAVO";}
else { echo "DOMMAGE";}
donc là personne ne vois jamais le lien avec la variable

Mammouth du PHP | 19672 Messages

10 mai 2006, 21:06

non la valeur provient pas d'un formulaire

//....

ensuite la personne entre un mot
Faudrait m'expliquer comment tu fais ça ... :shock:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 186 Messages

10 mai 2006, 21:24

ba la personne entre un mot sur un formulaire

du genre entrez votre mot :

elle met par exemple "BONJOUR"

elle valide le formulaire

elle accede du genre à valid.php

dans cette page je vérifie le code en effectuant une requet sur la page on va dire verif.php qui à le code source que j'ai mis au dessus

j'éffectue la requete de la façon suivante :
$test=@file("http://www.monsite.com/index.php?PASSS="BONJOUR"); 
ensuite donc d'apres mon code source du début sur la page verif.php j'aurais une réponse du type OUI ou NON

j'ai plus qu'à vérifié sur valid.php la réponse du file()

soit avec :
if ($test[0]=OUI) { echo "BRAVO";} 
else { echo "DOMMAGE";} 
tu vois le truc ???

Mammouth du PHP | 19672 Messages

10 mai 2006, 21:33

Tu t'es un peu compliqué la vie à mon sens, enfin bon. As-tu corrigé le reste ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 186 Messages

10 mai 2006, 21:35

oui tout fontionne nikel merci pour ton aide

bah je sais que je me suis compliqué la vie mais j'aurais pu faire plus simple mais dans ce cas la la modification de chacun de mes documents aurait été tro longue ( jen ai 72 à modifier) alors j'ai préféré passé par un truc plus long mais plus simple

le truc c'estq ue j'ai couplé ce systeme avec un systeme rentabiliweb et leur réponse est aussi OUI et NON donc c'est pour cela ça m'arrangeait

enfin now j'ai réussi à supprimer la variable de la base de donné donc tout est ok

merci et bonne soirée