Vider une table sous MySQL

[Résolu/Fermé]
Signaler
Messages postés
36
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
25 novembre 2007
-
 Echo -
Bonsoir,

je cherche le moyen de vider une table Mysql en appuyant sur un bouton que je place dans une page Web

Est ce qu il y a qq un qui s'y connait ?

merci

3 réponses


Salut,
Un exemple vaut mieux que des longs discours:

<?php
if(isset($_POST('nom_de_la_table')) {
	//Connexion à la base. 
	$host = "localhost";  
	$user = "ton_login";
	$bdd = "ta_base";
	$password  = "ton_mot_de_passe";
	mysql_connect($host, $user,$password) or die("erreur de connexion au serveur");
	mysql_select_db($bdd) or die("erreur de connexion a la base de donnees");
	
	//Vide la table 'nom_de_la_table'
	$query = "TRUNCATE TABLE `nom_de_la_table`";
	$result = mysql_query($query);
}

//Formulaire
echo "
<form method=\"post\" action=".$_SERVER['PHP_SELF'].">
	<input type=hidden value=\"nom_de_la_table\">
	<input type=submit value=\"Vider la table\">
</form>
";
?>


Kalamit,
Parle à ma culasse, mon carter est malade. :)
29
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
36
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
25 novembre 2007
5
super !!!!

merci pour le code Kalamite, et pense a changer ton carter :)
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
502
Merci Kalamit (et Freelancer pour avoir lancer le sujet). Je cherchais l'instruction MySQL pour vider une table ^^
Messages postés
40
Date d'inscription
lundi 13 décembre 2010
Statut
Membre
Dernière intervention
15 novembre 2012
1
Thank you :)
Messages postés
95
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
29 mai 2012
1
Oublie pas : $result . mysql_close(); car sinon la connexion reste ouverte ...

Fatal error: Can't use function return value in write context in (...... chemnin de la page ...... ) on line 2
Messages postés
95
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
29 mai 2012
1
Tu peut aussi utiliser cette requête mysql : "DELETE FROM 'nom_de_la_table'"
Un peu plus radicale mais, si l'idée est de vider la table ça fonctionne. ( testé sur l'invite de commande mysql )

Comme je disais : Oublie pas : $result . mysql_close(); car sinon la connexion reste ouverte ...

Sujet résolu ?
Messages postés
2898
Date d'inscription
jeudi 26 avril 2001
Statut
Membre
Dernière intervention
21 mars 2013
502
^^' Je crois que tu t'égares. T'as requête est très bien comme elle est.
Tu peux également modifier directement la prochaine valeur de l'AUTO_INCREMENT, mais c'est à tes risques et périls :
ALTER TABLE ta_table AUTO_INCREMENT = 14
(remplace 14 par la valeur que tu souhaites)
Messages postés
95
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
29 mai 2012
1
Donc on ne peut pas c'est bien ce que je pensais. En faite, le truc est que l'auto_increment comme ça fonction l'indique fait toujours en sorte que l'id augmente. Or, comme c'est un panier et que au final je ne garde rien dedans, au bout d'un moment je vais passer la limite que j'ai mise en INT. Le plus simple serait de faire un trigger qui active le truncate à chaque fin de moi non ?
Bonjour,
Je suis ce sujet avec attention, car j'aimerai savoir s'il est possible de supprimer une table avec DELETE FROM, mais via une requête préparée (avec marqueur nominatif) . Lorsque je teste ceci, ça ne fonctionne pas :

$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');


//$bdd->query('DELETE FROM table_test');
$req = $bdd->prepare('DELETE FROM :poss');
$req->execute(array(
'poss'=>$_POST['suffixe_tables']
));

Quelqu'un aurait-il une solution ? merci !
Messages postés
95
Date d'inscription
mardi 17 avril 2012
Statut
Membre
Dernière intervention
29 mai 2012
1
test :
$table = $_POST['suffixe_tables'];
$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$req = $bdd->prepare('DELETE FROM ?);
$req->execute(array($table));
$req->closeCursor();

Cela serra déjà mieux je pense. Après si tu as un message sur le closeCursor() c'est que ta requête ne c'est pas faite par exemple ...
Merci beaucoup Kalamit !!!!