begin process at 2012 05 31 19:00:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Débutant(e)

 > 

utiliser DELETE avec des inputs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

utiliser DELETE avec des inputs

vendredi 14 octobre 2011 à 12:17:39 | utiliser DELETE avec des inputs

theflayer


Bonjour, je débute en php, et je crée (j'essaye) un site pour gérer des demandes utilisateurs.

Je sais utiliser la ligne sql DELETE mais je n'arrive pas a l'utiliser avec des inputs en sortie de boucle.

Voici le code
Code PHP :

<?php
session_start();
include('base.php');
include('head.php');
include('menu_Admin.php');
include('gauche.php');
include('gauche_connecter.php');

$y = 0;
$z = 2

if(isset($_GET['page']))
{
	$y = $y + ($_GET['page']-1) * 2;
	
	Base();
	$sql = 'SELECT * FROM tickets ORDER BY dateTicket ASC LIMIT '.$y.','.$z.'';
	$req = mysql_query($sql);
	$req_nb = mysql_query('SELECT * FROM tickets');	
	$nb = mysql_num_rows($req_nb);
	
	echo'<div id="corps"><br>

	<h4 align="center">Gestion</h4>';

	
	while($data = mysql_fetch_array($req))
	{
		echo
		'<p>Créé le : <font color="black">'.$data['dateTicket'].'</font><br>

		De : <font color="black">'.$data['idUser'].'</font><br>
		Pour Objet : <font color="black">'.$data['objTicket'].'</font><br>
		Avec Status : <font color="black">'.$data['prioTicket'].'</font><br>
		Description : <font color="black">'.$data['descTicket'].'</font><br><br>
		Résolu le : <font color="black">'.$data['date_SoluTicket'].'</font><br>
		Pour Solution : <font color="black">'.$data['soluTicket'].'</font><br><br>
		<form action="gestion.php" method="POST"><input type="submit" name="archive" Value="Archiver" style="color:rgb(105,114,145); background-color:white; border-width:1; border-color:rgb(147,148,150); border-style:solid;">
		<input type="submit" name="relancer" Value="Relancer" style="color:rgb(105,114,145); background-color:white; border-width:1; border-color:rgb(147,148,150); border-style:solid;">
		<input type="submit" name="del" Value="Supprimer" style="color:rgb(105,114,145); background-color:white; border-width:1; border-color:rgb(147,148,150); border-style:solid;">
		</form></p><br>';

	}
	
	$page = ceil($nb / 2);
	echo '<form action="gestion.php" method="GET"><p> Page ';
	
	for($i = 1; $i <= $page; $i++)
	{
		echo '<a href="gestion.php?page='.$i.'">'.$i.'</a>- '; 
	}
	
	echo'</form></p></div>';	
}
else
{
	Base();
	$sql = 'SELECT * FROM tickets ORDER BY dateTicket ASC LIMIT '.$y.','.$z.'';
	$req = mysql_query($sql);
	$req_nb = mysql_query('SELECT * FROM tickets');	
	$nb = mysql_num_rows($req_nb);
	
	echo'<div id="corps"><br>

	<h4 align="center">Gestion</h4>';

	
	while($data = mysql_fetch_array($req))
	{
		echo
		'<p>Créé le : <font color="black">'.$data['dateTicket'].'</font><br>

		De : <font color="black">'.$data['idUser'].'</font><br>
		Pour Objet : <font color="black">'.$data['objTicket'].'</font><br>
		Avec Status : <font color="black">'.$data['prioTicket'].'</font><br>
		Description : <font color="black">'.$data['descTicket'].'</font><br><br>
		Résolu le : <font color="black">'.$data['date_SoluTicket'].'</font><br>
		Pour Solution : <font color="black">'.$data['soluTicket'].'</font><br><br>
		<form action="gestion.php" method="POST"><input type="submit" name="archive" Value="Archiver" style="color:rgb(105,114,145); background-color:white; border-width:1; border-color:rgb(147,148,150); border-style:solid;">
		<input type="submit" name="relancer" Value="Relancer" style="color:rgb(105,114,145); background-color:white; border-width:1; border-color:rgb(147,148,150); border-style:solid;">
		<input type="submit" name="del" Value="Supprimer" style="color:rgb(105,114,145); background-color:white; border-width:1; border-color:rgb(147,148,150); border-style:solid;"></form></p><br>';

	}
	
	$page = ceil($nb / 2);
	echo '<form action="gestion.php" method="GET"><p> Page ';
	
	for($i = 1; $i <= $page; $i++)
	{
		echo '<a href="gestion.php?page='.$i.'">'.$i.'</a>- '; 
	}
	
	echo'</form></p></div>';	
}

include('foot.php');

?>
	


Le but c'est qu'au clic de l'input "del" , ça supprime le message directement .
j'ai réussi a le faire avec un input texte ou on y entrait le ou les n°ID mais c'est pas très classe et très énervant a la longue.

je pensais a faire des itérations sur un session que j'aurais crée a la fin de la boucle mais ce n'a pas donné grand chose..

Si vous pouviez me donner une voie ça serait super !
Merci de votre indulgence pour ce code surement basic et pour cette question.

Vous remerciant d'avance.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
vendredi 14 octobre 2011 à 13:51:08 | Re : utiliser DELETE avec des inputs

nemo_1

Réponse acceptée !
Chalute,

Bon ce que je vois, c'est que tu essaies de supprimer une entrée en cliquer sur un input.

Alors voilà comment j'aurai peut être fait :).

Déjà quelques question:

Pourquoi afficher tes demandes dans un formulaire?
un formulaire n'est pas fait pour cela.

Ce que je te conseille plutôt:

Tu met tes demandes dans un <p></p>.

A la fin tu met 2 liens du genre:

<a href="archiver.php?demande=" . <?php echo urlencode($data['id']); ?> . " title="Archiver cette demande">Archiver</a>
<a href="delete.php?demande=" . <?php echo urlencode($data['id']); ?> . " title="Archiver cette demande">Archiver</a>

Après tu crée 2 pages archiver et du deletes :)

un draft d'une page delete

Code PHP :
//Tu inities ta connection
//Tu inserre ou importe tes functions
//Tu escape tous les entrées de sql dans ta BDD
if{intval($_GET['demande']) == 0)){
//Tu fait un redirect ici car tu ne recoit pas un id
}
$id = escape_function($_GET['demande']);
//Tu peux verifier si il y'a une entrée dans ta BDD de cette demande.
if($demande_exist){
$query = "DELETE FROM demandes WHERE id= . escape_function($id)";
$result = muysql_query($query);
if(mysql_affected_rows == 1){
//C'est ok tu fait un redirect ou tu veux
}else{
//Et bimmm tu fous quoi?:)
}
}


Voilà pour ton archivage tu peux faire pareil.

J'espère t'avoir aider.

Pi: un formulaire juste à un client de communiquer avec ta page 'en post ou en get'.

C'est n'est pas une balise d'affichage.

Bon courage :).

Chalute
vendredi 14 octobre 2011 à 14:10:09 | Re : utiliser DELETE avec des inputs

theflayer

Salut nemo_1 !!

Ta bonne humeur fait plaisir a lire :).

Alors pourquoi j'utilise des formulaire, ben euhhhh ben je connais que ça (pour l'instant)

En faite je ne fais pas de demande, juste j'affiche le contenu de la bdd. Si faut le mettre sur une page en dehors des post et get ça doit être faisable.
Ensuite donc je remplace les input par des liens avec du GET et je m'en sert pour récupérer l'id a supprimer . Ca c'est compris je pense, par contre je comprend pas le escape_function . Je vais commencer par essayer avec les liens et le get.


Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
vendredi 14 octobre 2011 à 14:58:23 | Re : utiliser DELETE avec des inputs

theflayer

Alors un truc..

Ton système avec les GET et des liens a la place des inputs........

Ça marche NIQUEL !! Bon j'ai toujours pas compris certain des tes points que j'essaye d&#8217;étudier mais déjà ça marche et ca c'est cool .
Merci encore Nemo et si tu as le temps a l&#8217;occasion pour m'expliquer les derniers points que tu me conseil de changer.


Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.
vendredi 14 octobre 2011 à 15:51:59 | Re : utiliser DELETE avec des inputs

nemo_1

Chalute,

Désolé, je devais faire quelques courses :)

Bon alors ca avance on dirait.

je te met un code complet car je suis sur mon ordi la:

alors la fontion que j'utilise pour une insertion simple dans la base de donnée:

Code PHP :
function mysql_prep( $value ) {
   $magic_quotes_active = get_magic_quotes_gpc();
   $new_enough_php = function_exists( "mysql_real_escape_string" ); // i.e. PHP >= v4.3.0 ,this func oli exist 4 PHP above v4.3.0
   if( $new_enough_php ) { // PHP v4.3.0 or higher
      // undo any magic quote effects so mysql_real_escape_string can do the work
      if( $magic_quotes_active ) { $value = stripslashes( $value ); }
      $value = mysql_real_escape_string( $value );
   } else { // before PHP v4.3.0
      // if magic quotes aren't already on then add slashes manually
      if( !$magic_quotes_active ) { $value = addslashes( $value ); }
      // if magic quotes are active, then the slashes already exist
   }
   return $value;
}

C'est une fonction très portable mais peu te sembler un peu compliquer.

Voilà en gros ce qu'il fait.

Il verifie la version de ton php pour voir s'il y'a mysql_escape_string() qui est valide pour toi ou pas.

Après il check si ton magic_quotes_gpc est actif et au cas contraire addslashes() qui permet d'entrer des données on va dire safe dans le tableau.

Tu peux trouver d'autres functions plus simple n'hesite pas à prendre quelque chose que tu comprend.

alors voilà un exmple plus complet d'une page delete par exple:

Code PHP :
<?php require_once("connection.php"); ?>
<?php require_once("functions.php"); ?>
<?php
   //Demande correspond au get passer dans l'url donc fait gaffe
   if(intval($_GET['demande']) == 0){
      redirect_to("outuveux.php");
   }
   $id = mysql_prep($_GET["demande"]);
   if($demande = fonctionderechechedelademande($id)){
      $query = "DELETE FROM demandes WHERE id = {$id}";
      $result = mysql_query($query);
      if(mysql_affected_rows() == 1){
	 //Success
	 redirect_to("outuveux.php");
      }else{
	 //failure
         //Mouais....
      }
   }
?>
<?php mysql_close($connection); ?>


Pour la fonction qui verifie ta demande si elle existe dans ta base de donnée, voilà ce que je peux te donner:

Code PHP :
function get_subject_by_id($demande_id){
   if(!empty($demande_id)){
      $query = "SELECT * FROM demande ";
      $query .= " WHERE id = ". $demande_id . " ";
      $query .= " LIMIT 1";
      $result_set = mysql_query($query) or die("Mysql query
	    failed");
      //REMEMBER
      //If result_set is empty, the fetch will return false.
      //To avoid that, do an if statement
      if($demande = mysql_fetch_assoc($result_set)){
	 return $demande; 
      }else{

      }
   }


Bon j'ecris en anglais car je préfere cela :)
en gros tu te connectes a ta BDD et tu vois si ta demande existe dans ta BDD.
Si ton return t'envoie bien une demande c'est que ta demande est dans ta base de donnée donc tu peux la supprimer.

Sinon c'est pas bon.

Ce n'est pas primordial de faire ce check mais plus de sécurité est toujours bien.

cela permet de ne pas avoir un gugus qui va mettre dans ton lien:

www.demandes.php?demand=2736455463474834 alors que cet id n'existe pas.

Donc tu le redirige automatiquement vers le listing des demandes si tu veux en lui disant que cette demande n'existe pas.
Par contre a ce niveau si tu fait un redirect, tu dois mettre ton message dans un cookie et lafficher après mais bon fait simple d'abord.

Pour rediriger voici une fonction simple.
Code PHP :
function redirect_to($location){
   if(!empty($location)){
      header("Location:{$location}");
      exit;
   }
}
//Et après tu peux faire redirect_to("monindex.php")


Au plaisir et a bientôt :)

Bon courage
dimanche 16 octobre 2011 à 11:27:44 | Re : utiliser DELETE avec des inputs

theflayer

Super !!! Je m'entraine a essayer tes fonctions, mais en tous cas j'ai enfin reussi a faire ce que je voulais. J'utilisais jamais les get, mais en faite c'est super utile ! Donc encore un grand merci a toi !


Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.


Cette discussion est classée dans : req, mysql, data, echo, nb


Répondre à ce message

Sujets en rapport avec ce message

Probleme envoie de variable. [ par apledam ] Bonjour a tous.J'ai un petit problème, j'ai créer une base de données contenant des infos et des photos j'aimerais afficher les infos dans une premier UPDATE de plusieurs enregistrements dans une boucle [ par kd ] Bonjour à tous, j'essaie depuis un bout de temps de modifier un ensemble d'enregistrement dans une base à l'intérieur d'une boucle mais j'ai une erreu aide pour un code php je debute et j n'y comprends rien [ par rober ] Roberun ami m'a fait un code en php pour:-1-creer une base de donnees a partir d'un fichier txt-2-effectuer une recherche dans cette base de donnees-3 MySQL id? [ par Linuss ] Bonjour à tous, Voilà, lorsque j'essaie de faire un lien qui contient l'id (qui existe au ca sou quelqu'un poserait la question :) d'un tuto, je n'y a Le filtre ne fonctionne pas [ par Joleroy ] Salut a tous!J ai cree une page appelé Kits.php qu j appelle par Kit.php?tipekit=type_du_kitVoici son code:$type=$_GET['typekit'];$connect = mysql_con envoyer des données récupérer dans une autre page php [ par titsuisse ] Bonjour,Je suis débutant en php et je suis coincé. Voilà mon problème. Je veux faire un site de petites annonces. J'ai plusieurs tables. J'ai une page Mysql erreur, mais où ? [ par Tilix ] Bonjour,Je voudrais savoir où est l'erreur dans ceci :while($data = mysql_fetch_assoc($req))     {   if ('!'.$data['id'].'') { echo '(0)'; }    else { multiple insertion dans mysql via un formulaire php [ par wizard512 ] je suis entrain d'éllaborer un script qui permet de multiple insertion dans mysql via un formulaire php.. mais je bloque pour la dernière étapes, quel afficher photo sur une ligne [ par 01cod10 ] J'aimerai afficher la photo des 10 derniers enregistrements de ma table. Avec ce script les photos s'affichent l'une en desous de l'autre comment fair pb avec UPDATE [ par justine75 ] bonjour à tous!voilà j'essaye de mettre à jour une base de données mais la requete avec mon UPDATE rencontre quelque problèmevoici mon code : [code]//


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,530 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales