IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

problème de modification dans base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut problème de modification dans base de données
    Bonjour,
    je me retrouve face à un problème.
    J'ai crée un formulaire de moidification de ma base de données.
    Pour la modification je me base sur la référence du produit.
    Jusqu'ici tout va bien.
    Mais le problème vient au moment de la modification car j'aimerais que l'utilisateur puisse n'avoir qu'à rentrer un champ à modifier pour que cela se modifie.
    J'entends par là que j'aimerais, s'il souhaite modifier uniquement la date qu'il puisse le faire en entrant dans mon formulaire la nouvelle date. Mais dans mon formulaire il se trouve que je suis obligé de rentrer tous les champs, même ceux que je ne change pas pour que la modification soit effective sur le champs que je veux.
    Comment faire pour ne pas etre obligé de compléter tous les champs pour une modification d'un champs en particulier ? (bien sur, on ne sait pas quel champ l'utilisateur voudra modifier par avance).
    J'espere avoir été clair.
    Merci d'avance

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 4
    Par défaut modify
    je ne suis pas sur d'avoir exactement compris ce que tu souhaites faire, mais si tu veux mettre ç jour une colonne de ta base tu as une possibilité c'est d'initialiser les champs de ton formulaire par les anciennes valeurs, l'utilisateur changera celles qu'il veut. Et toi tu fais un update sur tes données.

  3. #3
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Citation Envoyé par JulienCaron Voir le message
    je ne suis pas sur d'avoir exactement compris ce que tu souhaites faire, mais si tu veux mettre ç jour une colonne de ta base tu as une possibilité c'est d'initialiser les champs de ton formulaire par les anciennes valeurs, l'utilisateur changera celles qu'il veut. Et toi tu fais un update sur tes données.
    Si tu as compris

    Merci pour l'idée

    donc je vais utiliser value mais il va falloir que je fasse un 'prépost' où l'utilisateur choisira le nom du produit et ensuite j'afficherai dans value les champs de ce produit c'est ça ou il y a plus simple ?

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Pour modifier qu'une seule colonne d'une ligne (1 champ d'une ligne), il faudrait à mon sens construire un formulaire qui le permettra, entre autre, créer 1 formulaire par champ, et aussi un bouton submit par champ.

    Un exemple, c'est peut être plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    <table>
    <tr>
        <td>
        <!-- colonne nom -->
        <form name="form_nom" action="maj.php">
            <input type="text" name="valeur" />
            <input type="hidden" name="champ" value="nom" />
            <input type="submit" value="Ok" />
        </form>
        </td>
        <td>
        <!-- colonne prénom -->
        <form name="form_prenom" action="maj.php">
            <input type="text" name="valeur" />
            <input type="hidden" name="champ" value="prenom" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    </tr>
    </table>
    Vu que le champ de saisie porte le même nom (valeur) dans chaque formulaire, de même qu'on y renvoie le nom du champ de la Bdd concernée dans un champ caché (hidden), et bien on a tout ce qu'il faut pour le faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if (isset($_POST['valeur'], $_POST['champ']) && !empty($_POST['valeur']) && !empty($_POST['champ'])) {
        $champ = $_POST['champ'];
        $valeur = $_POST['valeur'];
        $query = "UPDATE table SET ".$champ." = '".$valeur."' WHERE machin = 'truc'";
    }
    En espérant que cela soit plus ou moins ce que tu recherche.

  5. #5
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Ok ok.
    Bon bah je vais voir si j'arrive à comprendre et à mettre en oeuvre tes explications

    Merci à vous deux, je vous tiens au courant.

  6. #6
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Je n'arrive pas à tout comprendre.
    Peut être que mon niveau ne me le permet pas encore...
    J'ai pensé à autre chose qui pourrait selon moi fonctionner.
    j'ai crée un premier formulaire où la personne saisie le numéro du produit qu'elle souhaite modifier.
    ensuite dans le deuxième je me sers du numéro de produit pour récupérer toutes les valeurs des autres champs de ce produit en faisant

    $noprod=@$_POST['noprod'];


    $req="select $noprod,proddesig,prodprix,qtestock,datemodif,liaison from informatique";


    C'est possible ?

    Ensuite, et ça je narrive pas à le faire. J'aimerais que dans les champs pour compléter mon formulaire il soit inscrit dès le chargement de la page les champs qui sont dans ma bdd en rapport avec ce numéro de produit mais en faisant value cela ne semble pas marcher ( je récupère le proddesig en faisant

    $proddesig=proddesig; (pas sur que ce soit possible )

    et ensuite dans mon formulaire je fais

    <label for="proddesig">Désignation ou nouvelle designation si vous souhaitez la modifier</label><br>
    <input type="text" name="proddesig" id="prod_desig" tabindex="10" value=$proddesig ><br> .

    mais cela ne fonctionne pas.
    Comment faire ? Et surtout est-ce que cela pourrait fonctionner...
    Merci encore.

  7. #7
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php
    if (isset($_POST['noprod']) && !empty($_POST['noprod'])) {
        $noprod = $_POST['noprod'];
     
     
        // Mise à jour du produit
        if (isset($_POST['valeur'], $_POST['champ']) && !empty($_POST['valeur']) && !empty($_POST['champ'])) {
            $champ = $_POST['champ'];
            $valeur = $_POST['valeur'];
            $query = "UPDATE table SET ".$champ." = '".$valeur."' WHERE noprod = '".$noprod."'";
        }
     
        // Récupération des infos du produit
        $query = "SELECT proddesig, prodprix, qtestock, datemodif, liaison WHERE noprod = '".$noprod."'";
        $rs_prod = $mysql_query($query) or die('Erreur : '.mysql_error());
        $produit = mysql_fetch_array($rs_prod);
     
    ?>
    <table>
    <tr>
        <td>
        <!-- colonne prix -->
        <form name="form_nom" action="maj.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['prodprix']; ?>" />
            <input type="hidden" name="champ" value="prodprix" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
        <td>
        <!-- colonne qtestock -->
        <form name="form_nom" action="maj.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['qtestock']; ?>" />
            <input type="hidden" name="champ" value="qtestock" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    </tr>
    </table>
     
    <?php
    }
    else {
        // Erreur. Pas de N° de produit
    }
    Il y a tout ce qu'il faut théoriquement.
    - Récupération du N° de produit
    - La mise à jours selon le N° de produit et du champ concerné
    - Affichage des données selon le N° de produit sélectionné à l'étape d'avant.

  8. #8
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    <?php
    if (isset($_POST['noprod']) && !empty($_POST['noprod'])) {
        $noprod = $_POST['noprod'];
     
     
        // Mise à jour du produit
        if (isset($_POST['valeur'], $_POST['champ']) && !empty($_POST['valeur']) && !empty($_POST['champ'])) {
            $champ = $_POST['champ'];
            $valeur = $_POST['valeur'];
            $query = "UPDATE table SET ".$champ." = '".$valeur."' WHERE noprod = '".$noprod."'";
        }
     
        // Récupération des infos du produit
        $query = "SELECT proddesig, prodprix, qtestock, datemodif, liaison WHERE noprod = '".$noprod."'";
        $rs_prod = $mysql_query($query) or die('Erreur : '.mysql_error());
        $produit = mysql_fetch_array($rs_prod);
     
    ?>
    <table>
    <tr>
        <td>
        <!-- colonne prix -->
        <form name="form_nom" action="maj.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['prodprix']; ?>" />
            <input type="hidden" name="champ" value="prodprix" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
        <td>
        <!-- colonne qtestock -->
        <form name="form_nom" action="maj.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['qtestock']; ?>" />
            <input type="hidden" name="champ" value="qtestock" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    </tr>
    </table>
     
    <?php
    }
    else {
        // Erreur. Pas de N° de produit
    }
    Il y a tout ce qu'il faut théoriquement.
    - Récupération du N° de produit
    - La mise à jours selon le N° de produit et du champ concerné
    - Affichage des données selon le N° de produit sélectionné à l'étape d'avant.


    Oula merci beaucoup pour ton investissement en tout cas, vraiment.
    Je vais tout faire pour tout comprendre.
    Merci beaucoup.

  9. #9
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Je poste un autre post pour que tu le vois.
    J'ai du mal à saisir ce que tu entends par valeur ? Et dans champs je mets quoi comme champ car comme tu l'as vu j'en ai plusieurs alors ce ne sera pas forcément pour toujours modifier le même ( à moins que tu sous entendes que je crée une page par champ).
    Désolé de mon incompréhension...


    Edit : j'ai une erreur

    Erreur : Erreur de syntaxe près de 'WHERE noprod = '4100x'' à la ligne 1

    que je n'arrive pas à comprendre...

  10. #10
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    J'ai l'impression que tu ne comprends pas le but du code que je t'ai fournis.
    Pourtant, il me semble bien répondre à ce que tu souhaitais.
    C'est à dire, offrir à un utilisateur de modifier 1 par 1 chaque champ, et non modifier l'ensemble d'un seul coup.

    Ce genre de principe est très pratique quand on souhaite faire une seule correction.
    L'avantage est d'éviter une éventuelle erreur faite sur les autres champs autres que celui qu'on intervient.
    Par contre, l'inconvénient, c'est si l'utilisateur souhaite faire une correction sur tous les champs, il faudra le faire 1 par 1, c'est plus long.


    Donc avant d'aller plus loin, est ce bien ça le but recherché ?
    Qu'est ce que tu ne comprends pas dans la partie HTML, qui théoriquement est la partie la plus simple ?

  11. #11
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Alors oui ce que je recherche c'est que l'utilisateur ne soit pas obligé de remplir tout les champs lorsqu'il souhaite n'en modifier qu'un seul.
    Je crois avoir compris le code.
    Une seule question reste en suspend celle de l'erreur dont je t'ai parlé dans mon post précédent dont je ne trouve pas la résolution.
    Merci encore.

    Edit : avant ton code j'avais fais une page formulaire qui demandait à l'utilisateur de saisir son 'noprod' puis ce formulaire amenait à la page avec ton code avant de récupérer le noprod à travers un $_post.

  12. #12
    Membre confirmé Avatar de nimbus_77
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 109
    Par défaut
    [QUOTE=Pauleta31;5247799]Alors oui ce que je recherche c'est que l'utilisateur ne soit pas obligé de remplir tout les champs lorsqu'il souhaite n'en modifier qu'un seul.
    Je crois avoir compris le code.
    Une seule question reste en suspend celle de l'erreur dont je t'ai parlé dans mon post précédent dont je ne trouve pas la résolution.
    Merci encore.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur de syntaxe près de 'WHERE noprod = '4100x'' à la ligne 1
    Cote et double cote ...

    Bon courage

  13. #13
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    [quote=nimbus_77;5247834]
    Citation Envoyé par Pauleta31 Voir le message
    Alors oui ce que je recherche c'est que l'utilisateur ne soit pas obligé de remplir tout les champs lorsqu'il souhaite n'en modifier qu'un seul.
    Je crois avoir compris le code.
    Une seule question reste en suspend celle de l'erreur dont je t'ai parlé dans mon post précédent dont je ne trouve pas la résolution.
    Merci encore.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Erreur de syntaxe près de 'WHERE noprod = '4100x'' à la ligne 1
    Cote et double cote ...

    Bon courage
    Bah justement, c'est ce que j'ai vu aussi mais j'ai beau chercher dans le code je ne trouve pas l'erreur de frappe...

    De plus, dans le code fournit précédemment, n'y a t-il pas une erreur ici (ce n'est en aucun cas un reproche juste une question)

    $rs_prod = $mysql_query($query) or die('Erreur : '.mysql_error());


    C'est pas ça plutôt ?

    $rs_prod = mysql_query($query) or die('Erreur : '.mysql_error());

  14. #14
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    C'est bon, il manquait le from d'où mon erreur et j'ai enlevé le $ à la requete et cela semble marcher.
    Je vous tiens au courant.

    Merci encore à ceux qui ont passé du temps pour m'aider

    Edit : rectification, les références s'affichent mais cela ne fonctionne pas encore lorsque je change la valeur.
    Je cherche de mon côté.

    Edit 2:

    Mon code donne ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
     
    <h2>MODIFICATION D'UN PRODUIT </h2>
    <br>
    <?php
     
    // si noprod existe et qu'il n'est pas vide alors
    if (isset($_POST['noprod']) && !empty($_POST['noprod'])) 
    {
        $noprod = $_POST['noprod'];
     
     
        // Mise à jour du produit
        if (isset($_POST['valeur'], $_POST['champ']) && !empty($_POST['valeur']) && !empty($_POST['champ'])) 
    	{
            $champ = $_POST['champ'];
            $valeur = $_POST['valeur'];
            $query = "UPDATE informatique SET ".$champ." = '".$valeur."' WHERE noprod = '".$noprod."'";
        }
     
        // Récupération des infos du produit
        $query = "SELECT proddesig, prodprix, qtestock, datemodif, liaison from informatique WHERE noprod = '".$noprod."' ";
        $rs_prod = mysql_query($query) or die('Erreur : '.mysql_error());
     
        $produit = mysql_fetch_array($rs_prod);
     
    ?>
    <table>
    <tr>
    	<td>
        <!-- colonne designation -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['proddesig']; ?>" />
            <input type="hidden" name="champ" value="proddesig" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
        <td>
        <!-- colonne prix -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['prodprix']; ?>" />
            <input type="hidden" name="champ" value="prodprix" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
        <td>
        <!-- colonne qtestock -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['qtestock']; ?>" />
            <input type="hidden" name="champ" value="qtestock" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    	<td>
        <!-- colonne date -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['datemodif']; ?>" />
            <input type="hidden" name="champ" value="datemodif" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    	<td>
        <!-- colonne liaison -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['liaison']; ?>" />
            <input type="hidden" name="champ" value="liaison" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    </tr>
    </table>
     
    <?php
     
    }
    else
    {
        echo' Erreur. Pas de N° de produit';
    }
    Pour le moment lorsque je clique sur ok les changements ne s'effectuent pas encore.
    Il faut savoir qu'au niveau du form action j'ai remis la page où se trouve le code précédent.

  15. #15
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Pour le moment lorsque je clique sur ok les changements ne s'effectuent pas encore.
    Il manque un mysql_query() pour la mise à jour.
    A savoir que tout le code que j'ai mis était pour te montrer le principe, et non pas dans le but qu'il soit totalement fonctionnel.
    Faut l'adapter, et corriger vu que je l'ai fait ici vite fait


    Un petit conseil au passage.
    Je remarque que tu mets au début du script du code HTML <h2>...</h2>
    Il vaut mieux ne pas faire ainsi, et conserver une certaine structure dans le déroulement, c'est à dire qu'on fait en tout 1er les traitements pures en Php, comme la mise à jour si c'est le cas, puis récupérer les données du produit.
    Ensuite, on fait en dernier tout se qui concerne l'interface, le code HTML.
    En somme, il est de loin préférable de séparer la couche traitement et interface.

  16. #16
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Ok je vais voir ça pour le traitement php puis html, merci pour l'aide.
    Ensuite, une question concernant le form action.
    L'action se fait bien sur la même page donc je dois bien mettre dans l'action la page courante ?

    Ce que je fais ensuite avec les différents formulaires rajoutés c'est bien ça qu'il fallait faire ?

    • EDIT dans le update j'ai fais ça comme code


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (isset($_POST['valeur'], $_POST['champ']) && !empty($_POST['valeur']) && !empty($_POST['champ'])) 
    	{
            $champ = $_POST['champ'];
            $valeur = $_POST['valeur'];
            $query = "UPDATE informatique SET ".$champ." = '".$valeur."' WHERE noprod = '".$noprod."'";
    		$majpdt = mysql_query($query) or die('Erreur : '.mysql_error());
            	header('Location:modifprodpp.php');
        }

    Code qui ne fonctionne pas.
    Peux tu m'expliquer mon erreur.
    PS= header('Location:modifprodpp.php'); correspond au retour automatique sur une autre page après la modification.
    Encore merci pour tout et je suis vraiment désolé pour le dérangement...


    • EDIT 17h15



    J'ai modifié un peu le code pensant que peut être le problème viendrait de là mais je n'ai pas eu de résultat probant.
    Je poste quand même.
    J'ai changé au niveau des formulaires + la requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    <h2>MODIFICATION D'UN PRODUIT </h2>
    <br>
     
    <?php
     
    // si noprod existe et qu'il n'est pas vide alors
    if (isset($_POST['noprod']) && !empty($_POST['noprod'])) 
    {
        $noprod = $_POST['noprod'];
     
     
        // Mise à jour du produit
    	if (isset($_POST['valeur'], $_POST['champ']) && !empty($_POST['valeur']) && !empty($_POST['champ'])) 
    	{
            $champ = $_POST['champ'];
            $valeur = $_POST['valeur'];
            $req = "UPDATE informatique SET ".$champ." = '".$valeur."' WHERE noprod = '".$noprod."'";
    		mysql_query($req) or die('Erreur : '.mysql_error());
    		header('Location:modifprodpp.php');
     
        }
     
        // Récupération des infos du produit
        $query = "SELECT proddesig, prodprix, qtestock, datemodif, liaison from informatique WHERE noprod = '".$noprod."' ";
        $rs_prod = mysql_query($query) or die('Erreur : '.mysql_error());		
        $produit = mysql_fetch_array($rs_prod);
     
    ?>
     
    <div id="modifform">
    <table>
    <tr>
    	<td>
        <!-- colonne designation -->
        <form name="modifdesig" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['proddesig']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['proddesig']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier désignation" />
        </form>
        </td>
        <td>
        <!-- colonne prix -->
        <form name="modifprix" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['prodprix']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['prodprix']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier prix" />
        </form>
        </td>
        <td>
        <!-- colonne qtestock -->
        <form name="modifqtestock" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['qtestock']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['qtestock']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier stock" />
        </form>
        </td>
    	<td>
        <!-- colonne date -->
        <form name="modifdatemodif" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['datemodif']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['datemodif']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier date" />
        </form>
        </td>
    	<td>
        <!-- colonne liaison -->
        <form name="modifliaison" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['liaison']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['liaison']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier liaison" />
        </form>
        </td>
    </tr>
     
    </table>
    </div>
     
    <?php
     
    }
    else
    {
     
     
        echo' Erreur. Pas de N° de produit';
     
     
    }
     
     
     
     
     
     
     
    include('includetableau.php');
     
     
     
     
     
     
     
     
    }
     
     
    else
     
     
    header('Location:accesinvalide.php');
     
     
    ?>

    • EDIT avant que je parte.


    Je suis à cours de solution.
    Je regarderai vos réponses demain matin, si réponses il y a.
    Bonne soirée et merci.

  17. #17
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Le problème, c'est que tu dis "ça ne fonctionne pas".
    Ca ne veut rien dire malheureusement, on pourra jamais aider avec ça.
    Il faut expliquer qu'est ce qu'il ne fonctionne pas, et si Php retourne une erreur, il faut poster l'erreur (complète), c'est le minimum.

    Ensuite, je t'avais conseillé de ne pas commencer par du HTML, pas avant de faire les traitements (les codes d'insertion entre autre), ce n'était pas pour rien.

    Et bien là, le fait de rajouter une redirection (un header) après ce code HTML (le H2 entre autre) ce n'est pas bon.
    Tu risque fort d'avoir un retour d'erreur (très connu) du genre : "header Allready sent by ...".
    Le fait de commencer par un contenu HTML (et même un simple saut de ligne), Php renverra une entête.
    Mais si on rajoute après un header (entête en Français), tu tente de renvoyer une 2ème entête.
    Ca va pas, ce n'est pas logique.
    En gros, c'est un peu comme si tu postais 1 seul courrier avec 2 adresses différentes. Il fait comment le postier ?

    Il ne reste plus à remanier un peu cette page pour déplacer ce HTML, le mettre après les traitements.
    Et s'il y en a d'autres avant (ce qui doit être le cas, car tu dois avoir le doctype, le <html> <body> etc.. encore avant), et bien il va falloir remonter ces traitement avant.
    Bref ... les faire en 1er

    En somme, adopter la logique suivante :
    SI insertion -> redirection (on retourne le contenu de la page indiquée du location)
    SINON -> on continu la suite de cette page (on retourne le contenu de cette page)

    Rajoute un espace après le : pour le header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header('Location: page.php');
    Mise à part ça, explique le problème.

  18. #18
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Merci de ta réponse.
    En fait pour la html je n'ai pas encore appliqué ce que tu m'avais dit tout simplement car je pensais que c'était simplement parce que cela serait plus logique pas que cela pourrait empêcher mon code de fonctionner, c'est pour cela que je comptais m'en charger à la fin quand tout mon code serait fini et clair dans ma tête.

    Je vais essayer de mettre tout ça en ordre alors.

    En ce qui concerne l'erreur, le prlbème, c'est que rien ne s'affiche disons que avec ma modification sur les formulaires ( à savoir que j'ai modifié comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <table>
    <tr>
    	<td>
        <!-- colonne designation -->
        <form name="modifdesig" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['proddesig']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['proddesig']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier désignation" />
        </form>
        </td>
        <td>
        <!-- colonne prix -->
        <form name="modifprix" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['prodprix']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['prodprix']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier prix" />
        </form>
        </td>
        <td>
        <!-- colonne qtestock -->
        <form name="modifqtestock" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['qtestock']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['qtestock']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier stock" />
        </form>
        </td>
    	<td>
        <!-- colonne date -->
        <form name="modifdatemodif" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['datemodif']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['datemodif']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier date" />
        </form>
        </td>
    	<td>
        <!-- colonne liaison -->
        <form name="modifliaison" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['liaison']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['liaison']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier liaison" />
        </form>
        </td>
    </tr>
     
    </table>


    lorsque je valide un des changements je me retrouve sur la même page avec les champs cette fois vide et le header semble donc ne pas fonctionner.

    SI je garde le formulaire que tu m'avais donné au début (à savoir

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <table>
    <tr>
    	<td>
        <!-- colonne designation -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['proddesig']; ?>" />
            <input type="hidden" name="champ" value="proddesig" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
        <td>
        <!-- colonne prix -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['prodprix']; ?>" />
            <input type="hidden" name="champ" value="prodprix" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
        <td>
        <!-- colonne qtestock -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['qtestock']; ?>" />
            <input type="hidden" name="champ" value="qtestock" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    	<td>
        <!-- colonne date -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['datemodif']; ?>" />
            <input type="hidden" name="champ" value="datemodif" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    	<td>
        <!-- colonne liaison -->
        <form name="form_nom" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['liaison']; ?>" />
            <input type="hidden" name="champ" value="liaison" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Ok" />
        </form>
        </td>
    </tr>
    </table>
    Et bien quand je valide le header fonctionne et m'amène à la page désirée mais aucune modification n'est apportée.

    Tout d'abord, est ce que les modifications que j'ai apporté sont correctes, notamment la requete et mes changements au niveau du formulaire ?


    Merci.


    • EDIT 11h14


    J'ai essayé d'appliquer ce que tu m'as dis.
    ça donne ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
     
     
    <?php
    session_start()
     
    ?>
    <?php
     
    include('connect.php');
    include('includecss.php');
     
    if (@$_SESSION['auth']=='didier') // pour eviter erreurs si personne essaie de se loguer sans entrer de mot de passe
    {
     
     
    // si noprod existe et qu'il n'est pas vide alors
    if (isset($_POST['noprod']) && !empty($_POST['noprod'])) 
    {
        $noprod = $_POST['noprod'];
     
     
        // Mise à jour du produit
    	if (isset($_POST['valeur'], $_POST['champ']) && !empty($_POST['valeur']) && !empty($_POST['champ'])) 
    	{
            $champ = $_POST['champ'];
            $valeur = $_POST['valeur'];
            $req = "UPDATE informatique SET ".$champ." = '".$valeur."' WHERE noprod = '".$noprod."'";
    		mysql_query($req) or die('Erreur : '.mysql_error());
    		header('Location: modifprodpp.php');
     
        }
     
        // Récupération des infos du produit
        $query = "SELECT proddesig, prodprix, qtestock, datemodif, liaison from informatique WHERE noprod = '".$noprod."' ";
        $rs_prod = mysql_query($query) or die('Erreur : '.mysql_error());		
        $produit = mysql_fetch_array($rs_prod);
     
     
    ?>
     
    <html>
    <head>
    <title>Modification d'un produit</title>
    </head>
     
    <body>
    <div id="titreindex"> 
     
    <h3>Modification de produits</h3>
     
    </div>
     
     
     
     
    <div id="menumep">
     
    <?php
     
    include('includemenu.php');
     
     
     
     
    ?>
     
     
    </div> 
     
    <div id="tablo">
     
     
    <h2>MODIFICATION D'UN PRODUIT </h2>
    <br>
     
     
    <div id="modifform">
    <table>
    <tr>
    	<td>
        <!-- colonne designation -->
        <form name="modifdesig" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['proddesig']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['proddesig']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier désignation" />
        </form>
        </td>
        <td>
        <!-- colonne prix -->
        <form name="modifprix" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['prodprix']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['prodprix']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier prix" />
        </form>
        </td>
        <td>
        <!-- colonne qtestock -->
        <form name="modifqtestock" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['qtestock']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['qtestock']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier stock" />
        </form>
        </td>
    	<td>
        <!-- colonne date -->
        <form name="modifdatemodif" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['datemodif']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['datemodif']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier date" />
        </form>
        </td>
    	<td>
        <!-- colonne liaison -->
        <form name="modifliaison" action="modifprod.php" method="post">
            <input type="text" name="valeur" value="<?php echo $produit['liaison']; ?>" />
            <input type="hidden" name="champ" value="<?php $produit['liaison']; ?>" />
            <input type="hidden" name="noprod" value="<?php echo $produit['noprod']; ?>" />
            <input type="submit" value="Modifier liaison" />
        </form>
        </td>
    </tr>
     
    </table>
    </div>
     
    <?php
     
    }
    else
    {
     
     
        echo' Erreur. Pas de N° de produit';
     
     
    }
     
     
     
     
     
     
     
    include('includetableau.php');
     
     
     
     
     
     
     
     
    }
    else
     
     
     
     
    header('Location: accesinvalide.php');
     
     
    ?>
     
     
     
     
    <div id="retour">
    <?php
     
    echo "Il y a ".$nb." produit(s)";
     
    ?>
    <form ACTION="menu.php">
    <INPUT name="Bouton3" type="submit" VALUE="Retour">
    </div>
    </div>
     
     
    </body>
     
    </html>
    Et la page où on demande à l'utilisateur de rentrer la reference du produit désigné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
     
     
    <?php
    session_start()
    ?>
    <?php
    // connexion à la base
    include ('connect.php');
    include('includecss.php');
    if (@$_SESSION['auth']=='didier') // pour eviter erreurs si personne essaie de se loguer sans entrer de mot de passe
    {
     
    ?>
    <html>
    <head>
    <title>Modification d'un produit</title>
    </head>
     
    <body>
    <div id="titreindex"> 
     
    <h3>Modification de produits</h3>
     
    </div>
     
    <div id="menumep">
     
    <?php
     
    include('includemenu.php');
     
     
    ?>
     
     
    </div> 
     
     
     
     
     
     
     
    <div id="tablo">
     
     
    <h2>MODIFICATION D'UN PRODUIT </h2>
    <br>
    <form action="modifprod.php" method="post" name="ajout">
       <p>
     
           <label for="numprod">Quel est la référence du produit à modifier ?</label><br>
           <input type="text" name="noprod" id="prod_num" tabindex="10" ><br> 
     
       </p>
     
    <p>
       <input type="submit" value="Valider">
    <input type="reset" value="Réinitialiser">
    </p>
    </form>
     
     
     
     
     
    <?php
     
     
     
    include('includetableau.php');
     
     
     
     
     
     
     
     
    }
     
     
    else
     
     
    header('Location:accesinvalide.php');
     
     
    ?>
     
     
     
     
    <div id="retour">
    <?php
    echo "Il y a ".$nb." produit(s)";
    ?>
    <form ACTION="menu.php">
    <INPUT name="Bouton3" type="submit" VALUE="Retour">
    </div>
     
     
     
     
     
     
     
     
     
     
     
     
    </body>
     
    </html>
    C'est un truc comme ça que tu me conseillais de faire ?

  19. #19
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par RunCodePhp
    Le fait de commencer par un contenu HTML (et même un simple saut de ligne), Php renverra une entête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_start()
     
    ?>
    <?php
     
    include('connect.php');
    Donc entre ceci :
    ?>
    <?php
    Il y a un saut de ligne, c'est un caractère comme un autre, du coup, ça renverra une entête, donc erreur.
    Comme fermer et réouvrir dans la foulée les balises Php ne sert à rien et qu'en plus ça provoque une erreur, autant ne rien mettre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    session_start();
    include('connect.php');
    Tout simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (@$_SESSION['auth']=='didier')
    Les arobases ne servent à rien, ceci ne résout aucun problème, ça fait tout l'inverse, ça masquera les erreurs si c'est le cas, ça n'aidera donc jamais à comprendre en cas d'une éventuelle erreur.

    Imagine un instant qu'on supprime le tableau de bord de ta voiture, comment feras tu pour savoir combien d'essence il reste, le niveau d'huile, la T° du moteur, etc ... la panne ?
    Ce n'est pas une bonne approche.

    Faut regarder du coté du php.ini, il y a une directive du nom de : dispaly_error (valeur On ou Off).
    Donc comme tu est en phase de développement, il est de loin préférable de faire afficher les erreurs, car ça aidera à comprendre.
    Si coté serveur (hébergeur) tu n'as pas accès au php.ini ou s'il ne t'offre pas un autre moyen d'activer ou non cette config, et bien il suffit de mettre en 1er dans ton code ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('display_errors', 1); // valeur : 0 ou 1
    Une fois en production sur le serveur, faudra la mettre à 0 (par mesure de sécurité)
    Il est largement mieux de faire ainsi


    Mais encore une fois, le code que j'ai mis était l'essentiel.
    Si par exemple tu saisie un mauvais N° de produit, alors la requête ne retournera rien, les champs seront vide.
    Pour la mise à jours, c'est à peu près pareil, il faut d'abord être sûr qu'il y est pas d'erreur sur le des champs, sinon aucune mise à jour sera faire.
    Il y a donc des vérifications à rajouter.


    Pour le moment je ne vois pas d'autres raisons que celles ci dessus.
    Coté structure, déroulement, c'est nettement mieux, ça ressemble à quelque chose.

  20. #20
    Membre averti
    Inscrit en
    Mai 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mai 2010
    Messages : 20
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    session_start()
     
    ?>
    <?php
     
    include('connect.php');
    Donc entre ceci :
    ?>
    <?php
    Il y a un saut de ligne, c'est un caractère comme un autre, du coup, ça renverra une entête, donc erreur.
    Comme fermer et réouvrir dans la foulée les balises Php ne sert à rien et qu'en plus ça provoque une erreur, autant ne rien mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    session_start();
    include('connect.php');
    Tout simplement



    Oui je m'en doute. En fait je ne l'avais pas refermé la première fois et cela ne fonctionnait pas j'avais le droit à un message d'erreur et je me suis rendu compte qu'en faisant cela la connection se faisait.
    VOila le pourquoi du comment.
    Donc quand je l'enlève j'ai une erreur c'est pourquoi je l'ai laissé mais je l'enlève de ce pas et je rajoute un ; que j'avais du effacer ma mégarde.




    Citation Envoyé par RunCodePhp Voir le message







    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (@$_SESSION['auth']=='didier')
    Les arobases ne servent à rien, ceci ne résout aucun problème, ça fait tout l'inverse, ça masquera les erreurs si c'est le cas, ça n'aidera donc jamais à comprendre en cas d'une éventuelle erreur.

    Imagine un instant qu'on supprime le tableau de bord de ta voiture, comment feras tu pour savoir combien d'essence il reste, le niveau d'huile, la T° du moteur, etc ... la panne ?
    Ce n'est pas une bonne approche.

    Faut regarder du coté du php.ini, il y a une directive du nom de : dispaly_error (valeur On ou Off).
    Donc comme tu est en phase de développement, il est de loin préférable de faire afficher les erreurs, car ça aidera à comprendre.
    Si coté serveur (hébergeur) tu n'as pas accès au php.ini ou s'il ne t'offre pas un autre moyen d'activer ou non cette config, et bien il suffit de mettre en 1er dans ton code ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('display_errors', 1); // valeur : 0 ou 1
    Une fois en production sur le serveur, faudra la mettre à 0 (par mesure de sécurité)
    Il est largement mieux de faire ainsi


    J'ai enlevé l'@ afin de voir les erreurs comme tu me l'as conseillé.




    Citation Envoyé par RunCodePhp Voir le message

    Mais encore une fois, le code que j'ai mis était l'essentiel.
    Si par exemple tu saisie un mauvais N° de produit, alors la requête ne retournera rien, les champs seront vide.
    Pour la mise à jours, c'est à peu près pareil, il faut d'abord être sûr qu'il y est pas d'erreur sur le des champs, sinon aucune mise à jour sera faire.
    Il y a donc des vérifications à rajouter.

    Pour le moment je cherche juste à ce que la maj se fasse je m'occuperai ensuite des contrôles (à moins que ceux-ci soient obligatoire pour que la maj se fasse ? Dans ce cas là, quels sont les genres de vérifications à faire ? )
    Mais le problème que j'ai, c'est que cela ne se fait pas malgré que je pense que cela soit fonctionnel.
    Bien sur je prends soin d'entrer des numéros de produit existants afin de pouvoir faire des tests.

    Tu ne m'as pas répondu en ce qui concerne les formulaires.
    Un des deux te semble t-il correcte ?









    Citation Envoyé par RunCodePhp Voir le message
    Pour le moment je ne vois pas d'autres raisons que celles ci dessus.
    Coté structure, déroulement, c'est nettement mieux, ça ressemble à quelque chose.

    On y arrive lentement mais surement lol.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Mapping] Problème méthode recheche dans base de données
    Par Braksius dans le forum Hibernate
    Réponses: 1
    Dernier message: 12/07/2012, 18h24
  2. Réponses: 3
    Dernier message: 04/08/2010, 14h05
  3. Réponses: 0
    Dernier message: 20/07/2010, 20h35
  4. [CKEditor] problème insertion texte dans base de données
    Par exeee dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 22/10/2007, 11h12
  5. Problème d'insertion dans base de donnée
    Par Maestro57 dans le forum Langage
    Réponses: 4
    Dernier message: 11/06/2007, 10h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo