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 :

Php mysql débutant


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Avril 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Avril 2018
    Messages : 16
    Par défaut Php mysql débutant
    Bonjour a tous , dans ma page de code j'ai deux erreurs d'afficher :

    Notice: Undefined index: id in C:\wamp64\www\ville\edition.php on line 41
    donc la où il y a
    $id = $_GET['id']; (à la partie 2 ) pour cette erreur est ce qu'il faut tester si ce champs a été initialisé avec la fonction isset() ou !empty() ?

    et
    Fatal error: Call to a member function fetch_array() on boolean in C:\wamp64\www\ville\edition.php on line 46
    (// création du nouvel array
    $row = $result->fetch_array(); )


    Code php : 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
     
    <?php require('inc_connexion.php'); ?>
    <!DOCTYPE html>
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
    <?php
    /*
    Partie 1 : gestion de la saisie et enregistrement
    -------------------------------------------------*/
    // récupération des variables
    if(isset($_POST['submit_form']))
    {
    $capitale_nom = $_POST['capitale_nom'];
    $capitale_texte = $_POST['capitale_texte'];
    $capitale_id = $_POST['capitale_id'];
    // vérification du contenu des variables
    if((empty($capitale_nom)) OR empty($capitale_texte))
    {
    $message = '<p class="error">Vous devez saisir le nom d\’une
    capitale et sa présentation.</p>';
    }
    else
    {
    // requête UPDATE
    if ($mysqli->query('UPDATE capitales SET capitale_nom = "'.$capitale_nom.'", capitale_texte = "'.$capitale_texte.'" WHERE capitale_id = '.
    $capitale_id))
    {
    $message = '<p class="message">La mise à jour de la capitale '.
    $capitale_nom .' est effectuée.</p>';
    }
    else
    {
    $message = '<p class="error">La mise à jour de la capitale '.
    $capitale_nom .' est pas effectuée.</p>';
    }
    }
    }
    /*
    Partie 2 : récupération des informations de la base
    et affichage dans le formulaire
    -------------------------------------------------*/
    // récupération de la variable externe
    $id = $_GET['id'];
    // requête.
    $result = $mysqli->query('SELECT capitale_id, capitale_nom, capitale_texte
    FROM capitales WHERE capitale_id = ' . $id );
    // création du nouvel array
    $row = $result->fetch_array();
    // variables destinées à l’affichage
    $nom = $row['capitale_nom'];
    $texte = $row['capitale_texte'];
    ?>
    <div>
    <h1>Ajouter une capitale</h1>
    <?php if(isset($message)) echo $message ?>
    <form method="post">
    <p>Nom de la capitale : <input type="text" name="capitale_nom"
    value="<?php echo $nom ?>"/></p>
    <p>Texte de présentation<br>
    <textarea name="capitale_texte" cols="32" rows="8"/><?php echo $texte
    ?></textarea></p>
    <input type="hidden" name="capitale_id" value="<?php echo $id ?>" />
    <p><input type="submit" name="submit_form" value="valider" /></p>
    </form>
    </div>
    </body>
    </html>

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

    1- A priori, tu sais comprendre les messages d'erreur.

    2- Ça suppose que l'URL soit : "........?id=...."

    3- Oui, il faut systématiquement vérifier l'existence des données qu'on utilise.

    4- Et il me semble qu'on t'a DEJA conseillé de faire des requêtes préparées, non ?

  3. #3
    Membre averti
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Avril 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Avril 2018
    Messages : 16
    Par défaut
    Dans un des mes autres fichiers nommé capitale.php et dans d'autres j'ai écris ce genre d'url :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <li><a href="capitale.php?id=<?php echo $id ?>"><?php echo $capitale ?></a></li>
    et d'ailleurs je viens de voir que j'ai des erreurs sur capitale.php et je pense que c'est pour ça que dans cette page de code edition.php le code $id = $_GET['id']; ne marche pas il faut que je règle les problèmes que j'ai sur capitale.php.

    J'ai la même erreur Notice: Undefined index: id in C:\wamp64\www\ville\ville.php on line 6 car j'ai mis $id = $_GET['id']; faut il que j'utilise se code la : $id = isset($_POST['id']) ? $_POST['id'] : NULL; ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    1- Oui.
    NULL, ou 0, ou ''... à toi de choisir.

    Dans les 3 cas, c'est empty.

    2- PENSE aussi aux requêtes préparées.
    Ce n'est pas une option, mais une obligation dès qu'on a des paramètres "externes" à intégrer !

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Ça ne doit pas être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $id = $_POST['capitale_id'];

  6. #6
    Membre averti
    Homme Profil pro
    Architecte matériel
    Inscrit en
    Avril 2018
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte matériel

    Informations forums :
    Inscription : Avril 2018
    Messages : 16
    Par défaut
    D'accord et du coup c'est à placer juste avant le code $id = $_GET['id']; ?
    Et les requêtes préparées c'est bien ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result = $mysqli->query('SELECT ville_id, ville_nom, ville_texte FROM villes WHERE ville_id = ' . $id );
    ?

  7. #7
    Invité
    Invité(e)
    Par défaut
    1- Réfléchis...
    La programmation est en grande partie une question de LOGIQUE.

    2- Non. Ca, c'est une requête "simple"...
    Il faudrait avoir la CURIOSITE de faire des RECHERCHES "mysqli requete preparee"
    On ne peut pas tout faire à ta place...

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Pourquoi récupérer par un $_GET or que l'id est dans $_POST['capitale_id']?

    Pour la requête préparée https://fmaz.developpez.com/tutoriel...re-pdo/#LIII.c

    A+.

Discussions similaires

  1. Php mysql débutant
    Par dell91 dans le forum Langage
    Réponses: 39
    Dernier message: 02/04/2020, 17h16
  2. [MySQL] Aide authentification par session PHP MySql (Débutant)
    Par Dargar dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 03/03/2017, 14h52
  3. [MySQL] débutant, PHP MYSQL XML
    Par nkordiko dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 22/04/2010, 16h56
  4. [Débutant] radio button et BDD (javascript/PHP/MySQL)
    Par stringman62 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/02/2007, 19h03
  5. [Flash MX 2004] Php Mysql (débutant)
    Par mooky dans le forum Flash
    Réponses: 7
    Dernier message: 08/02/2006, 20h55

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