Aucun changement n'est effectué sur ma base de données
Ihab25
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Ihab25 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Ihab25 Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'utilise un formulaire PHP pour modifier des données sur ma base mais je rencontre un problème:
rien ne se fait sur ma base et pourtant tous me semble normale,
Pourriez vous m'aider svp?
Voici mes trois pages:
Deuxième page
Troisième page
Je vous remercie d'avance,
J'utilise un formulaire PHP pour modifier des données sur ma base mais je rencontre un problème:
rien ne se fait sur ma base et pourtant tous me semble normale,
Pourriez vous m'aider svp?
Voici mes trois pages:
<?php
//connexion au serveur
$serveur= 'localhost';
$database= 'assos';
$username= 'root';
$password= '';
$cnx= $mysqli= new mysqli($serveur,$username, $password,$database);
if ($mysqli-> connect_error){
die('Echec de la connexion:('. $mysqli->connect-errno.')'.$mysqli_connect_error);
}
$sql= "SELECT * FROM association as a LEFT OUTER JOIN association_mission as am ON a.id_a= am.id_a LEFT OUTER JOIN mission as m ON m.id_m= am.id_m ";
$requete= $mysqli-> query ($sql);
while ($result= $requete -> fetch_object ()){
echo (
"<div align=\"center\">"
.$result->nom_a."</br>".$result->sigle_a. "</br>".$result->nom_m
."</br><a href=\"modificationTest2.php?idAssosmission=".$result->id_a_m."\">modifier</a></div>\n"
);
}
?>
Deuxième page
<!DOCTYPE html PUBLIC>
<html>
<head>
<meta http-equiv="Content-Type" content= "text/html; charset=utf-8" />
<title> Modification2 </title>
</head>
<body>
<?php
//connexion au serveur
$serveur= 'localhost';
$database= 'assos';
$username= 'root';
$password= '';
$cnx= $mysqli= new mysqli($serveur,$username, $password,$database);
if ($mysqli-> connect_error){
die('Echec de la connexion:('. $mysqli->connect-errno.')'.$mysqli_connect_error);
}
//Récupération des données
$id_a_m =$_GET["idAssosmission"];
echo $id_a_m;
//$id_m =$_GET["idMission"];
//echo $id_m;
$sql= 'SELECT * FROM association as a LEFT OUTER JOIN association_mission as am ON a.id_a= am.id_a LEFT OUTER JOIN mission as m ON m.id_m= am.id_m
WHERE am.id_a_m= "'.$id_a_m.'"';
//$sql= 'SELECT * FROM association as a LEFT OUTER JOIN association_mission as am ON a.id_a= am.id_a LEFT OUTER JOIN mission as m ON m.id_m= am.id_m';
//exécution de la requête SQL:
$requete = $mysqli->query($sql) or die( 'Erreur'.$requete.''.$mysqli->error) ;
//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
?>
<form id="modificationTest2" name="form1" method= "post" action= "modificationTest3.php"/>
<input type="hidden" name="idAssosmission" value= "<?php echo($id_a_m); ?>">
<p>
<label> Denomination:
<input type = "text" name= "nom_a" >
</label>
</p>
<p>
<label> Sigle:
<input type = "text" name= "sigle_a" >
</label>
</p>
<p>
<label> Mission:
<input type = "text" name= "nom_m" >
</label>
</p>
<p>
<label>
<input type = "submit" name= "bouton" value= "envoyer">
</label>
</p>
</form>
<?php
}
?>
</body>
</html>
Troisième page
<?php
//connexion au serveur
$serveur= 'localhost';
$database= 'assos';
$username= 'root';
$password= '';
$cnx= $mysqli= new mysqli($serveur,$username, $password,$database);
if ($mysqli-> connect_error){
die('Echec de la connexion:('. $mysqli->connect-errno.')'.$mysqli_connect_error);
}
//Récupération des données
//$id= 'SELECT id_a_m FROM association_mission';
$nom_a = $_POST['nom_a'];
$sigle_a = $_POST['sigle_a'];
$nom_m = $_POST['nom_m'];
$id_a_m = $_POST['idAssosmission'];
$id_a= 'SELECT id_a FROM association_mission';
$requete = $mysqli->query($id_a) or die( 'Erreur'.$requete.''.$mysqli->error ) ;
$id_m ='SELECT id_m FROM association_mission';
$requete = $mysqli->query($id_m) or die( 'Erreur'.$requete.''.$mysqli->error ) ;
/*$sql= 'C personne
SET nom ="'.$nom.'",
prenom ="'.$prenom.'",
adresse ="'.$adresse.'"
WHERE id= "'.$id.'"';*/
if (empty($nom_a) OR empty($sigle_a) OR empty($nom_m))
{
echo " Tous les champs doivent etre remplis";
}
else
{
echo "Recapitulatif des informations saisies</br>\n
Denomination : ".$nom_a."</br>\n
Sigle : ".$sigle_a."</br>\n
Mission : ".$nom_m."</br>\n
";
//$sql= 'SELECT * FROM association as a LEFT OUTER JOIN association_mission as am ON a.id_a= am.id_a LEFT OUTER JOIN mission as m ON m.id_m= am.id_m
//WHERE am.id_a_m= "'.$id_a_m.'"';
$sql2= 'UPDATE association
SET nom_a = "'.$nom_a.'",
sigle_a ="'.$sigle_a.'"
WHERE id_a = "'.$id_a.'"'
;
$requete = $mysqli->query($sql2) or die( 'Erreur'.$requete.''.$mysqli->error ) ;
$sql3= 'UPDATE mission
SET nom_m = "'.$nom_m.'"
WHERE id_m = "'.$id_m.'"';
$requete = $mysqli->query($sql3) or die( 'Erreur'.$requete.''.$mysqli->error ) ;
//exécution de la requête SQL:
//$requete = $mysqli->query($sql) or die( 'Erreur'.$requete.''.$mysqli->error) ;
//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo("La modification a ete correctement effectuee") ;
}
else
{
echo("La modification a echouee") ;
}
}
?>
Je vous remercie d'avance,
A voir également:
- Aucun changement n'est effectué sur ma base de données
- Changer de dns - Guide
- Base de registre - Guide
- Effacer les données de navigation sur android - Guide
- Trier des données excel - Guide
- Changement d'écriture facebook - Guide
1 réponse
Salut,
Je te conseil d'afficher les requête que tu exécutes car celles-ci ne semble pas correctes.
Par exemple dans la troisième page, la requête contenu dans $sql2 utilise la variable $id_a :
Or la variable $id_a contient une requête sql et non un identifiant :
La requête $sql2 n'est donc pas correcte.
La requête contenu dans la variable $id_a est exécutée mais le résultat n'est jamais récupérer (fetch) ce qui n'a aucun intérêt. Tu dois récupérer le résultat de cette requête pour ensuite l'utiliser dans la requête contenu dans $sql2.
Bonne journée,
Je te conseil d'afficher les requête que tu exécutes car celles-ci ne semble pas correctes.
Par exemple dans la troisième page, la requête contenu dans $sql2 utilise la variable $id_a :
$sql2= 'UPDATE association SET nom_a = "'.$nom_a.'", sigle_a ="'.$sigle_a.'" WHERE id_a = "'.$id_a.'"' ;
Or la variable $id_a contient une requête sql et non un identifiant :
$id_a= 'SELECT id_a FROM association_mission';
La requête $sql2 n'est donc pas correcte.
La requête contenu dans la variable $id_a est exécutée mais le résultat n'est jamais récupérer (fetch) ce qui n'a aucun intérêt. Tu dois récupérer le résultat de cette requête pour ensuite l'utiliser dans la requête contenu dans $sql2.
Bonne journée,
Toutefois je rencontre un autre problème,
J'ai voulu faire un formulaire pour chaque table,
un formulaire pour la table Assos, un autre pour la table assos-thema, la troisième table thematique étant dèjé pré-rempli,
Je voulais récupérer les id de l'assos entrée, puis les thématique cochée pour les insérer dans la table assos_théma,
Le problème c'est que ça marche pas, j'arrive à récupérer seulement l'id de la dernière théma saisie, moi je voulais toute celle cochées,
Merci pour ton aide,
Je suppose que le problème vient du fait que tes cases à cocher possèdent toutes le même attribut nom, dans ce cas seule la dernière case cochée est envoyée.
La solution est de nommer tes cases à cocher sous forme d'un tableau (en ajoutant des [] après le nom) :
Ainsi ton paramètre php $_GET['thematique'] ou $_POST['thematique'] sera sous la forme d'un tableau contenant les valeurs des différentes cases cochées.
Bonne journée
J'ai ce message d'erreur
SELECT id_t FROM thematique WHERE nom_t = "sport"ErreurCannot add or update a child row: a foreign key constraint fails (`testdb`.`association_thematique`, CONSTRAINT `association_thematique_ibfk_3` FOREIGN KEY (`id_t`) REFERENCES `thematique` (`id_t`))