Pb d'ajout

bonjour !! j'ai décider de créer un site internet avec une base de données . Et je rencontre quelques difficultés à enregistrer des nouvelles données dans ma base, en effet quend je clique sur "Valider" un message comme celui-ci s'affiche:
"Impossible d'ajouter un enregistrement fils : une constrainte externe l'empèche"
et je ne sais pas du tout s'ou vient le problème
merci
sarah

9 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Salut

    Pourrais tu envoyer l'url de la page qui pause problème et donner son code source !!

    Merci bcp

    Seb
    1. alr j'ai 2 pages, une avec le formulaire, et une autre avec le code php

      code avec le formulaire
      <?php
      include('connexion.php');
      ?>
      <form action="rechp.php" method="POST">
      Nom de l'article
      <select name = "numperle">
      <?php
      $sql = "SELECT numperle,nomperle FROM perle";
      $requete = mysql_query($sql);
      $nombre = mysql_num_rows($requete);
      if($nombre!=0){
      while(list($numperle,$nomperle) = mysql_fetch_array($requete)){
      ?>
      <option value="<?php echo $numperle;?>"><?php echo $nomperle;?></option><?php
      }
      }?>
      </select>

      <input type="submit" value="Rechercher"/>
      </form>

      et la 2ème page:
      <?php
      include("connexion.php");
      $reponse =mysql_query("SELECT *
      FROM perle,formeperle, couleurperle, genreperle,matiere
      WHERE numperle='".$_POST['numperle']."'
      and formeperle.numformeperle=perle.numformeperle
      and couleurperle.numcouleurperle=perle.numcouleurperle
      and genreperle.numgenreperle=perle.numgenreperle
      and matiere.nummatiereperle=perle.nummatiereperle");
      $nblignes=mysql_num_rows($reponse);
      $i=0;
      echo 'Le ou les article(s) correspondant(s) à votre requête :';
      while($i<$nblignes):
      $nomperle=mysql_result($reponse,$i,"nomperle");
      $image=mysql_result($reponse,$i,"image");
      $formeperle=mysql_result($reponse,$i,"nomformeperle");
      $couleurperle=mysql_result($reponse,$i,"nomcouleurperle");
      $genreperle=mysql_result($reponse,$i,"nomgenreperle");
      $matiereperle=mysql_result($reponse,$i,"nommatiereperle");
      ?>
      <p><?php echo "$nomperle"?>
      <p> <?php echo "$formeperle"?>
      <p> <?php echo "$couleurperle"?>
      <p> <?php echo "$genreperle"?>
      <p> <?php echo "$matiereperle";
      $i++;
      endwhile
      ?>
      <img src="<?php echo $image;?>"/>
      <img src="<?php $image?>">

      voila voila ...
      merci
      1. Contributeur
        ton ficher connexion.php est il correct ?

        Pas d'erreur de bdd ou de mots de passe ? je suppose que non si non tu aurais une erreur du tu type "Could not connect" ...

        Et l'url de la page si elle est en ligne c'est ??
        1. C'est pas encore en ligne
          pas d'erreur au niveau de la base de données, ni de mot de passe...
          1. Contributeur
            Je pense que le problème vient des propriétés que tu as données aux champs de ta base sql (not NULL etc...)

            CE problème apparait quand, un champs que tu a renseigner comme ne pouvant pas être null, est null !

            exemple : tu as un champ qui s'appelle id_age et qui pointe donc j'imagine vers une table "age". Et tu es donc obligé de précisé quelque chose dans id_age qui corresponde a un groupe qui existe.

            Si rien n'est précisé alors ta requette est est rejeter ... tu dois donc preciser quelque chose dans le champ OU modifié sa contrainte ( pas not null)

            Voila je pense que ce cela doit venir d'un de tes champs ... regarde sur ta bdd

            Et tiens moi au courant

            Seb
            1. bon alors j'ai regarder dans ma base et dans le champs NULL, pour toutes mes tables c'est écrit "NON", ça signifie quoi ?
              1. Et je rencontre quelques difficultés à enregistrer des nouvelles données dans ma base, en effet quend je clique sur "Valider"

                Pour enregistrer des données modifiées dans une BDD il faut utiliser la requette UPDATE et je ne la voit nulle part dans ton script.
                1. mais je n'est rien dans ma base, donc je suis obligé d'utliser un insert into, et le update sert a acualisé des données déja présentes dans la base??? non c pas ça?
                  1. OUi exact il te fuat une requette INSERT INTO.

                    Mais elle n'y est pas non plus dans ton script.

                    Ce que je ne comprend pas c'est que ton formulaire lit ce qui est déja dans la base, et l'affiche dans une liste SELECT,alors que veux tu rajouter ?