Forums Développement Multimédia

Aller au contenu

- - - - -

comprendre le tuto PHP ajouter, modifier, supprimer

TUTO

42 réponses à ce sujet

#1 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 18 February 2011 - 22:38 PM

Bonjour, j'espère être le plus concis possible:

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 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 19 February 2011 - 11:07 AM

Bonjour et bienvenue,

Tu parles bien de ce tutoriel http://ressources.me...r-des-donne-php ?

#3 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 19 February 2011 - 12:09 PM

oui, exactement

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 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 19 February 2011 - 15:22 PM

Je suis pas un pro du PHP mais je viens quand même de modifier la page pour essayer de la rendre plus explicite. Ça va mieux maintenant?

[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 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 19 February 2011 - 18:50 PM

Merci lilive;

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 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 20 February 2011 - 12:50 PM

En cherchant à comprendre ta question je vois qu'il y a une erreur dans le tuto: Le champ dans la table de la base de donnée s'appelle id et pas id_personne!

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 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 20 February 2011 - 16:15 PM

merci c'est exactement ça,

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 ???

<?php    while($data = mysql_fetch_assoc($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 } ?>

merci encore pour ce tuto très bien expliquer

#8 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 20 February 2011 - 16:49 PM

Voir le messageartenis, le 20 February 2011 - 16:15 PM, dit :

mysql me renvoie: Trying to get property of non-object pour la ligne ou il y a --->>>,

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 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 20 February 2011 - 17:04 PM

désolé , g encore besoin de vous, pour cette ligne --->>> erreur :Cannot use object of type stdClass as array
j'avoue que je pige pas encore toutes les erreurs php.
Probleme résolu j'ai parlé trop vite

<?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 } ?>

Modifié par artenis, 20 February 2011 - 17:06 PM.


#10 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 20 February 2011 - 17:47 PM

encore un bleme,

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 Goabonga

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2724 messages

Posté 20 February 2011 - 18:01 PM

moi je te conseille de regarder au passage ( c'est le bon moment ), la function
printf
( elle protégera en meme temps ton code de l'injection ), elle t’évitera les problème de ' manquant ou en trop ( en trop dans ton cas ).

$format = 'Il y a %d singes dans le %s';
printf($format, $num, $location);


dans ton cas :

$recup = printf("SELECT * FROM save WHERE id = %d", $id);

@+

#12 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 20 February 2011 - 20:50 PM

merci pour cette info,

j'ai bien lu le sujet sur printf et sprintf,

pourriez-vous une dernière fois me dire ou est mon problème,

<?php
       
        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 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 20 February 2011 - 21:00 PM

Voir le messageartenis, le 20 February 2011 - 20:50 PM, dit :

merci pour cette info,

j'ai bien lu le sujet sur printf et sprintf,

pourriez-vous une dernière fois me dire ou est mon problème,

<?php
       
        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 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 20 February 2011 - 21:55 PM

problème résolu pour la page de modification , le problème se trouve maintenant à la page mise à jour avec UPDATE

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.'" ' ;
l'erreur est la suivante:

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 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 20 February 2011 - 23:12 PM

Voir le messageartenis, le 20 February 2011 - 21:55 PM, dit :

problème résolu pour la page de modification , le problème se trouve maintenant à la page mise à jour avec UPDATE

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.'" ' ;
l'erreur est la suivante:



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 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 21 February 2011 - 09:29 AM

Content de voir que tu t'en sors. C'est normal de buter longtemps sur ce genre de petites erreurs quand on débute.

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

UPDATE personnes
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.

Fichier(s) joint(s)



#17 Nataly

    Community Jane

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 5783 messages

Posté 21 February 2011 - 10:00 AM

Une autre ruse consiste à remplacer le $_POST par un $_GET, ainsi tu peux passer les variables dans l'adresse, directement dans le navigateur, et lire les messages d'erreur ds le même navigateur, n° de ligne incluse ;)

Par exemple :
http://localhost/TutosMB/Demo1.php?nom=truc

Citation

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ';' in /Applications/XAMPP/xamppfiles/htdocs/TutosMB/Demo1.php on line 2



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 :cool:

[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
Le savoir est le seul bien qui s'accroit quand on le partage
une tartine de tutos

#18 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 21 February 2011 - 18:59 PM

merci pour tous ces conseils et astuces,

je reviens encore vers vous pour un problème au niveau de la suppression

voici mes codes : page de visualisation des commentaires :
<script>
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

<?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 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 21 February 2011 - 20:06 PM

Peut-être vérifier l'url fournie pas le javascript?

alert("supprim.php?idsupp=".id);
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:
"supprim.php?idsupp=".id
La syntaxe avec un . c'est du php, pas du javascript.
Regarde comment c'est fait dans le tuto.

#20 artenis

    Ceinture Blanche

  • Members
  • Pip
  • 13 messages

Posté 21 February 2011 - 20:26 PM

je vous prie de bien vouloir m'excuser je devrais arrêter de dire bêtise

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 Miiidooo19

    Ceinture Blanche

  • Members
  • Pip
  • 6 messages

Posté 17 May 2011 - 09:37 AM

Bonjour lilive,

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 Miiidooo19

    Ceinture Blanche

  • Members
  • Pip
  • 6 messages

Posté 17 May 2011 - 10:23 AM

Voir le messageMiiidooo19, le 17 May 2011 - 09:37 AM, dit :

Bonjour lilive,

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 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 17 May 2011 - 10:40 AM

Voir le messageMiiidooo19, le 17 May 2011 - 09:37 AM, dit :

Bonjour lilive,

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 ;)? C'est Qwix qui l'a écrit il y a un bon moment, du temps où on parlait d'avantage de PHP sur les forums Mediabox. Je ne l'ai plus vu par ici depuis un bon moment, donc je ne crois pas s'il te lira.

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 Miiidooo19

    Ceinture Blanche

  • Members
  • Pip
  • 6 messages

Posté 17 May 2011 - 10:55 AM

Voir le messagelilive, le 17 May 2011 - 10:40 AM, dit :

Bonjour,

Alors le tutoriel n'est pas de moi, hein ;)? C'est Qwix qui l'a écrit il y a un bon moment, du temps où on parlait d'avantage de PHP sur les forums Mediabox. Je ne l'ai plus vu par ici depuis un bon moment, donc je ne crois pas s'il te lira.

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 lilive

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 2993 messages

Posté 17 May 2011 - 11:00 AM

Voir le messageMiiidooo19, le 17 May 2011 - 10:55 AM, dit :

tu peux me donner le lien de forum spécialisé ? merci
Je n'en connais pas un en particulier non. Je sais que ça existe, parce-que je tombe dessus quand je cherche des réponses, mais je n'ai jamais eu à choisir moi-même un forum à utiliser.

Il ne te reste plus qu'à faire quelque chose comme http://www.google.fr...btnG=Rechercher :mrgreen:

Bon courage :)

#26 Miiidooo19

    Ceinture Blanche

  • Members
  • Pip
  • 6 messages

Posté 17 May 2011 - 14:02 PM

Voir le messagelilive, le 17 May 2011 - 11:00 AM, dit :

Je n'en connais pas un en particulier non. Je sais que ça existe, parce-que je tombe dessus quand je cherche des réponses, mais je n'ai jamais eu à choisir moi-même un forum à utiliser.

Il ne te reste plus qu'à faire quelque chose comme http://www.google.fr...btnG=Rechercher :mrgreen:

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 Miiidooo19

    Ceinture Blanche

  • Members
  • Pip
  • 6 messages

Posté 18 May 2011 - 12:47 PM

bon j'ai réussi le première problème ^^

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 serval92

    Ceinture Blanche

  • Members
  • Pip
  • 1 messages

Posté 02 August 2011 - 15:34 PM

Bonjour à tous.

J'ai un souci avec ce tuto en l'adaptant à mes besoins. Voici les codes :

<?php include("menu.php");?>
<?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 :
<?php
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 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 23 May 2013 - 18:47 PM

Bonjour, merci pour ce tuto qui est très bien expliqué

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 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 23 May 2013 - 20:35 PM

Salut et bienvenue sur le forum,

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
exemple:

<?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
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#31 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 23 May 2013 - 21:05 PM

Voir le messagedcz.switcher, le 23 May 2013 - 20:35 PM, dit :

Salut et bienvenue sur le forum,

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
exemple:

<?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
Bonsoir

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 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 24 May 2013 - 21:45 PM

Je comprend mieux ce que tu cherches à obtenir.

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>
 

"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#33 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 24 May 2013 - 22:35 PM

Merci de ton aide, je en suis pas contre pour le faire en javascript par contre je ne connais pas le langage
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 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 24 May 2013 - 22:50 PM

Excuse il n'y a pas de problème , en fait j'avais oublié de changer le nom de la table
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 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 25 May 2013 - 12:19 PM

Citation

comme faire pour les transmettree ces fonctions à partir de mon formaulaire


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">
 

"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#36 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 27 May 2013 - 10:51 AM

Voir le messagedcz.switcher, le 25 May 2013 - 12:19 PM, dit :

[/size]

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 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 27 May 2013 - 21:32 PM

un point je suis en phase avec le code que tu m'as envoyé et je 'lai insérer dans le mien, super j'arrive à afficher le premuère fiche cependant le bouton "suivant" ne s'affiche et je ne peux pas afficher donc les fiches suivantes:
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 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 28 May 2013 - 14:01 PM

bonjour

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 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 03 June 2013 - 10:21 AM

Bonjour,

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&eacute;t&eacute;: <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&eacute;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&eacute;ma</option>
<option value="Cesar">Cesar</option>
<option value="Cannes">Cannes</option>
</select>

#40 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 03 June 2013 - 17:20 PM

Salut,

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 ?
"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site

#41 renemuller

    Ceinture Blanche

  • Members
  • Pip
  • 9 messages

Posté 04 June 2013 - 07:59 AM

Voir le messagedcz.switcher, le 03 June 2013 - 17:20 PM, dit :

Salut,

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 Valbuena72

    Ceinture Jaune

  • Members
  • PipPip
  • 25 messages

Posté 05 October 2013 - 10:48 AM

Bonjour,
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
<?php
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
?>
Insertions 1 & 2 :
<?php
  //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") ;
  }
?>
Modifications 1
<html>
  <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>
Modification 2 :
<head>
<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>
Modification 3 :
<?php
  //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") ;
  }
?>
Voici en vidéo mes erreurs , vous pouvez mettre sur pause pour étudier les fichiers.
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 dcz.switcher

  • Community Manager
  • PipPipPipPipPipPipPipPip
  • 2530 messages

Posté 06 October 2013 - 21:08 PM

Salut,

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
    }
 

"Ce que l'on conçoit bien s'énonce clairement et les mots pour le dire arrivent aisément"

embryon de site



2 utilisateur(s) li(sen)t ce sujet

0 membre(s), 2 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP