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

Langage PHP Discussion :

Modifier une ligne d'un tableau en php avec lien


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut Modifier une ligne d'un tableau en php avec lien
    Bonsoir mes chers développeurs,

    J'ai développé ce qui nécessite afin de modifier une ligne d'un tableau rempli de la base et chaque ligne contient un lien modifier et autre supprimer.
    Pour la suppression est fonctionnelle avec succès, mais pour la modification il y a quelque chose qui cloche au niveau de la requête update.

    Après valider formulaire on se dirige vers update.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
     
    	include 'db.inc.php';
     
    	$req="update from prestation set `client` = '{$_POST['client']}' , `name` = '{$_POST['name']}' , `tache` = '{$_POST['tache']}' , `debut` = '{$_POST['debut']}' , `fin` = '{$_POST['fin']}' , `rapport` = '{$_POST['rapport']}' , `selection` = '{$_POST['selection']}' , `note` = '{$_POST['note']}' where id = '".$_POST['id']."'";
     
    	$result = $connexion->exec($req) or die(print_r($connexion->errorInfo(), true));
     
    	include ('prestation.php');
     
    ?>
    echo $req me donne la requete avec les donnees (fonctionnelle)
    echo $result ne donne rien et pas de modification dans la base ainsi que la page ne se redirige pas vers prestation.php
    Le serveur est distant et il ne me donne pas la trace des erreurs.

    Cordialement.

  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
    Les erreurs eventuelles sont sur la requête, pas sur la connexion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    or die(print_r($result->errorInfo(), true));
    Mais c'est une facon ringarde de traiter les erreurs, active plutôt les exceptions PDO.
    De plus on ne met pas des données venant de l'utilisateur dans une requête, utilise une requête préparée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $sth = $connexion->prepare("update from prestation set `client` = :client , `name` = :name , `tache` = :tache , `debut` = :debut, `fin` = :fin, `rapport` = :rapport, `selection` = :selection, `note` = :selection WHERE id = :id");
     
    $sth->execute(array(':client'=>$_POST['client'],':name'=>$_POST['name'], ':tache'=>$_POST['tache'], ':debut'=>$_POST['debut'], ':fin'=>$_POST['fin'], ':rapport'=>$_POST['rapport'], ':selection'=>$_POST['selection'], ':note'=>$_POST['note'], ':id'=$_POST['id']));
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Bonjour,
    Rien n'est changé et la page toujours vide et j'en sais pas que je devais faire!!

  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
    Tu as activé les exceptions PDO ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Avec try catch ou une autre chose?

    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
    <?php
    try{
    	include 'db.inc.php';	
     
    	$sth = $connexion->prepare("update from prestation set `client` = :client , `name` = :name , `tache` = :tache , `debut` = :debut, `fin` = :fin, `rapport` = :rapport, `selection` = :selection, `note` = :note WHERE id = :id");
     
    	$sth->execute(array(':client'=>$_POST['client'],':name'=>$_POST['name'], ':tache'=>$_POST['tache'], ':debut'=>$_POST['debut'], ':fin'=>$_POST['fin'], ':rapport'=>$_POST['rapport'], ':selection'=>$_POST['selection'], ':note'=>$_POST['note'], ':id'=$_POST['id']));
     
    	include ('prestation.php');
    }
    catch(PDOException $e)
    {
    echo "Échec : " . $e->getMessage();
    }
     
     
    ?>

  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
    Non au niveau de la connexion :
    http://php.net/manual/fr/pdo.error-handling.php
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Oui c'est ça?? (db.inc.php)

    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
    <?php
    $host	=	'...';
    $base	=	'...';
    $user	=	'...';
    $pass	=	'....';
     
    try
    {
    	$connexion = new PDO("mysql:host=$host;dbname=$base", $user, $pass);
    	$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }
    catch(PDOException $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
    ?>

  8. #8
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Points : 746
    Points
    746
    Par défaut


    Y'a-t-il une erreur qui s'affiche désormais ?

  9. #9
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Je remplie mon formulaire relatif à ligne à modifier je confirme et on s'arrête sur update.php (page vide) et rien n'est changé dans la base

  10. #10
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Points : 746
    Points
    746
    Par défaut
    Il s'agit peut-être d'une erreur externe à ta requête.

    De plus, ton serveur est peut être paramétré pour ne pas afficher les erreurs.

    Essaie d'ajouter ceci au début de ton fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error_reporting(E_ALL);
    ini_set("display_errors", 1);

  11. #11
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut
    J'ai mis ce code dans db.inc.php au début, les tables n'affichent rien. est ce que je met au début de ce fichier ou bien où exactement
    Une page a affiché un warning c tout

    Ce qui est sur que mon serveur est paramétré pour ne pas afficher les erreurs.

  12. #12
    Membre éclairé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Septembre 2012
    Messages
    416
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Septembre 2012
    Messages : 416
    Points : 746
    Points
    746
    Par défaut
    Une page a affiché un warning c tout
    Et que raconte il ?

  13. #13
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Je suis sérieux, je suis bloqué, j'ai dépassé mon deadline et je ne sais pas quoi écrire déolé!!

    C'est une autre page qui n'a pas de relation de la page update mais pour celle-ci page vide comme d'habitude

  14. #14
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le but dans la vie du code que vaelendra t'a fait ajouter, c'est justement de rendre les erreurs visibles. Donc maintenant, il faut nous donner le message du warning
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  15. #15
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Le problème c'est qu'il n y a aucun warning ni erreur une page vide comme d'habitude

    J'ai testé sur local les tables n'affichent rien mais pour la page update.php je reçoit l'erreur suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'from prestation set `client` = NULL , `name` = NULL , `tache` = NULL , `debut` =' at line 1' in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\updatepres.php:7 Stack trace: #0 C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\updatepres.php(7): PDOStatement->execute(Array) #1 {main} thrown in C:\Program Files\EasyPHP-DevServer-14.1VC9\data\localweb\projects\PortailRessources\updatepres.php on line 7

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bonjour ramzi87,

    il est INUTILE DE CITER un message entier pour y répondre !

    Tu m'obliges à modifier TOUS tes messages !

    Pour répondre :
    => Clique sur le bouton "+ Répondre à la discussion" ci-dessous à gauche !!

  17. #17
    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
    Il a fallu t'arracher les dents pour que tu nous donnes le message d'erreur

    La syntaxe est
    il n'y a pas de "from"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  18. #18
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Bonsoir, j'ai arraché un dent déjà!!!

    l'update est bon pour une ligne mais il ajoute une même ligne à la fin du tableau et j'en sais pas où est le problème??

    Update avec doublon le problème
    Il y a un insert dans la page d'affichage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if ($_POST) {
    	//On se connecte a la base
    	include 'db.inc.php';
     
     
    	$req = "INSERT INTO `project` (`name`, `encoDate`, `dateStart`, `nbrDay`, `dateEnd`, `depassement`, `description`, `priority`, `affectation`, `clientName`) VALUES ('{$_POST['name']}' , '{$encoDate}' , '{$dateStart}' , '{$_POST['nbrDay']}' , '{$dateEnd}' , '{$depassement}' , '{$_POST['description']}', '{$_POST['priority']}' , '{$_POST['affectation']}' , '{$_POST['clientName']}');";
    	$result = $connexion->exec($req);
     
    }
     
    ?>
    Il faut ajouter une condition sur id s'il existe déjà ou non

  19. #19
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2015
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2015
    Messages : 120
    Points : 66
    Points
    66
    Par défaut re
    Le problème c'est que lorsque la modification est réussie, on se redirige vers la page d'affichage du tableau qui contient au début une requête insert (if ($_POST)), comment je peux annuler le post des champs modifiés afint d'éviter l'inserion d'une nouvelle ligne dans ce cas-là!!!

  20. #20
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1/ la question n°1 qu'on se pose, c'est : "Que fait cette requête INSERT dans une page d'AFFICHAGE ?"

    Un problème de CONCEPTION et/ou de LOGIQUE, sans doute ?


    2/ la question n°2 est : "Comment peut-on faire une requête INSERT SANS même vérifier/protéger les données ???"

    3/ Le minimum à faire après l'UPDATE, et avant la redirection :

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

Discussions similaires

  1. Modifier ponctuellement la hauteur d'une ligne d'un tableau
    Par Erlen dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 0
    Dernier message: 28/04/2011, 21h29
  2. Réponses: 1
    Dernier message: 18/12/2009, 20h43
  3. Réponses: 5
    Dernier message: 10/11/2006, 11h00
  4. Style d'une ligne d'un tableau et Checkbox
    Par echecetmat dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/01/2005, 15h03
  5. probleme bizarre de hauteur auto d'une ligne dans un tableau
    Par zax-tfh dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 17/01/2005, 23h34

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