Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

Effacer ligne base de données

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
Stefano
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Fév 2006
Messages: 236
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:00    Sujet du message: Effacer ligne base de données

Bonjour,

Je préviens que je suis un autodidacte (encore niveau débuttant) en php.

Voici mon problème j'ai créé un petit script php avec un formulaire pour pouvoir mettre en ligne des actualités.

Il marche très bien. Or, pour l'instant dès que l'événement est passé je me connecte à la base de données et je l'efface manuellement. Mais ce n'est pas très pratique. Je pensais donc créer un petit formulaire où écrire l'id de l"actualité à effacer.

Voici mes problème :

le petit script pour effacer, pourtant banale ne marche pas du tout :

Code:
<?php
define('CONF_ONLY', true);
include("./config.php");
mysql_connect($dbhost , $dbuser , $dbpasswd);
mysql_select_db($dbname);
$sql = 'DELETE * FROM `t_mus` WHERE `idann` ='$id' ;';
$result = mysql_query($sql);   
if($result)
{
echo("La suppression à été correctement effectuée") ;
}
else
{
echo("La suppression à échouée") ;
}

     mysql_close();
?>


Il se connecte bien à la base de données mais :

- il n'efface rien du tout. Si je remplace '$id' par l'id de l'actu à supprimer rien ne se passe. Et pourtant le même script avec select affiche les infos de cette table.

- deuxième gros problème. Si j'arrive à faire marche cette instruction, je ne sais pas comment relier ce script à un formulaire pour que je lui donne l'id à supprimer.

Si vous avez des suggestions, je vous en remercie par avance.
 
Stefano Visiter le site web du posteur
FloBaoti
WRInaute passionné
WRInaute passionné

Inscrit le: 30 Avr 2006
Messages: 594
Localisation: Montpellier

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:24    Sujet du message: Effacer ligne base de données

Ton problème est le SQL à priori, pas le PHP.

Un DELETE en SQL supprime forcément toute une "ligne", donc il ne faut pas spécifier les champs à supprimer.
La syntaxe est donc : DELETE FROM table WHERE condition;
 
FloBaoti Visiter le site web du posteur
Stefano
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Fév 2006
Messages: 236
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:42    Sujet du message: Effacer ligne base de données

Bonjour,

t_mus est la table, je n'ai justement pas spécifié le champs.

J'ai donc élimine le *

$sql = 'DELETE FROM `t_mus` WHERE `idann` =$id;';

Mais cela ne marche pas Sad
 
Stefano Visiter le site web du posteur
BadProcESs
WRInaute accro
WRInaute accro

Inscrit le: 28 Juil 2003
Messages: 2319
Localisation: Partout ("clusterisé") ;)

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:43    Sujet du message: Effacer ligne base de données

As-tu un message d'erreur ?
As-tu essayé de tester la requête dans l'administration de la base de données ?
 
BadProcESs Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2255

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:44    Sujet du message: Effacer ligne base de données

Toujours essayer sa requête dans un simple client sql avant toute intégration au code, et ceci pour n'importe quel langage. ex: l'onglet sql de phpmyadmin
 
YoyoS Visiter le site web du posteur
FloBaoti
WRInaute passionné
WRInaute passionné

Inscrit le: 30 Avr 2006
Messages: 594
Localisation: Montpellier

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:46    Sujet du message: Effacer ligne base de données

* signifie tous les champs en SQL. Donc tu avais bien spécifié "tous les champs".

Ensuite, une erreur PHP : '$id'
La concaténation se fait avec des points : '.$id.'
 
FloBaoti Visiter le site web du posteur
Stefano
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Fév 2006
Messages: 236
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:48    Sujet du message: Effacer ligne base de données

Citation:
As-tu essayé de tester la requête dans l'administration de la base de données ?


DELETE FROM `t_mus` WHERE `idann` =6

comme ça, ça marche....


Dernière édition par Stefano le Jeu Mai 29, 2008 13:49; édité 1 fois
 
Stefano Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12346
Localisation: Toulouse

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 13:48    Sujet du message: Effacer ligne base de données

il te suffit de faire echo $sql en php pour voir ton erreur Wink
 
e-kiwi Visiter le site web du posteur
Stefano
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Fév 2006
Messages: 236
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 14:22    Sujet du message: Effacer ligne base de données

Citation:
il te suffit de faire echo $sql en php pour voir ton erreur

Merci,

Mais rien ne s'affiche. Voilà tout le code dans post.php:

Code:
<?php
include("/config.php");

// Insertion dans la base
$id = $_GET["idann"];     
mysql_connect($dbhost , $dbuser , $dbpasswd);
mysql_select_db($dbname);

$sql = 'DELETE FROM `t_mus` WHERE `idann` =$id LIMIT 1;';
$result = mysql_query($sql);   
if($result)
{
echo("La suppression à été correctement effectuée") ;
}
else
{
echo("La suppression à échouée") ;
}

 mysql_close();
?>


Il ne reconnait pas idann, car si je remplace le bon chiffre
ça marche.

L'idann est fourni par un formulaire :

Code:
<form name="f2" onSubmit="return check2()"  METHOD="POST" ACTION="form.php">
<table border=0 cellpadding=3 width="549" align="center" cellspacing="0" bgcolor="#e8e8e8">
<tr>
<td width="144"><span style="font-size: 10pt;"><font face="Arial"><b>ID</b> :</td>
<td width="387">
<input type="text" name="idann" value="" size=30>
</td>
</tr>
<tr>
<td width="144">
<input type="reset" name="reset" value="Effacer">
</td>
<td align=RIGHT width="387">
<input type="submit" name="  O K  " value="  OK !  ">
</td>
</tr>
</table>
</form>



Peut-être que le problème est là.

Est-ce la fonction $_get qui récupère l'information ?

Merci encore.
 
Stefano Visiter le site web du posteur
e-kiwi
Modérateur
Modérateur

Inscrit le: 23 Déc 2003
Messages: 12346
Localisation: Toulouse

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 14:24    Sujet du message: Effacer ligne base de données

>> $sql = 'DELETE FROM `t_mus` WHERE `idann` =$id LIMIT 1;';

apres ca tu met : echo $sql;

et tu aura ta requete telle qu'elle est éxécutée (et tu verras que $id est à la palce de sa valeur)
 
e-kiwi Visiter le site web du posteur
YoyoS
WRInaute accro
WRInaute accro

Inscrit le: 14 Sep 2006
Messages: 2255

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 14:26    Sujet du message: Effacer ligne base de données

Tu vas la mettre ta requete dans phpmyadmin ou pas ? lol
 
YoyoS Visiter le site web du posteur
webac
WRInaute impliqué
WRInaute impliqué

Inscrit le: 04 Mar 2005
Messages: 305
Localisation: Ile de France

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 14:28    Sujet du message: Effacer ligne base de données

REMPLACE
$id = $_GET["idann"];
PAR
$id = $_POST["idann"];
 
webac Visiter le site web du posteur
mahdivitche
WRInaute passionné
WRInaute passionné

Inscrit le: 06 Jan 2008
Messages: 519
Localisation: Marrakech maroc

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 14:33    Sujet du message: Effacer ligne base de données

peut étre le probleme dans la relation des tables
 
mahdivitche Visiter le site web du posteur
seebz
WRInaute impliqué
WRInaute impliqué

Inscrit le: 15 Avr 2007
Messages: 331

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 14:56    Sujet du message: Effacer ligne base de données

Simple quote , double quote !

Code:
$sql = "DELETE FROM `t_mus` WHERE `idann`=$id";
 
seebz Visiter le site web du posteur
Stefano
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 12 Fév 2006
Messages: 236
Localisation: Paris

URL permanente de ce messagePosté le : Jeu Mai 29, 2008 14:57    Sujet du message: Effacer ligne base de données

Citation:
Tu vas la mettre ta requete dans phpmyadmin ou pas ? lol


Oui, je l'ai fait et donc ce n'est pas un problème de requête :

Citation:
Citation:
As-tu essayé de tester la requête dans l'administration de la base de données ?



DELETE FROM `t_mus` WHERE `idann` =6

comme ça, ça marche...
.


Citation:
$sql = 'DELETE FROM `t_mus` WHERE `idann` =$id LIMIT 1;';

apres ca tu met : echo $sql;


DELETE FROM `t_mus` WHERE `idann` =$id LIMIT 1;La suppression à échouée Sad

Citation:
$id = $_GET["idann"];
PAR
$id = $_POST["idann"];


très bonne suggestion car si je mets echo $id apparait le bon chiffre donc on est sur la bonne voie et je me demande pourquoi quand il se trouve après idann= il n'est pas remplacé Mad
 
Stefano Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort