Pb d'ajout

sarah -  
 Alain42 -
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

degseb Messages postés 353 Date d'inscription   Statut Contributeur Dernière intervention   42
 
Salut

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

Merci bcp

Seb
0
sarah
 
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
0
degseb Messages postés 353 Date d'inscription   Statut Contributeur Dernière intervention   42
 
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 ??
0
sarah
 
C'est pas encore en ligne
pas d'erreur au niveau de la base de données, ni de mot de passe...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
degseb Messages postés 353 Date d'inscription   Statut Contributeur Dernière intervention   42
 
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
0
sarah
 
bon alors j'ai regarder dans ma base et dans le champs NULL, pour toutes mes tables c'est écrit "NON", ça signifie quoi ?
0
a
 
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.
0
sarah
 
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?
0
Alain42
 
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 ?
0