Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/05/2011, 08h32   #1
Invité de passage
 
Inscription : mai 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 5
Points : 1
Points : 1
Par défaut Problème SQL ou PHP

Bonjour, je ne comprend pas pourquoi ma fonction sql delete ne fonctionne pas sauf si je fais un F5 (refresh) peut être que quelqu'un sera m'aider cela fait plusieurs jours que je bloque. Merci par avance.
c'est une gestion de timbre de france
Voici mon code :
ce code permet d'afficher ma liste avec un bouton supprimer:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<html>
<head>
<title>Consultation de timbre</title>
</head>
<body>
<?
$search = $_POST['annee'];// année à consulter
$pays = "france";
//paramêtre de connection provisoire
mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
//connection à la base de donnée continent pour trouver le continent auquel appartient le pays saisie
mysql_select_db("pays") or exit (mysql_error());
$sql  = mysql_query("SELECT Pays, continent FROM pays WHERE pays='$pays'")or exit (mysql_error());
while ($donnee = mysql_fetch_array($sql))
{
	$continent = $donnee['continent'];
	$pays = $donnee['Pays'];
}
mysql_close();
mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
mysql_select_db("$pays") or exit (mysql_error()); //recherche dans la base de donnée pays
$sql = mysql_query("SELECT Num_Yvert_et_Tellier, Poste, Cote_Neuve, Cote_Charniere, Cote_Oblitere, pays FROM `$search`")or exit (mysql_error());//lecture de l'année sélectionner
//requête pour afficher les images
$affichage = mysql_query("SELECT Num_Yvert_et_Tellier, pays FROM `$search`") or exit (mysql_error());
//ENREGISTREMENT DANS LA TABLE VARIABLE
mysql_close();
mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
mysql_select_db("variablefrance") or exit (mysql_error()); //recherche dans la base de donnée variable
mysql_query("INSERT INTO variablefrance (annee, pays) VALUES ('".$search."','".$pays."')") or exit (mysql_error());
//echo "L insertion s est bien déroulée !";
 
?>
 
<br>
	<table border align=center>
 
		<tr>
			<th>N°Yvert & Tellier</th>
			<th>Poste</th>
			<th>Côte Neuve</th>
			<th>Côte Charnière</th>
			<th>Côte Oblitéré</th>
			<th>pays</th>
			<th>Aperçu</th>
			<th>Modifier</th>
			<th>Supprimer</th>
		</tr>	
<?
while ($donnee = mysql_fetch_array($sql) and $result = mysql_fetch_assoc($affichage))
	{
	?>	
		<tr>
			<form method="post" action="modification.php">
				<th><?echo $donnee['Num_Yvert_et_Tellier'];?></th>
				<th><?echo $donnee['Poste'];?></th>
				<th><?echo $donnee['Cote_Neuve'];?></th>
				<th><?echo $donnee['Cote_Charniere'];?></th> 
				<th><?echo $donnee['Cote_Oblitere'];?></th>
				<th><?echo $donnee['pays'];?></th>
				<th>
					<a>
						<?echo '<a href="apercufrance.php?Num_Yvert_et_Tellier='.$result[Num_Yvert_et_Tellier].'"><img src="apercufrance.php?Num_Yvert_et_Tellier='.$result[Num_Yvert_et_Tellier].'" alt="'.$result[nom].'" title="'.$result[nom].'" height=40 width=40"/></a>';?>
					</a>
				</th>
				<th>
			</form>
					<!--PARTIE MODIFICATION D UN TIMBRE-->
					<form action="modificationfrance.php">
						<? echo '<a href="modificationfrance.php?modifier= ' .$donnee['Num_Yvert_et_Tellier'] .'">';?>Modifier</a>
						<?	
							if (isset($_GET['Num_Yvert_et_Tellier'] ))
							{
								echo "ce n'est pas une modification, erreur";
							}
						?>
					</form>
				</th>
					<th>
					<!--PARTIE SUPPRESSION D'UN TIMBRE-->	
					<a href="confirmation_france.php?modifier=<?php echo $donnee['Num_Yvert_et_Tellier']; ?>"  onclick="return(confirm('Etes-vous sûr de vouloir supprimer cette entrée?'));">Supprimer</a>			
					</th>
		</tr>
	<?
	}
	?>
	</table>
<p align=center><form action="accueil.html">
	<input type="submit" value="Accueil"></P>
</form>
	<p align=center><form action="recherche.html">
	<input type="submit" value="retour"></P>
</form>
et celui la de supprimer les données.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
// On protège la variable "modifier" pour éviter une faille SQL
 
if (isset($_GET['modifier'])) // Si on demande de supprimer un timbre
{
	//connection
	mysql_connect("localhost", "root", "") or exit (mysql_error()); 
	mysql_select_db("variablefrance") or exit (mysql_error());
	$sql  = mysql_query("SELECT max(id_var) FROM variablefrance")or exit (mysql_error());
	WHILE($var1=mysql_fetch_array($sql))
	{
		$idvar_max = $var1[0];//idmax enregistrer dans la table variablefrance
	}
 
	$retour = mysql_query("SELECT annee, pays FROM variablefrance WHERE id_var='$idvar_max'") or exit (mysql_error());
	WHILE($var2 = mysql_fetch_array($retour))
	{
		$annee = $var2[0];
		$pays = $var2[1];
	}
 
	mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
	mysql_select_db("$pays") or exit (mysql_error());//connection à la base de donnée du pays
 
	$_GET['modifier'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier']));
	$num_yt = $_GET['modifier'];
	//$delette = mysql_query ("DELETE FROM $annee WHERE Num_Yvert_et_Tellier = $num_yt") or die(mysql_error());//probleme voir msg ie 
	$delette = mysql_query ("DELETE FROM `1871` WHERE Num_Yvert_et_Tellier ='".$num_yt."'") or die(mysql_error());//probleme voir msg ie 
	//$delette=mysql_query ("Delette from `1871`") or die(mysql_error());
	if ($delette) echo "Sup effectué";
	else echo "sup impossible";
	require ("accueil.html");
	//echo "Suppression effectué avec succès";
}
c'est ce code qui ne fonctionne pas.
j'ai crée la même chose pour la gestion de timbre des pays étranger[ et tout fonctionne très bien la différence c'est le nom des tables dans ma base de données. Merci par avance
francois50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2011, 09h05   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ne fais pas ton affichage avant ton DELETE.

Par ailleurs pour afficher le max id tu n'as pas besoin de 2 requêtes :
Code :
SELECT annee, pays FROM variablefrance ORDER BY id DESC LIMIT 1
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 09h17   #3
Invité de passage
 
Inscription : mai 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 5
Points : 1
Points : 1
Par défaut Problème SQL ou PHP re

Bonjour sabotage,

Merci pour ta réponse, je ne vois pas trop comment retrouver les variables $pays et $année sans faire un affichage.
francois50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 09h51   #4
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Salut

Citation:
Envoyé par francois50 Voir le message
je ne vois pas trop comment retrouver les variables $pays et $année sans faire un affichage.
Tu mets la requêtes DELETE avant la requête SELECT. C'est à dire au début du bloc if (isset($_GET['modifier']).

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 15h15   #5
Invité de passage
 
Inscription : mai 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 5
Points : 1
Points : 1
Par défaut re

Salut,

Merci pour ta réponse, avec ton idées le delete fonctionne que lorsque j'utilise
un delete pour vider la table complètement comme ceci
Code :
$delette=mysql_query ("Delete from `1871`");
mais moi il me faut une condition comme ceci :
Code :
	$delette = mysql_query ("DELETE FROM `1871` WHERE Num_Yvert_et_Tellier ='".$num_yt."'") or die(mysql_error());
.
Je suis pas sur de ma syntaxe pour le delete. Quant pense-tu ?
francois50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 15h43   #6
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 128
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 128
Points : 7 270
Points : 7 270
Re,

1 - Ne commence pas un nom de table avec un chiffre.
2 - Fait echo de le requête et lance le dans phpMyadmin si ça fonctionne.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/06/2011, 16h56   #7
Invité de passage
 
Inscription : mai 2011
Messages : 5
Détails du profil
Informations forums :
Inscription : mai 2011
Messages : 5
Points : 1
Points : 1
Par défaut Probleme SQL ou PHP

Salut,

Problème résolut sans doute un oublie de variable de ma part. Merci pour vos réponse.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
// On protège la variable "modifier" pour éviter une faille SQL
if (isset($_GET['modifier'])) // Si on demande de supprimer un timbre
{
	//connection
	mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
	//connection à la base de donnée pays pour trouver le continent auquel appartient le pays saisie
	mysql_select_db("variable") or exit (mysql_error());
	$sql  = mysql_query("SELECT max(id_var) FROM variable")or exit (mysql_error());
	WHILE($var1=mysql_fetch_array($sql))
		{
			$idvar_max = $var1[0];//continent enregistrer dans la table variable
		}
		$sql2=mysql_query("SELECT continent FROM VARIABLE WHERE id_var='$idvar_max'")or exit (mysql_error());
		WHILE($var1=mysql_fetch_array($sql2))
		{
			$continent = $var1[0];//continent enregistrer dans la table variable
		}
 
		$result = mysql_num_rows($sql);
		IF($result == 1)
		{
			$sql2=mysql_query("SELECT pays FROM VARIABLE WHERE continent='$continent'")or exit (mysql_error());
			WHILE($var1=mysql_fetch_array($sql2))
			{
				$pays = $var1[0];//pays enregistrer dans la table variable
			}
		}		
 
	mysql_close();
	mysql_connect("localhost", "root", "") or exit (mysql_error());//connection au serveur MYSQL
	//connection à la base de donnée pays pour trouver le continent auquel appartient le pays saisie
	mysql_select_db("$continent") or exit (mysql_error());
	$_GET['modifier'] = mysql_real_escape_string(htmlspecialchars($_GET['modifier']));
	$id_timbre = $_GET['modifier'];
	// On récupère les infos du timbre correspondant
	$retour = mysql_query("SELECT id_timbre FROM `$pays` WHERE id_timbre=".$id_timbre."") or exit (mysql_error());
	$donnees = mysql_fetch_array($retour);
	// On place toutes les variables dans des variables simples
	$id_timbre = stripslashes($donnees['id_timbre']);
	$delete=mysql_query ("Delete from `$pays` where id_timbre='$id_timbre'") or die(mysql_error());
	echo "Suppression effectuée avec succès";
	require("recherche.php");
Pour infos.
francois50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h04.


 
 
 
 
Partenaires

Hébergement Web