Mettre une commande PHP pour supprimer une colonne SQL

Résolu/Fermé
Utilisateur anonyme - 11 janv. 2013 à 13:40
 Utilisateur anonyme - 14 janv. 2013 à 21:15
Bonjour,

Tout est dit dans le titre.
J'ai un code PHP, avec comme but de supprimer l'adresse IP d'une personne qui a été auparavant enregistrée dans la variable $ip et la supprimer en PHP. J'ai ce code ci :

<?php
// on se connecte à notre base
$base = mysql_connect ('hote', 'login', 'mdp');
mysql_select_db ('DB', $base) ;
?>
<html>
<body>
<?php
// lancement de la requête pour effacer l'IP
$sql ='DELETE from IP WHERE ip=$ip';

// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

// on ferme la connexion à la base
mysql_close();
?>
Finis
</body>
</html
else {
		echo 'Loupé';
}
?>
</body>


Et il m'affiche ceci :

Erreur SQL !DELETE from IP WHERE ip=$ip
Unknown column '$ip' in 'where clause'

Donc j'ai compris que en faite il cherche "$ip" et non pas ce qu'y est inclus dans la variable.

Comment faire alors pour que ce soit ce qui est contenu dans la variable $ip qui soit supprimé dans la BDD et non pas "$ip" ?
A voir également:

6 réponses

Icarenna Messages postés 121 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 30 mai 2013 129
11 janv. 2013 à 13:48
Tu aurais pas oublier un if quelque part??
If(....) {
 .....
} else {
       echo "Lopé;
}

Non??
0
Icarenna Messages postés 121 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 30 mai 2013 129
Modifié par Icarenna le 11/01/2013 à 14:10
Tout d'abord, il y a beaucoup trop de fautes. Mais c'est normal, moi aussi j'en fais^^

$ip n'est défini nulle part.
C'est une donnée rentrée par l'utilisateur? C'est un chiffre?
D'où l'erreur
Unknown column '$ip' in 'where clause' 

Il le prends tout simplement comme le nom d'une colonne!
Donc il faut que tu mettes "$ip =" quelques part dans ton script!

Je sais pas si c'est fais exprès, mais <html ... ?> n'existe pas ^^"

C'est <html> .... </html> et <?php .... ?>

Et puis je sais pas si c'est fais exprés aussi mais au cas où...

<?php 
$host = "localhost"; 
$login = "root"; 
$mdp = ""; 
$bdd = "le_nom_de_ta_base"; 
// on se connecte à notre base de données 
$base = mysql_connect ($host, $login, $mdp); 
mysql_select_db ($bdd, $base); 
?> 


Alors $host, c'est le nom de hôte, je pense que tu as localhost
le login c'est 'root' et son mot de passe c'est " ", c'est comme ça par défaut(je pense).

Déjà comme ça, c'est un peu mieux^^"

Il y a encore des erreurs mais je te laisse les chercher^^

Si tu veux supprimer des données dans ta base, tu peux chercher sur google "comment supprimer des données"

Bon courage!!

Car la sagesse procure une protection [tout comme] l'argent procure une protection ; mais l'avantage de la connaissance, c'est que la sagesse garde en vie ses propriétaires.
0
Utilisateur anonyme
11 janv. 2013 à 17:57
Déjà merci d'avoir répondu une réponse qui me parait un peu mieux.
$ip en faite je l'avais définis à une autre page, mais je vais tout mettre sur la même.
Pour les balises, je sais quand même que c'est <html> </html> <?php et ?> mais c'est une faute d'étourderie et de copier coller, au lycée j'galère avec un ftp ;) (ma vie)
Mon hébergeur n'est pas localhost ;) perdu :P
Supprimer des données, je pense avoir trouvé. Je vais voir ce qui marche et ne marche pas. Merci.
0

Donc j'ai pensé à un truc mais sa deviens chaud, il y a trop de conditions...
Mais il n'y a pas tout du tout car il faudrait faire (je l'ai écrit en français pour mieux comprendre ce que je veux) :

Quand l'utilisateur CONNECTER clic, on vérifie si il y a son IP de présent dans la base, si l'IP y est on vérifie la date :

- si les 24h sont passé on affiche "C'est bien tu peux lire ceci" et on supprime la date et l'IP, et on remet l'IP avec la nouvelle date dans la BDD.
- si les 24h sont pas passées, on affiche "Tu dois attendre 24h"

Si l'IP n'est pas présent, on l'enregistre avec la date du clic dans la BDD

Si l'utilisateur n'est pas connecté, on affiche "Connecte-toi"

J'ai essayé ceci :
 

 
<?php   
if(isset($_SESSION['username'])) && IP présent dans la base (je sais pas faire)   
{   
On vérifie la date (sa je sais pas encore faire)   
}   

if $date < ( 1357905840 + (24 * 60 * 60) )   
{   
echo "Tu dois attendre 24h";   
}   

if $date > ( 1357905840 + (24 * 60 * 60) )   
{   
echo "Voilà, tu as attendu 24h";   
}   

if(isset($_SESSION['username'])) && IP pas présent dans la base (je sais pas faire)   
{   
$ip = $_SERVER['REMOTE_ADDR'];                // on prends l'ip //   
$sql = "INSERT  INTO IP ( ip )        // On l'enregistre dans la BDD //   
            VALUES ( '$ip' ) " ;   
$requete = mysql_query($sql, $co) or die( mysql_error() ) ;   

On enregistre la date avec le nouvel IP (je sais pas faire non plus :x )    


J'ai du oublier la moitié des choses mais sa fait 20 minutes que j'écris juste sa :P
Je précise que tout ça c'est juste pour faire une bannière sur mon site pour que une personne puisse cliquer toutes les 24h dessus.

Merci de me dire si cela est bon, sa m'aiderais beaucoup :). Et si possible me renseigner un peu plus sur la date, même si c'est un peu trop demandé :s. Merciiiiii

0

Soucis règlé.
Me reste quelques petites commandes que je ne trouve pas sur le net :

La commande :

IP présent dans la base : if(isset($_SESSION['username'])) && IP présent dans la base (je sais pas faire)
IP pas présent dans la base : if(isset($_SESSION['username'])) && IP pas présent dans la base (je sais pas faire)

Mettre deux && : c'est possible ? (comme dans l'exemple ci-dessous)
 

 <?php   
if(isset($_SESSION['username'])) && IP présent dans la base (je sais pas faire) && $date < ( 1357905840 + (24 * 60 * 60) )   
{  
echo "Tu dois attendre 24h";   
}   
if(isset($_SESSION['username'])) && IP présent dans la base (je sais pas faire) && $date > ( 1357905840 + (24 * 60 * 60) )   
{   
echo "Voilà, tu as attendu 24h";  
?>


Et aussi associé l'IP avec la date...

0
Icarenna Messages postés 121 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 30 mai 2013 129
Modifié par Icarenna le 14/01/2013 à 09:02
Yo!
Désolé, j'avais pas vu tes messages!
Pour les "&&", je pense que sa pourrait se faire, il faut que les trois soit vrai pour affiché ton écho, c'est bien ce que tu veux?
Pour plus de renseignements sur les instructions if: https://www.commentcamarche.net/contents/787-php-structures-conditionnelles#l-instruction-if (<-- je le trouve assez complet celui-ci)
0
Icarenna Messages postés 121 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 30 mai 2013 129
Modifié par Icarenna le 14/01/2013 à 09:05
Ah oui et n'oublis pas les parenthèses pour chaque condition hin =)

if ((condition1)&&(condition2))
0
Utilisateur anonyme
11 janv. 2013 à 14:53
pas sa le problème
0
Icarenna Messages postés 121 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 30 mai 2013 129
Modifié par Icarenna le 11/01/2013 à 15:02
Oui en effet c pas ça le problème, mais au lieu de dire "pas sa le problème" tu pourrais essayé d'avoir un code propre si tu veux pas qu'on te dise ça non? Et dire "merci" d'avoir répondu aussi, j'étais pas obligé de t'aider ok?
Je t'es déjà dis où étais le problème ici: https://forums.commentcamarche.net/forum/affich-26878843-mettre-une-commande-php-pour-supprimer-une-colonne-sql#2
0

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

Posez votre question
Utilisateur anonyme
11 janv. 2013 à 17:40
Désolé j'ai répondu en cours --'
0
Icarenna Messages postés 121 Date d'inscription dimanche 1 avril 2012 Statut Membre Dernière intervention 30 mai 2013 129
14 janv. 2013 à 09:01
Je suis aussi désolé de t'avoir répondu comme ça ^^"
0