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 :

UPDATE ne fonctionne pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut UPDATE ne fonctionne pas
    Re bonjour, ou bonjour a ceux qui sont pas encore passé,

    J'ai un nouveau probleme que j'ai envis de qualifier "a la con", j'explique apres je met le code.

    Le code que je veux utiliser fonctionne tres bien pour de nouvelles insertion (INSERT INTO), mais quand j'utilise la fonction de mise a jour (UPDATE) il ne veux plus fonctionner, pourquoi je sais pas et je comprend pas la raison.

    le code :

    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
    if (isset($_FILES['photo']) && !empty($_FILES['photo']['tmp_name'])) {
     
     
    					$dossier = '../../images/bdd/grandesentreprises/';
    					$fichier = basename($_FILES['photo']['name']);
    					$taille_maxi = 1000000;
    					$taille = filesize($_FILES['photo']['tmp_name']);
    					if($taille>$taille_maxi)
    					{
    						 $erreur = 'Le fichier est trop gros';
    					}
    					if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    					{
    						 //On formate le nom du fichier ici...
    						 $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    						 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    						 if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    						 {
    							  echo 'Formulaire traité avec succès, cliquez içi pour revenir au site "<a href="../../accueil.php">accueil</a> ou içi "<a href="./index.php">index administration</a> pour ajouter ou supprimer d&prime;autres articles.';
    						 }
    						 else //Sinon (la fonction renvoie FALSE).
    						 {
    							  echo 'Echec de l\'upload !';
    						 }
    					}
    					else
    					{
    						 echo $erreur;
    					}	
     
     
    					}
    					if (!$error) {
     
    						$id=$_POST['id'];
    						// si pas d'erreur on a joute à la DB (si pas d'upload d'image => pas d'erreur)
    						mysql_query("UPDATE grandesentreprises SET nomphoto='$fichier', titre='$titre', prearticle='$prearticle', nom='$nom', article='$article', signature='$signature' WHERE id='$id' ") or die(mysql_error());
    						mysql_query("UPDATE maj SET jour='$jour', njour='$njour', mois='$mois', annee='$annee', heure='$heure', minute='$minute' WHERE id='1'");
    						echo 'Formulaire traité avec succès, cliquez içi pour revenir au site "<a href="../../accueil.php">accueil</a> ou içi "<a href="./index.php">index administration</a> pour ajouter ou supprimer d&prime;autres articles.';
    					}
     
    			}
    J'arrive même plus a reflechir, ca me fait mal au crane

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pourrais-tu être plus explicite sur le problème que tu rencontres ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    lorsque je veux mettre a jour des données précise, cela ne marche pas, pourtant le code marche bien quand j'insère de nouvelles données.

    en gros,

    INSERT INTO ... => ok
    UPDATE ... => marche pas

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Et a part "ca marche pas", pourrais-tu nous en dire plus ?
    Par exemple
    Est-ce que cela concerne les deux UPDATE ?
    Y a t'il une erreur indiquée pour l"une des deux requetes ?
    as-tu le message "Formulaire traité" ou même pas ?

    En dehors du fait que tu utilises $error au lieu de $erreur, affiche les requêtes pour voir un peu plus precisemment ce qui se passe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (!$erreur) {
     
    						$id=$_POST['id'];
    						// si pas d'erreur on a joute à la DB (si pas d'upload d'image => pas d'erreur)
    						echo ("UPDATE grandesentreprises SET nomphoto='$fichier', titre='$titre', prearticle='$prearticle', nom='$nom', article='$article', signature='$signature' WHERE id='$id' ");
    						echo("UPDATE maj SET jour='$jour', njour='$njour', mois='$mois', annee='$annee', heure='$heure', minute='$minute' WHERE id='1'");
    						echo 'Formulaire traité avec succès, cliquez içi pour revenir au site "<a href="../../accueil.php">accueil</a> ou içi "<a href="./index.php">index administration</a> pour ajouter ou supprimer d&prime;autres articles.';
    					}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Je n'ai aucun message d'erreur, lorsque le formulaire est traité, j'obtiens une page blanche, l'image n'est pas traité, elle n'apparait pas dans le dossier, et je n'ai aucune entrée dans la base de donnée, j'ai un truc dedans qui coince tout le reste, le deuxieme "UPDATE maj" fonctionnait tres bien, mais depuis cette page de traitement rien.

    Je met le code entier de la page de traitement

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>Document sans titre</title>
     
    </head>
        <body>
    <?php
    /* Récupe des données et transfert vers dossier (photo) et envois à la base de données */
     
     
     
    include'../../include/identifiants.php';
     
    	mysql_connect($adresse,$nom,$motdepasse) or die(mysql_error());
    	mysql_select_db($database) or die(mysql_error());
     
    			$titre=$_POST['titre'];
    			$nom=$_POST['nom'];
    			$prearticle=nl2br(htmlspecialchars($_POST['prearticle']));
    			$article=nl2br(htmlspecialchars($_POST['article']));
    			$signature=$_POST['signature'];
    			$id=$_POST['id'];
    			$jour=date(l);
    			$njour=date(d);
    			$mois=date(m);
    			$annee=date(Y);
    			$heure=date(H);
    			$minute=date(i);
     
    // à la place de :
    // if (isset($_POST['none'])) {
    if (isset($_FILES['photo']) && !empty($_FILES['photo']['tmp_name'])) {
     
     
    					$dossier = '../../images/bdd/grandesentreprises/';
    					$fichier = basename($_FILES['photo']['name']);
    					$taille_maxi = 1000000;
    					$taille = filesize($_FILES['photo']['tmp_name']);
    					if($taille>$taille_maxi)
    					{
    						 $erreur = 'Le fichier est trop gros';
    					}
    					if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    					{
    						 //On formate le nom du fichier ici...
    						 $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
    						 $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
    						 if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
    						 {
    							  echo 'Formulaire traité avec succès, cliquez içi pour revenir au site "<a href="../../accueil.php">accueil</a> ou içi "<a href="./index.php">index administration</a> pour ajouter ou supprimer d&prime;autres articles.';
    						 }
    						 else //Sinon (la fonction renvoie FALSE).
    						 {
    							  echo 'Echec de l\'upload !';
    						 }
    					}
    					else
    					{
    						 echo $erreur;
    					}	
     
     
    					}
    					if (!$erreur) {
     
    						$id=$_POST['id'];
    						// si pas d'erreur on a joute à la DB (si pas d'upload d'image => pas d'erreur)
    						mysql_query("UPDATE grandesentreprises SET nomphoto='$fichier', titre='$titre', prearticle='$prearticle', nom='$nom', article='$article', signature='$signature' WHERE id='$id' ") or die(mysql_error());
    						mysql_query("UPDATE maj SET jour='$jour', njour='$njour', mois='$mois', annee='$annee', heure='$heure', minute='$minute' WHERE id='1'");
    						echo 'Formulaire traité avec succès, cliquez içi pour revenir au site "<a href="../../accueil.php">accueil</a> ou içi "<a href="./index.php">index administration</a> pour ajouter ou supprimer d&prime;autres articles.';
    					}
     
    			}
     
    /* Fin */
     
    			mysql_close();
    		?>
     
     
     
    L&prime;article a bien &eacute;t&eacute; supprim&eacute;.<br /><br />Retourner &agrave; :
     
    <ul>
    	<li><a href="../../accueil.php">Accueil du site</a></li>
        <li><a href="../">Index de l'administration</a></li>
        <li><a href="./">Index de "Grandes entreprises</a></li>
    </ul>
    </body>
    </html>
    j'espere que ca pourras t'aider plus pour comprendre mon problème, et me connaissant ca doit être une toute petite erreur du style l'oublis d'un caractère ou je ne sais quoi de ce genre, mais j'ai beau me relire je trouve pas.

    Pour UPDATE maj, il est uniquement sous cette forme sur tout mes pages de mise a jour, il me sert a rentrer les données pour afficher la dernière mise a jour sur le site. Par contre le premier qui concerne les grandes entreprises habituellement il est uniquement en INSERT INTO, et dans ce cas la il fonctionne très bien, c'est depuis que je l'ai modifier en UPDATE qu'il ne marche plus

    edit, je viens de voir des guillemet en trop a la fin de mon code, j'espere que c'etait pas ca, sinon j'vous aurez embeter avec pour rien :/.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as un } qui se ballade.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {
    						 echo $erreur;
    					}	
     
     
    					}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    ho la vache, pourtant c'est pas faute d'avoir relus, quand je pense que ce p'tit machin est suffisant pour faire planter tout.

    Merci a toi, maintenant il faut que j'arrive a faire en sorte qu'il me modifie mes données il veut pas, mais la ca doit venir de la relation entre le formulaire et le traitement, j'ai du me tromper au niveau des POST.

    merci encore

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu devrais veiller a afficher les erreurs quand tu debug, sinon c'est sur que ce n'est pas evident.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    a part pour afficher les erreurs mysql dans php, je sais pas comment on fait.

    J'apprend tout seul et j'ai pas eu la patience de faire par etape, du coup j'apprend le html, css, php, mysql et flash en meme temps, et la je me rend compte que c'est pas la meilleur des techniques je perds un peu dans tout ca

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je suppose que tu as ta page directement sur ton hebergeur et qu'il n'affiche pas les erreurs (ce qui est une bonne chose en production).

    Tu pourrais par contre avoir ton petit environnement de test chez toi.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    non, je suis en local pour le moment, j'ai retenu la lecon du site hebergé avant de l'avoir fini.

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Dans ton php.ini tu dois avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error_reporting  =  E_ALL
    display_errors = On
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    je vais voir ca, j'edit pour te dire une fois que c'est fait

    ---------

    C'est bon, je suis sous mac et MAMP etait configurer sur Off pour display, je les aient mis sur On

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Bon, je crois avoir compris pourquoi il ne me fait pas la mise a jour.

    Il n'arrive pas a me récupérer la valeur de l'id que je veux faire passé par POST, je l'ai pourtant indiqué dans un hidden mais il ne veux pas. Ca commence a serieusement m'énerver, j'ai jamais eu autant de probleme avec un code

  15. #15
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux faire un
    pour controler ce que tu recuperes exactement du POST.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    exact, merci

    -------

    c'est bien ce que je pensais, je recupere tout sauf mon id.

    J'vais me peter un gros cable je le sens

    -------
    re edit ^^

    je viens de comprendre mon erreur, j'ai donné deux fois le meme nom a mes input

    par contre bien que maintenant je recupere toutes mes données, il veut toujours pas me les mettres dans la base de données, je continu de chercher, je vais bien finir par trouver

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Août 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 92
    Points : 70
    Points
    70
    Par défaut
    Bonjour,

    je t'embete encore un tit peu aujourdhui, bon deja le code est corrigé, c'est plus facile a tete reposé ^^.

    voila, je rappelle un texte de la base de données a afficher dans le textarea, probleme il m'affiche "<br />" et " \' ", pour les "<br />" le probleme est reglé, mais je ne sais pas, et ne trouve pas, les caractères a ecrire dans le "preg_replace" pour les " \' ".

    Pourrais tu m'aider stp, merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Update ne fonctionnant pas à la première exécution
    Par isa150183 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 10/11/2006, 18h25
  2. Chaîne SQL update ne fonctionne pas (faut-il l'imbriquer ?"
    Par beegees dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/10/2006, 11h22
  3. UPDATE ne fonctionne pas ?
    Par crocodile dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 18/07/2006, 16h50
  4. Requete UPDATE ne fonctionnant pas
    Par Yanmeunier dans le forum Access
    Réponses: 3
    Dernier message: 12/04/2006, 17h19
  5. Microsoft Update ne fonctionne pas sous Win 2000 SP4
    Par botakelymg dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 03/10/2005, 05h32

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