

#1
Posté 18 February 2011 - 22:38 PM
tout d'abord merci pour ce magnifique tuto php ajouter, modifier, supprimer (mysql)
j'essaie de comprendre : a quel moment doit on inclure l'id d'un commentaire: (les champs d'un id de la BDD)
afin de pouvoir modifier les champs d'un id en particulier?
j'ai un tout ptit peu de mal avec vos page modification1, modification2, modification3 (.php)
pas très explicite !!
est-ce que dés l'ajout de données dans la table il faut attribuer un id (en plus de celui créer par mysql)??
ou bien au moment ou l'on récupère les données de la BDD et que l'on y insère un lien vers la page de modification ??
la vraie question est que dois-je comprendre de : $id = $_GET['id'] ??
$id est la variable, mais $_GET['id'] quest-ce que c'est , à quoi ça correspond, qu'est ce que ça va chercher??
Merci à tout ceux qui me répondront
#2
Posté 19 February 2011 - 11:07 AM
#3
Posté 19 February 2011 - 12:09 PM
ou pourrais-je trouver une explication à ma question car google (n'est pas mon ami dans ce cas là)
sauf si je ne pose pas la bonne question
ou sinon une réponse simple et clair par vos soins serait là bienvenue
merci
#4
Posté 19 February 2011 - 15:22 PM
[Edit] Pour en savoir plus sur GET voir par exemple: http://www.notre-pla...PHP/cours_9.php
(trouvé en cherchant URL GET dans google)
#5
Posté 19 February 2011 - 18:50 PM
voila en fait ce qui pose probleme dans la lecture du super tuto c'est :
<a href=\"modification2.php?idPersonne=".$result->id_personne."\">modifier</a>
à quoi correspond idPersonne et id_personne car je ne vois pas à quoi ça correspond
s'agit -il d'une variable et d'un champ de la table ????
merci pour vos réponses
#6
Posté 20 February 2011 - 12:50 PM
Effectivement il y avait de quoi se poser des questions sur qu'est-ce que peux bien être $result->id_personne

Je viens de rectifier tout cela. En fait j'avais pas testé le code du tuto. Là je viens de le faire, et je crois que maintenant c'est bon. En tout cas chez moi ça marche.
Donc pour répondre à ta question:
- idPersonne c'est donc le nom de la variable qui sera passé DANS l'URL avec la méthode GET
- $result->id c'est l'id de l'enregistrement pour une personne qu'on a récupéré en lisant la base.
Ces explications te suffisent-elles?
P.S: Après mon dernier message, j'avais encore continué à travailler un peu le tuto pour essayer que ce soit plus détaillé. As-tu vu l'exemple avec DURAND Marcel? Si oui tu as déjà lu la dernière version de la page (à la modification id/id_personne près)
#7
Posté 20 February 2011 - 16:15 PM
un dernier ptit conseil , voila mon code concernant la partie de l'url qui renvoi l'id du message:
mysql me renvoie: Trying to get property of non-object pour la ligne ou il y a --->>>,
l'aurais je mal écrite ???
<div id="window_sujet">
<div class="titre">
<div class="info_titre"><?php echo htmlentities($data['titre']); ?></div>
--->>> <?php echo ("<div class='modifier'><a href=\"modif.php?idsave=".$data->id."\">Modifier</a></div>"); ?>
<?php if(!empty($data['auteur'])){ ?><div class="auteur"><?php echo htmlentities($data['auteur']); ?></div><?php } ?>
<?php if(!empty($data['date'])){ ?><div class="date"><?php echo htmlentities($data['date']); ?></div> <?php } ?>
</div>
<div class="apercu"><?php echo htmlentities($data['apercu']); ?></div>
<div class="sujet_complet"><?php echo htmlentities($data['reste']); ?></div>
</div>
<?php } ?>
merci encore pour ce tuto très bien expliquer
#8
Posté 20 February 2011 - 16:49 PM
artenis, le 20 February 2011 - 16:15 PM, dit :
C'est php (pas mysql) qui te dit que tu essaies d'accéder à une propriété d'un objet qui n'en est pas un.
Pour accéder à une propriété d'un objet, on utilise la syntaxe $unObjet->unePropriete.
Toi tu fais $data->id
php à l'air de te dire que $data n'est pas un objet, donc il ne peut pas faire ce que tu lui demande.
Je vois qu'effectivement tu utilises mysql_fetch_assoc pour parcourir tes résultats. Cette fonction renvoie un tableau associatif (voir la doc de php), et pas un objet. C'est pour ça que ça marche quand tu fais $data['titre'], par exemple.
Le tuto lui utilise mysql_fetch_object qui renvoie un objet, et qui permet de faire $data->titre pour accéder au champ titre. Il faut que tu choisisses entre les 2. Ne me demande pas les avantages ou inconvénients, je ne les connais pas

#9
Posté 20 February 2011 - 17:04 PM
j'avoue que je pige pas encore toutes les erreurs php.
Probleme résolu j'ai parlé trop vite
<div id="window_sujet">
<div class="titre">
<div class="info_titre"><?php echo htmlentities($data->titre); ?></div>
<?php echo ("<div class='modifier'><a href=\"modif.php?idsave=".$data->id."\">Modifier</a></div>"); ?>
--->>> <?php if(!empty($data['auteur'])){ ?><div class="auteur"><?php echo htmlentities($data->auteur); ?></div><?php } ?>
<?php if(!empty($data['date'])){ ?><div class="date"><?php echo htmlentities($data->date); ?></div> <?php } ?>
</div>
<div class="apercu"><?php echo htmlentities($data->apercu); ?></div>
<div class="sujet_complet"><?php echo htmlentities($data->reste); ?></div>
</div>
<?php } ?>
Modifié par artenis, 20 February 2011 - 17:06 PM.
#10
Posté 20 February 2011 - 17:47 PM
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = '5'' at line 6
a propos de cette ligne :$recup = "SELECT * FROM save WHERE id = '$id'";
avec mysql 5.1.36 et 5.5.8
je n'arrive vraiment pas à trouver la solution
de plus dans le tuto vous marquez deux choses différentes:
modification2.php :WHERE id = ".$id;
modification3.php : WHERE id = '$id' " ;
encore merci pour votre soutient
#11
Posté 20 February 2011 - 18:01 PM
printf($format, $num, $location);
dans ton cas :
$recup = printf("SELECT * FROM save WHERE id = %d", $id);
@+
#12
Posté 20 February 2011 - 20:50 PM
j'ai bien lu le sujet sur printf et sprintf,
pourriez-vous une dernière fois me dire ou est mon problème,
mysql_connect('localhost','root','');
mysql_select_db('ajout');
$id = $_GET["idsave"] ;
$recup = printf("SELECT * FROM save WHERE id = %d", $id);
$req = mysql_query($recup) or die ('Impossible de récupérer les données'. mysql_close());
if( $result = mysql_fetch_object($req)){
?>
<form method="post" action="miseajour.php" id="f" >
<input type="hidden" name="id" value="<?php echo($id) ;?>">
voici l'erreur:
SELECT * FROM save WHERE id = 1Impossible de récupérer les données1
merci
#13
Posté 20 February 2011 - 21:00 PM
artenis, le 20 February 2011 - 20:50 PM, dit :
j'ai bien lu le sujet sur printf et sprintf,
pourriez-vous une dernière fois me dire ou est mon problème,
mysql_connect('localhost','root','');
mysql_select_db('ajout');
$id = $_GET["idsave"] ;
$recup = printf("SELECT * FROM save WHERE id = %d", $id);
$req = mysql_query($recup) or die ('Impossible de récupérer les données'. mysql_close());
if( $result = mysql_fetch_object($req)){
?>
<form method="post" action="miseajour.php" id="f" >
<input type="hidden" name="id" value="<?php echo($id) ;?>">
voici l'erreur:
SELECT * FROM save WHERE id = 1Impossible de récupérer les données1
merci
je viens de modifier mysql_close() par mysql_error()
mais j'ai toutjours l'erreur:
SELECT * FROM save WHERE id = 1Impossible de récupérer les données
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '31' at line 1
#14
Posté 20 February 2011 - 21:55 PM
le problème se situe à la dernière ligne de :
**Mise à jour des champs dans la base de données
**************************************************/
$sql = 'UPDATE save SET titre ="$titre",
date ="$date",
auteur ="$auteur",
apercu ="$apercu",
reste ="$reste",
WHERE id = "'.$id.'" ' ;
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = "1"' at line 6.
que je mette : WHERE id = ".$id ; ou WHERE id = '$id' " ;
j'ai toujours la même erreur,
s'il vous plait une bonne âme pourrait me trouver et corriger mon erreur
je suis sur ce code depuis 3 jours
Modifié par artenis, 20 February 2011 - 21:56 PM.
#15
Posté 20 February 2011 - 23:12 PM
artenis, le 20 February 2011 - 21:55 PM, dit :
le problème se situe à la dernière ligne de :
**Mise à jour des champs dans la base de données
**************************************************/
$sql = 'UPDATE save SET titre ="$titre",
date ="$date",
auteur ="$auteur",
apercu ="$apercu",
reste ="$reste",
WHERE id = "'.$id.'" ' ;
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id = "1"' at line 6.
que je mette : WHERE id = ".$id ; ou WHERE id = '$id' " ;
j'ai toujours la même erreur,
s'il vous plait une bonne âme pourrait me trouver et corriger mon erreur
je suis sur ce code depuis 3 jours
Problème résolu : reste ="$reste" il faut enlever la virgule après $reste
Après quatre heures sur le même script la tête ne marche plus
merci encore pour les personnes qui ont pris le temps de me répondre
Modifié par artenis, 20 February 2011 - 23:12 PM.
#16
Posté 21 February 2011 - 09:29 AM
Une petite idée pour tester tes requêtes indépendamment du php:
Si par exemple la requête de modification3.php te cause une erreur, tu peux modifier ton script de cette façon. A lieu de faire
//récupération des valeurs des champs:
//nom:
$nom = $_POST["nom"] ;
//etc
//création de la requête SQL:
$sql = "UPDATE personnes
SET nom = '$nom',
prenom = '$prenom',
adresse = '$adresse',
cp = '$cp',
telephone = '$tel',
WHERE id = '$id' " ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
// Affichage des résultats
if( $result = mysql_fetch_object($req)){
// etc
// fin
Tu fais:
//récupération des valeurs des champs:
//nom:
$nom = $_POST["nom"] ;
//etc
//création de la requête SQL:
$sql = "UPDATE personnes
SET nom = '$nom',
prenom = '$prenom',
adresse = '$adresse',
cp = '$cp',
telephone = '$tel',
WHERE id = '$id' " ;
//Affichage de la requête SQL:
echo "<pre>";
print_r($sql);
echo "</pre>";
// fin
Comme cela ton navigateur se contente d'afficher la requête que tu veux utiliser. par exemple il affiche:
Citation
SET nom = 'DURAND',
prenom = 'Marcel',
adresse = '2 rue des courgettes MEUDON',
cp = '35650',
telephone = '02 55 65 98 44',
WHERE id = '3'
Puis tu vas dans ton interface de gestion de la BDD (phpMyAdmin par exemple) et tu y colles la requête:
Puis tu cliques sur le bouton exécuter. Comme cela tu vois si la requête est bonne ou si elle contient une erreur.
S'il y a une erreur tu peux alors essayer de la modifier directement pour essayer de la corriger. Cette façon de faire te permet de travailler directement sur la requête et de ne pas remettre en cause ton code php. Quand tu auras trouvé la bonne requête, il te restera à écrire le code php qui la génère correctement.
#17
Posté 21 February 2011 - 10:00 AM

Par exemple :
Citation
NB : même si ma fréquentation assidue des écrans d'ordi fini par fatiguer la vue, je ne pense pas qu'il soit nécessaire, d'écrire aussi gros et aussi gras pour te faire comprendre

[edit ] voire même ça nuit : je m'aperçois à lire le hurlement du message 13 que tu avais la ligne d'erreur… comme quoi
une tartine de tutos
#18
Posté 21 February 2011 - 18:59 PM
je reviens encore vers vous pour un problème au niveau de la suppression
voici mes codes : page de visualisation des commentaires :
function supp(id)
{
var confirmation = confirm( "Voulez vous vraiment supprimer ce sujet ?" ) ;
if( confirmation )
{
document.location.href = "supprim.php?idsupp=".id ;
}
}
</script>
</head>
<body>
<?php
mysql_connect("localhost","root","");
mysql_select_db("ajout");
$sql = 'SELECT * FROM save';
$req = mysql_query($sql) or die(mysql_error());
?>
<?php while($data = mysql_fetch_object($req)) {?>
<div id="window_sujet">
<div class="titre">
<div class="info_titre"><?php echo htmlentities($data->titre); ?></div>
<?php echo ("<div class='modifier'><a href=\"modif.php?idsave=".$data->id."\">Modifier</a></div>"); ?>
<?php if(!empty($data->auteur)){ ?><div class="auteur"><?php echo htmlentities($data->auteur); ?></div><?php } ?>
<?php if(!empty($data->date)){ ?><div class="date"><?php echo htmlentities($data->date); ?></div> <?php } ?>
</div>
<div class="apercu"><?php echo htmlentities($data->apercu); ?></div>
<div class="sujet_complet"><?php echo htmlentities($data->reste); ?></div>
</div>
<?php echo ("<a href=\"#\" id='suppression' onClick=\"supp('".$data->id."')\" >supprimer</a>") ;?>
<?php } ?>
<a href="form.php" style="float:right;">AJOUTER</a>
page de suppression PHP: supprim.php
/**************************************************
**Connection à la base de donnée
**************************************************/
mysql_connect('localhost','root','');
mysql_select_db('ajout');
// **Récupération de l'id correspondant au sujet à modifier**
$id= $_GET["idsupp"];
/**************************************************
**Suppression des champs dans la base de données
**************************************************/
$sql = "DELETE FROM save WHERE id = '".$id."'";
echo $sql ;
/**************************************************
**Evoie de la requête SQL à la base de donnée
**************************************************/
$req = mysql_query($sql) or die( mysql_error());
/**************************************************
**Création des erreurs eventuelles lors de la suppression
**************************************************/
if($req)
{
echo("La suppression à été correctement effectuée") ;
}
else
{
echo("La suppression à échouée") ;
}
?>
Voici l'erreur de Firebug : GET UNDEFINED , 404 not found
merci pour vos remarques et réponses
Modifié par artenis, 21 February 2011 - 19:01 PM.
#19
Posté 21 February 2011 - 20:06 PM
document.location.href = "supprim.php?idsupp=".id ;
Ce qui devrait afficher une boite d'alerte qui contient la bonne URL.
En écrivant je m'aperçois d'une erreur:
Regarde comment c'est fait dans le tuto.
#20
Posté 21 February 2011 - 20:26 PM
j'ai effectivement volontairement modifier le + par .
croyant que certaines de "mes" erreurs venait de là
merci beaucoup et j'arrête de vous embêter sur ce tuto qui encore une fois est parfait
bonsoir
#21
Posté 17 May 2011 - 09:37 AM
je tiens a vous remercie pour votre sujet "Insérer, modifier, supprimer des données en PHP" c'est vraiment un sujet complet et riche ^^ des informations importante.
je suis en stage et j'ai de la chance de tomber sur votre sujet ça m'as bcp aidé ^^
juste une simple question : vous aurez pas un cours bien expliqué comme celui là sur "comment insérer, afficher, modifier et supprimer une image en php ?"
en gros j'ai un formulaire dans le quel l'utilisateur doit choisi des images donc je veux insérer les images dans une BDD et après les afficher ...
Merci pour votre sujet encore ^^
Modifié par Miiidooo19, 17 May 2011 - 09:38 AM.
#22
Posté 17 May 2011 - 10:23 AM
Miiidooo19, le 17 May 2011 - 09:37 AM, dit :
je tiens a vous remercie pour votre sujet "Insérer, modifier, supprimer des données en PHP" c'est vraiment un sujet complet et riche ^^ des informations importante.
je suis en stage et j'ai de la chance de tomber sur votre sujet ça m'as bcp aidé ^^
juste une simple question : vous aurez pas un cours bien expliqué comme celui là sur "comment insérer, afficher, modifier et supprimer une image en php ?"
en gros j'ai un formulaire dans le quel l'utilisateur doit choisi des images donc je veux insérer les images dans une BDD et après les afficher ...
Merci pour votre sujet encore ^^
mon sujet c'est de développer une rubrique portfolio qui permet d'ajouter un nouveau enregistrement,modifier ou supprimer
et dans mon formulaire j'ai par exemple :
*****************************************************
titre :
nom client :
date :
description :
image 1 : ( avec un bouton parcourir bien sur)
image 2 :
image 3 :
et bouton valider
******************************************************
bon grace a ce sujet j'ai réussi l'insertion des données (titre,nom client, date, description) mais pour l'image je sais pas comment faire sachant que je suis débutant en php

j'ai quand même réfléchi un peu sur les étapes pour enregistrer la foto et j'ai fait ce schéma :
1 placer l'image dans un répertoire temporaire
2 crée un un nouveau répertoire pour chaque enregistrement et dans cet répertoire enregistrer les 3 images de
chaque enregistrement
3 copié l'image du répertoire temporaire vers répertoire correspondant à l'enregistrement.
4 enregistrer (id, nom_image, id_enregistrement, chemin) de l'image dans la table image_portfolio
voila je sais pas si c'est comme ça qu'il faut faire mais bon ...
j'aimerai bien m'aider me donner des exemples et des cours
Merci à vous
Modifié par Miiidooo19, 17 May 2011 - 10:23 AM.
#23
Posté 17 May 2011 - 10:40 AM
Miiidooo19, le 17 May 2011 - 09:37 AM, dit :
je tiens a vous remercie pour votre sujet "Insérer, modifier, supprimer des données en PHP" c'est vraiment un sujet complet et riche ^^ des informations importante.
Bonjour,
Alors le tutoriel n'est pas de moi, hein

Pour ma part je n'ai pas assez d'expérience pour te répondre. La démarche que tu exposes me semble bonne, mais ne te fie pas trop à mon avis.
Si tu n'as pas plus de réponses ici et que tu ne t'en sors pas, dirige-toi peut-être vers un forum spécialisé sur le PHP.
#24
Posté 17 May 2011 - 10:55 AM
lilive, le 17 May 2011 - 10:40 AM, dit :
Alors le tutoriel n'est pas de moi, hein

Pour ma part je n'ai pas assez d'expérience pour te répondre. La démarche que tu exposes me semble bonne, mais ne te fie pas trop à mon avis.
Si tu n'as pas plus de réponses ici et que tu ne t'en sors pas, dirige-toi peut-être vers un forum spécialisé sur le PHP.
Ah ^^ je me suis trompé du personne comme dab lol

pas grave jvé essayé encore de chercher
tu peux me donner le lien de forum spécialisé ? merci
#25
Posté 17 May 2011 - 11:00 AM
Miiidooo19, le 17 May 2011 - 10:55 AM, dit :
Il ne te reste plus qu'à faire quelque chose comme http://www.google.fr...btnG=Rechercher

Bon courage

#26
Posté 17 May 2011 - 14:02 PM
lilive, le 17 May 2011 - 11:00 AM, dit :
Il ne te reste plus qu'à faire quelque chose comme http://www.google.fr...btnG=Rechercher

Bon courage

Merci ^^ j'ai réussi s que je veux ^^
mtn je cherche juste comment changer le nom de la photo après Upload ^^
#27
Posté 18 May 2011 - 12:47 PM
et mtn je veux juste savoir comment changer le nom d'une image déja Uploader
j'explique :
en fait après avoir Uploader l'imaage dans un répertoire (C:\Program Files (x86)\EasyPHP-5.3.5.0\www\stage\images\NomImage.gif)
après je veux la renomer selon l'id de cette image donc je récupére l'id de l'image dans la table "images" avec la méthode suivante :
//création de la requête
$req2 = "SELECT * from images ORDER BY id_img DESC LIMIT 1";
//exécution de la requête sql
$execution = mysql_query($req2, $cnx) or die (mysql_error());
$result = mysql_fetch_object( $execution );
$id_img = $result->id_img;
puis je récupére l'extension de l'image avec la méthode :
($extension = substr(strrchr($_FILES['photo']['name'], '.'), 1)

et mtn je veux renomer la photo dans la répertoire pour que au lieu de NomImage.gif ==>> $id_img.$extension
j’espère que vous avez compré mon problème ^^
#28
Posté 02 August 2011 - 15:34 PM
J'ai un souci avec ce tuto en l'adaptant à mes besoins. Voici les codes :
<?php
include("connex.inc.php");
$idcom=connex("otv2","myparam");
//requête SQL:
$sql = "SELECT nom, id, numero, adresse FROM demandes ORDER BY nom ASC" ;
//exécution de la requête:
$requete = mysql_query($sql,$idcom); ;
//affichage des données:
echo "<div class=\"otv\">";
while( $result = mysql_fetch_object( $requete ) )
{
echo(
"<p>".$result->nom." - ".$result->numero." ".$result->adresse." - <a href=\"traitementmajotv.php?idPersonne=".$result->id."\">modifier</a></p>"
) ;
}
echo "</div>";
?>
Ma page affiche correctement toutes les données.
Mon souci survient lorsque je clique sur "modifier", rien ne se produit : le lien correspond bien aux ID, mais la page me renvoie toujours sur la page ci-dessus. Voici le code :
include("connex.inc.php");
$idcom=connex("otv2","myparam");
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["idPersonne"] ;
//requête SQL:
$sql = "SELECT *
FROM demandes
WHERE id = ".$id ;
//exécution de la requête:
$requete = mysql_query($sql,$idcom) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>
<form name="insertion" action="traitementmajotv2.php" method="POST">
<input type="hidden" name="id" value="<?php echo($id) ;?>">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>nom</td>
<td><input type="text" name="nom" value="<?php echo($result->nom) ;?>"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="modifier"></td>
</tr>
</table>
</form>
<?php
}//fin if
?>
Quelqu'un aurait-il une solution ? Merci de votre attention.
Cordialement. Fabien.
#29
Posté 23 May 2013 - 18:47 PM
par contre pour mes besoins, j'aurai aimé rassembler les fonction nouveau modifier supprimer sur le mêm formulaire php afin des les avoir en menu et surtout rester dans mon formulaire lorsque j'ai envoyé un requete sql et j'aurai aimé avoir automaitquement les données lorsque je me connect à mon formulaire
#30
Posté 23 May 2013 - 20:35 PM
Alors dans l'ordre
- pour avoir les pages dans un menu, il suffit simplement de mettre des liens vers les pages ____1.php
- pour rester sur le formulaire une fois ce dernier envoyé, il suffit de rester sur la page et de placer le script ___2.php au début du script, exemple plus bas
- enfin pour afficher les données automatiquement, il suffit que la page appelée index.php soit celle qui contient la liste des données
<?php
// test si le formulaire vient d'être soumis
if( isset($_POST['bt_submit'])){
if( $_POST['name'] != '' ){
echo "mise à jour de la base de données";
}else{
echo "vous devez saisir un nom";
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<title>mediabox</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="name">
<input type="submit" name="bt_submit" value="Enregistrer">
</form>
</body>
</html>
N'hésite pas à relancer si tout n'était pas clair
embryon de site
#31
Posté 23 May 2013 - 21:05 PM
dcz.switcher, le 23 May 2013 - 20:35 PM, dit :
Alors dans l'ordre
- pour avoir les pages dans un menu, il suffit simplement de mettre des liens vers les pages ____1.php
- pour rester sur le formulaire une fois ce dernier envoyé, il suffit de rester sur la page et de placer le script ___2.php au début du script, exemple plus bas
- enfin pour afficher les données automatiquement, il suffit que la page appelée index.php soit celle qui contient la liste des données
<?php
// test si le formulaire vient d'être soumis
if( isset($_POST['bt_submit'])){
if( $_POST['name'] != '' ){
echo "mise à jour de la base de données";
}else{
echo "vous devez saisir un nom";
}
}
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<title>mediabox</title>
</head>
<body>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<input type="text" name="name">
<input type="submit" name="bt_submit" value="Enregistrer">
</form>
</body>
</html>
N'hésite pas à relancer si tout n'était pas clair
Oui c'est pas trop claire, j'ai testé et cela marche ton ex , parcontre ma question est , j'ai un formailaire php et je veux au démarrage me connecter à ma base mysql et que cela charge mes données automatiquement dans mon formulaire , ensuite je veux les parcourir , avec un menu de ce type inclus dans mon formulaire qui ferait appel à diffent ficheir php sans cela n'apparaieent tout en restant dans mon formulaire, j'espère être clair également:
<form method="post" action="add.php">
<input type="reset"value="<<Précédente" name="fiche"><input type="reset"value="Suivante>>" name="suivante">
<input type="submit"value="Nouvelle fiche" name="Sauvegarde" onclick="this.form">
<input type="submit"value="Modifier" name="Sauvegarde" onclick="modification2.php">
<input type="submit"value="Sauvegarde" name="Sauvegarde" onclick="this.form">
<input type="submit" type form method="delete"value="Supprimer" name="Supprimer" onclick formmethod="delete">
<input type="reset"value="Réinitialiser" name="reset" onclick="this.form">
<input type="submit"value="Imprimer" name="imprimer">
<input type="submit" value="recherche"formtarget="_self"name="search">
Merci d'avance pour ton aide
René
#32
Posté 24 May 2013 - 21:45 PM
Si je devais réaliser ce formulaire, je pense que j'utiliserais du javascript et des appels ajax, avec lesquels je suis plus à l'aise, mais ça doit être possible en PHP relativement simplement.
Bon, prenons les choses par étapes.
Je te propose de commencer par l'affichage des différentes personnes avec les flèches "précédent" et "suivant"
Voici le rendu que j'obtiens
http://www.dcz-lab.f...64593/index.php
J'ai utilisé la même structure de données que dans le tuto PHP
Je n'ai pas cherché à optimiser le code, voici ce que ça donne.
Si tu as des questions ...
<?php
$conn = new PDO('mysql:host=localhost;dbname=mediabox', 'root', 'root');
// construction de la requete
$sql = "SELECT id, nom, prenom, adresse, cp, telephone FROM personnes";
$direction = '';
$id = '';
// si on a déjà commencé la navigation ...
if( isset($_GET['id']) )
{
$id = $_GET['id'];
$direction = $_GET['direction'];
if( $direction == 'next' ){
$sql .= " WHERE id = (SELECT min(id) FROM personnes WHERE id > " . $_GET['id'] . ") LIMIT 2";
}else{
$sql .= " WHERE id = (SELECT max(id) FROM personnes WHERE id < " . $_GET['id'] . ") LIMIT 2";
}
}else{
$sql .= " LIMIT 1";
}
$query = $conn->query($sql) ;
$row = $query->fetch(PDO::FETCH_OBJ);
$rowCount = $query->rowCount();
// recuperation des valeurs min et max
$sqlMaxMin = "SELECT MIN(id) AS min, MAX(id) AS max FROM personnes";
$queryMaxMin = $conn->query($sqlMaxMin);
$rowMaxMin = $queryMaxMin->fetch(PDO::FETCH_OBJ);
$min = $rowMaxMin->min;
$max = $rowMaxMin->max;
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge" >
<title>mediabox</title>
<style type="text/css">
html, body{
margin: 0;
font-family: Helvetica, Arial, sans-serif;
}
#nav{
margin: 0 0 20px 0;
}
#content{
width: 800px;
margin: 20px auto 0 auto;
}
.bt-direction{
display: inline-block;
width : 80px;
}
.label, .value{
display: inline-block;
width: 80px;
vertical-align: top;
}
.label{
color: #666;
}
</style>
</head>
<body>
<div id="content">
<div id="nav">
<div class="bt-direction">
<?php if( $direction != '' && $row->id > $min ): ?>
<a href="index.php?direction=previous&id=<?php echo $row->id; ?>">précédent</a>
<?php endif; ?>
</div>
<div class="bt-direction">
<?php if( $row->id < $max): ?>
<a href="index.php?direction=next&id=<?php echo $row->id; ?>">suivant</a>
<?php endif; ?>
</div>
</div>
<div>
<div class="label">nom</div>
<div class="value"><?php echo $row->nom; ?></div>
<br>
<div class="label">prenom</div>
<div class="value"><?php echo $row->prenom; ?></div>
<br>
<div class="label">adresse</div>
<div class="value"><?php echo $row->adresse; ?></div>
<br>
<div class="label">cp</div>
<div class="value"><?php echo $row->cp; ?></div>
<br>
<div class="label">telephone</div>
<div class="value"><?php echo $row->telephone; ?></div>
</div>
</div>
</body>
</html>
embryon de site
#33
Posté 24 May 2013 - 22:35 PM
j'ai éssayé ton tu sur ma base et il me donne une erreur ligne 32
Fatal error: Function name must be a string in C:\Program Files (x86)\EasyPHP-DevServer-13.1VC9\data\localweb\projects\test tutot php\mediabox.php on line 32
#34
Posté 24 May 2013 - 22:50 PM
l'exmeple est parfait
par contre pour afficher les résultats comme faire pour les transmettree ces fonctions à partir de mon formaulaire
<input type="reset"value="<<Précédente" name="fiche"><input type="reset"value="Suivante>>" name="suivante">
#35
Posté 25 May 2013 - 12:19 PM
Citation
Tu veux dire comment utiliser tes boutons pour naviguer entre les différents enregistrements de la base ?
<input type="reset"value="<<Précédente" name="fiche"><input type="reset"value="Suivante>>" name="suivante">
embryon de site
#36
Posté 27 May 2013 - 10:51 AM
dcz.switcher, le 25 May 2013 - 12:19 PM, dit :
Tu veux dire comment utiliser tes boutons pour naviguer entre les différents enregistrements de la base ?
<input type="reset"value="<<Précédente" name="fiche"><input type="reset"value="Suivante>>" name="suivante">
oui exactement , car j'en suis à l'insertion des des contacts , là j'aimerai les afficher à la connection dans mon formulaire et pourvoir les faire défiler pour les modifier , les supprimer , etc ...
Mon menu est le suivant:
<form name="insertion" action="modification3.php" method="POST">
<input type="reset"value="<<Précédente" name="fiche"><input type="reset"value="Suivante>>" name="suivante">
<input type="submit"value="Nouvelle fiche" name="Sauvegarde" onclick="this.form">
<input type="submit"value="Modifier" name="Sauvegarde" onclick="modification2.php">
<input type="submit"value="Sauvegarde" name="Sauvegarde" onclick="this.form">
<input type="submit" type form method="delete"value="Supprimer" name="Supprimer" onclick formmethod="delete">
<input type="reset"value="Réinitialiser" name="reset" onclick="this.form">
<input type="submit"value="Imprimer" name="imprimer">
<input type="submit" value="recherche"formtarget="_self"name="search">
Merci de ton aide
rené
#37
Posté 27 May 2013 - 21:32 PM
ci-joint mon code:
<form name="insertion" action="index.php" method="POST">
<a><input type="submit"value="<<Précédente" name="fiche" onclick ="<?php if( $direction != '' && $row->id > $min ): ?><a href="index.php?direction=previous&id = <?php echo $row->id; ?>></a>
<?php endif; ?>
<input type="submit"value="Suivante>>"name="fiche" onclick="<?php if( $row->id < $max): ?><a href="index.php?direction=next&id = <?php echo $row->id; ?>>
<?php endif; ?>
#38
Posté 28 May 2013 - 14:01 PM
en fait j'ia résolu un problème , cela focntionne bien, juste quand j'ai la première fiche mon menu précédent disparait de l'écran, il faut je click sur la deuxième fiche pour avoir le menu précedent
autre pouint j'aimerai aussi régler quelques soucsi sur mon appli
en effet ,j'ai besoin de crérer de nouvelle fiche et aussi des les modifier comme puis je coder cela
dernier point j'ia un soucis avec les réup de liste html exemple:
Niveau:
<select name="niveau" name="niveau"<option value=""<?php echo $row->niveau; ?">
<option value="vip">VIP</option>
<option value="haute">Haute</option>
<option value="Medium">Medium</option>
<option value="Normal">Normal</option>
<option value="Autre">Autre</option>
</select>
il m'affiche toujours la première ioptions de ma lsite et non pas ce qui c'est sauvegardé dans mysql
D'avance Merci de ton aide
René
#39
Posté 03 June 2013 - 10:21 AM
juste un point sur ce que tu m'as envoyé , il focntionne très bien cepednant , je voudrais créer un onglet nouvelle fiche avec incrémentation de li'd et sauvegardé les donné en cliquant sur mon onglet , cela fonctionne mais j'ia un problème avec mon code
en effet quand je clqiue sur suivant il me crée une nouvelle fiche tout en allant à la suivante ( donc + 1 à chaque fois)
je souhaiterai que cela soit possible à partir du bouton Enregister qui me cré la nouvelle fiche et pas le bouton suivant:
voici mon code
et merci de ton aide
René
<?php
$conn = new PDO('mysql:host=localhost;dbname=bdvip', 'root', '');
// construction de la requete
$sql = "SELECT * FROM infos_tbl ";
$direction = '';
$id = '';
$new= '';
// si on a déjà commencé la navigation ...
if( isset($_GET['id']) )
{
$id = $_GET['id'];
$direction = $_GET['direction'];
if( $direction == 'next' ){
$sql .= " WHERE id = (SELECT min(id) FROM infos_tbl WHERE id > " . $_GET['id'] . ") LIMIT 2";
}else{
$sql .= " WHERE id = (SELECT max(id) FROM infos_tbl WHERE id < " . $_GET['id'] . ") LIMIT 2";
}
}else{
$sql .= " LIMIT 1";
}
$query = $conn->query($sql) ;
$row = $query->fetch(PDO::FETCH_OBJ);
$rowCount = $query->rowCount();
// recuperation des valeurs min et max
$sqlMaxMin = "SELECT MIN(id) AS min, MAX(id) AS max FROM infos_tbl";
$queryMaxMin = $conn->query($sqlMaxMin);
$rowMaxMin = $queryMaxMin->fetch(PDO::FETCH_OBJ);
$min = $rowMaxMin->min;
$max = $rowMaxMin->max;
?>
<section>
<div class="group2">
<?php if( $direction != '' && $row->id > $min ): ?>
<a href="test_index.php?direction=previous&id=<?php echo $row->id; ?>"><input type="reset"value="<<Précédente" name="fiche">
<?php endif; ?>
<?php if( $row->id < $max): ?>
<a href="test_index.php?direction=next&id=<?php echo $row->id; ?>"><input type="reset"value="Suivante>>" name="suivante">
<?php endif; ?>
</a>
<?php
{
// connexion à la base
$db = mysql_connect('localhost', 'root', '') or die('Erreur de connexion '.mysql_error());
mysql_select_db('bdvip',$db) or die('Erreur de selection '.mysql_error());
// sélection de la base
mysql_query("SET NAMES UTF8");
//$DATE = Date("d/m/Y H:i:s");
$DATE = ("d/m/Y H:i:s");
$new= '';
// On commence par récupérer les champs (variables)
if(isset($_POST['id'])) $ref=$_POST['id'] ; else $ref="";
if(isset($_POST['societe'])) $societe=$_POST['societe']; else $societe="";
if(isset($_POST['slt'])) $slt=$_POST['slt']; else $slt="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom']; else $prenom="";
if(isset($_POST['nom'])) $nom=$_POST['nom']; else $nom="";
if(isset($_POST['email'])) $email=$_POST['email']; else $email="";
if(isset($_POST['fonction'])) $fonction=$_POST['fonction']; else $fonction="";
if(isset($_POST['tel'])) $tel=$_POST['tel']; else $tel="";
if(isset($_POST['fax'])) $fax=$_POST['fax']; else $fax="";
if(isset($_POST['mob'])) $mob=$_POST['mob']; else $mob="";
if(isset($_POST['niveau'])) $niveau=$_POST['niveau']; else $niveau="";
if(isset($_POST['public'])) $public=$_POST['public']; else $public="";
if(isset($_POST['ci'])) $ci=$_POST['ci']; else $ci="";
// on écrit la requête sql
$sql_2 = "INSERT INTO infos_tbl(id, nom, prenom,email, fonction, slt,societe,tel,fax,mob,niveau,public,ci,date_enregistrement) VALUES('','$nom','$prenom','$email','$fonction','$slt','$societe','$tel','$fax','$mob','$niveau','$public','$ci','$DATE')";
// on insère les informations du formulaire dans la table
mysql_query($sql_2) or die('Erreur SQL !'.$sql_2.'<br>'.mysql_error());
// on affiche le résultat pour le visiteur
// echo 'Vos infos on été ajoutées.';
mysql_close(); // on ferme la connexion
}
//header("Location: test_index.php#contact" );
?>
<input type="submit"form action="new" value="Enregistrer" name="Sauvegarde" >
<input formaction="modification2.php" input type= "submit"value="Modifier" >
<input type="submit" type form method="delete"value="Supprimer" name="Supprimer" onclick formmethod="delete">
<input type="reset"value="Réinitialiser" name="reset" onclick="this.form">
<input type="submit"value="Imprimer" name="imprimer">
<input type="submit" value="recherche"formtarget="_self"name="search">
</div></section>
<div><section class="group4">
<p>
<label for="id">ID:</label>
<input type="text" name="id" value="<?php echo $row->id; ?>" size="10" maxlength="6"/> Société: <input type="text" name="societe" value="<?php echo $row->societe; ?>" size="30" maxlength="20"/>
SLT:
<select name="slt" name="slt">
<option value="Mlle">Mlle</option>
<option value="Mme">Mme</option>
<option value="Mr">Mr</option>
<option value="Doct">Doct</option>
<option value="Prof">Prof</option>
<option value="autre">autre</option>
</select>
Prénom: <input type="text"name="prenom" value="<?php echo $row->prenom; ?>"size="20"maxlength="15" />Nom: <input type="text" name="nom" value="<?php echo $row->nom; ?>" size="15" maxlength="15"/></br>
<label for="email">Email:</label>
<input type="email" align="left"name="email" value="<?php echo $row->email; ?>" size="55" maxlength="70"/> Fonction: <input type="text" name="fonction" value="<?php echo $row->fonction; ?>" size="62"maxlength="70" /></br>
<label for="tel">TEL:</label>
<input type="tel" name="tel" value="<?php echo $row->tel; ?>" size="10"maxlength="12" />FAX: <input type="tel" name="fax" value="<?php echo $row->fax; ?>" size="10"maxlength="12" /> MOB: <input type="tel" name="mob" value="<?php echo $row->mob; ?>" size="10"maxlength="12" />Niveau:
<select name="niveau" name="niveau"<option value="<?php echo $row->niveau; ?>">
<option value="vip">VIP</option>
<option value="haute">Haute</option>
<option value="Medium">Medium</option>
<option value="Normal">Normal</option>
<option value="Autre">Autre</option>
</select>
Public:
<select name="public" name="public">
<option value="Web_influenceur">Web influenceur</option>
<option value="Redaction">Redaction</option>
<option value="Medias">Medias</option>
<option value="Luxe Mode">Luxe Mode</option>
<option value="Design">Design</option>
<option value="Cinéma">Cinéma</option>
<option value="Agence">Agence</option>
<option value="Autre">Autre</option>
</select>
Centre Intérêt:
<select name="ci" name="ci">
<option value="Rugby">Rugby</option>
<option value="Football">Football</option>
<option value="Cinéma">Cinéma</option>
<option value="Cesar">Cesar</option>
<option value="Cannes">Cannes</option>
</select>
#40
Posté 03 June 2013 - 17:20 PM
Pour être franc, je ne vois pas pourquoi tu veux utiliser des input de type "submit" pour faire défiler les fiches.
En principe, le bouton submit est utilisé pour soumettre un formulaire (tag form)
Or, je ne pense pas que la navigation entre fiche relève de ce cas, il n'est pas question ici de valider une saisie mais juste de voir une autre fiche.
Ton code est un peu long maintenant, mais vu qu'il y a plusieurs bouton de validation de formulaire, j'imagine que le fait d'en cliquer un valide le formulaire.
A mon avis, tu devrais utiliser l'input submit que pour les formulaires et utiliser de simples liens (tag a) pour la navigation.
Si vraiment tu souhaites conserver des input[type=submit] partout, tu peux peut-être utiliser le javascript pour contraindre le comportement.
As-tu déjà utilisé du javascript ? dans un formulaire ?
embryon de site
#41
Posté 04 June 2013 - 07:59 AM
dcz.switcher, le 03 June 2013 - 17:20 PM, dit :
Pour être franc, je ne vois pas pourquoi tu veux utiliser des input de type "submit" pour faire défiler les fiches.
En principe, le bouton submit est utilisé pour soumettre un formulaire (tag form)
Or, je ne pense pas que la navigation entre fiche relève de ce cas, il n'est pas question ici de valider une saisie mais juste de voir une autre fiche.
Ton code est un peu long maintenant, mais vu qu'il y a plusieurs bouton de validation de formulaire, j'imagine que le fait d'en cliquer un valide le formulaire.
A mon avis, tu devrais utiliser l'input submit que pour les formulaires et utiliser de simples liens (tag a) pour la navigation.
Si vraiment tu souhaites conserver des input[type=submit] partout, tu peux peut-être utiliser le javascript pour contraindre le comportement.
As-tu déjà utilisé du javascript ? dans un formulaire ?
bonjour
non, je n'ai pas utilisé Javascript, est ce que tu peux me conseilelr par un scritp de départ ?
Merci
René
#42
Posté 05 October 2013 - 10:48 AM
Désolé pour le remontage du topic mais j'ai suivi le tutoriel.
Je crée un site dynamique avec un menu depuis une base de donnée.
Je veux crée une page admin, ou on modifier, supprimer et inserer.
Votre tutoriel me correspond très bien.
Je n'ai aucun message d'erreur mais;
Lorsque j'insère, edit ou supprimer. Rien ne se passe.
Pire, lorsque je modifie un nom de menu, celui ci m'efface l'ancien menu
function query($parent_id) { //function to run a query
$query = mysql_query ( "SELECT * FROM menus WHERE parent_id=$parent_id" );
return $query;
}
function has_child($query) { //This function checks if the menus has childs or not
$rows = mysql_num_rows ( $query );
if ($rows > 0) {
return true;
} else {
return false;
}
}
function fetch_menu($query) {
while ( $result = mysql_fetch_array ( $query ) ) {
$menu_id = $result ['id'];
$menu_name = $result ['menu_name'];
$menu_link = $result ['menu_link'];
echo "<li class='has-sub '><a href='{$menu_link}'><span>{$menu_name}</span></a>";
if (has_child ( query ( $menu_id ) )) {
echo "<ul>";
fetch_menu ( query ( $menu_id ) );
echo "</ul>";
}
echo "</li>";
}
}
fetch_menu (query(0)); //call this function with 0 parent id
?>
//connection au serveur
//connection au serveur:
$cnx = mysql_connect( "xxx", "xxx", "xxx" ) ;
$db = mysql_select_db( "xxx" ) ;
//récupération des valeurs des champs:
//nom:
$menu_name = $_POST["menu_name"] ;
//prenom:
$liens= $_POST["menu_link"] ;
//adresse:
$parent= $_POST["parent_id"] ;
//code postal:
//création de la requête SQL:
$sql = "INSERT INTO menus (menu_name, menu_link, parent_id)
VALUES ( ' $menu_name', '$liens', '$parent') " ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
{
echo("L'insertion a été correctement effectuée") ;
}
else
{
echo("L'insertion à échouée") ;
}
?>
<head>
<title>modification de données en PHP :: partie 1</title>
</head>
<body>
<?php
//connection au serveur:
$cnx = mysql_connect( "xxx", "xxx", "xxx" ) ;
$db = mysql_select_db( "xxx" ) ;
//requête SQL:
$sql = "SELECT *
FROM menus ORDER BY id" ;
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
while( $result = mysql_fetch_object( $requete ) )
{
echo(
"<div align=\"center\">"
.$result->menu_name." ".$result->menu_link ." ".$result->parent_id ." <a href=\"modification2.php?idPersonne=".$result->id."\">modifier</a></div>\n"
) ;
}
?>
</body>
</html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<?php
$cnx = mysql_connect( "xxx", "xxx", "xxx" ) ;
$db = mysql_select_db( "xxx" ) ;
//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["idPersonne"] ;
//requête SQL:
$sql = "SELECT *
FROM menus
where id='".$id."'";
//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>
<form name="insertion" action="modification3.php" method="POST">
<input type="hidden" name="id" value="<?php echo($id) ;?>">
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>Nom de menu</td>
<td><input type="text" name="nom" value="<?php echo($result->menu_name) ;?>"></td>
</tr>
<tr align="center">
<td>Lien du menus</td>
<td><input type="text" name="prenom" value="<?php echo($result->menu_link ) ;?>"></td>
</tr>
<tr align="center">
<td>Parents id</td>
<td><input type="text" name="adresse" value="<?php echo($result->parent_id) ;?>"></td>
</tr>
<tr align="center">
<td colspan="2"><input type="submit" value="modifier"></td>
</tr>
</table>
</form>
<?php
}//fin if
?>
</body>
</html>
//connection au serveur
$cnx = mysql_connect( "xxx", "xxx", "xxx" ) ;
$db = mysql_select_db( "xxx" ) ;
//récupération des valeurs des champs:
//nom du menu:
$nom_menu = $_POST["menu_name"] ;
//lien du menu
$liens = $_POST["menu_link"] ;
//parent du menu (id)
$parent = $_POST["parent_id"] ;
//récupération de l'identifiant du menu
$id = $_POST["id"] ;
//création de la requête SQL:
$sql = "UPDATE menus SET menu_name = '$nom_menu ', menu_link = '$liens', parent_id = '$parent' where id='".$id."'";
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
}
else
{
echo("La modification à échouée") ;
}
?>
Le site est en ligne, mais pour des soucis de sécurités entre autre. Je préfère que ça reste en vidéo, sans url.
#43
Posté 06 October 2013 - 21:08 PM
J'ai jeté un coup d'oeil rapide, avant de faire une mise à jour dans ta base, est-ce que tu contrôles que les données sont bien présentes ?
Exemple, tu as un formulaire avec ce champ
<input type="text" name="nom" value="<?php echo($result->menu_name) ;?>">
Une variable "nom" sera donc envoyée par post au serveur, donc tu devrais la récupérer avec
$_POST['nom'];
Or, dans le code suivant, il est écrit
$nom_menu = $_POST["menu_name"] ;
J'ai peut-être loupé quelque chose, mais tu devrais peut-être appeler ton champ input "menu_name", non ?
Pour vérifier, avant de mettre à jour ta base, contrôle que les variables ne sont pas vides avec quelque chose du genre
<?php
if (isset($_POST['menu_name']) && $_POST['menu_name'] !== '') {
// mise à jour
}
embryon de site
1 utilisateur(s) li(sen)t ce sujet
0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)