Probleme d'incrémentation

Résolu/Fermé
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 - 14 janv. 2009 à 11:03
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 - 19 janv. 2009 à 18:29
Bonjour,
voici mon code PHP qui est sensé stocker le message envoyé d'une personne à l'autre:

//connexion à la base des données

$user="root";
$pass="";
$db="localhost";
$link = mysql_connect($db,$user,$pass);

if($link != 0)
{
echo("<p>vous êtes bien connecté</p>");
// ouverture de la base
mysql_select_db('bd_site_web',$link);
if($link != 0)
echo("<p>bienvenue</p>");
else
echo("<p>un problème est survenu lors de la tentation de votre connection!</p>");

}
else
echo("<p>réessayez plus tard.</p>");

//reccuperation des elements du formulaire

$msg=$_POST["txt_msg"];
$expediteur=$_POST["txtExp"];
$destinataire=$_POST["txtDes"];

//requetes des recherches

$searchExp=("select code_abonne
from abonne
where pseudo='$expediteur';");
$searchcode="select code_message
from messages
where code_abonne='$affectation[code_abonne]'
AND txt_message='$msg';";
$sqlinsert="insert into recevoir values ('$affect[code_message]','$destinataire');";

//requete de recherche du pseudo correspondant
$sqlpseudo="select pseudo
from session
where pseudo='$destinataire'";

//execution des requetes

$pseudo=mysql_query($sqlpseudo) or die (mysql_error());
$Exp=mysql_query($searchExp);
$affectation=mysql_fetch_array($Exp);

//requete d'insertion du message

$sqlinsert1="insert into messages values ('','" .$affectation[code_abonne]. "','$msg');";

//execution de la requete

mysql_query($sqlinsert1) or die (mysql_error());
$codemsg=mysql_query($searchcode)or die (mysql_error());
$affect=mysql_fetch_array($codemsg);
mysql_query($sqlinsert)or die (mysql_error());
//controle des resultats

echo ("<p>voici le code du message envoyé-----> " . $affect[code_message] . "</P>");
echo ("<p>voici le numéro de l'expediteur-----> " . $affectation[code_abonne] . "</P>");


apres execution de ce code il y a deux incrementation sensées s'executer la 1ere dans la table recevoir (et c'est là où un message d'erreur s'affiche en me disant qu'il y a probleme de contrainte de clé etrangères) et la deuxieme incrémentation se fait au niveau de la table message qui s'execute comme il faut (au moins une est faite oouuuff!!)

n'hesitez pas à me demander plus de détails et merci pour vos conseils!!

3 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
14 janv. 2009 à 19:58
salut,

c'est là où un message d'erreur s'affiche en me disant qu'il y a probleme de contrainte de clé etrangères
ben c'est surtout le message d'erreur qu'il nous faudrait…
et as-tu vraiment besoin de mettre des contraintes sur tes tables ?
0
skykiller31 Messages postés 112 Date d'inscription dimanche 20 avril 2008 Statut Membre Dernière intervention 5 août 2011 5
19 janv. 2009 à 17:47
merci dalida pour ton aide mais j'ai changé l'architecture de ma base de données pour plus de simplicité
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
19 janv. 2009 à 18:29
salut,

ça ne m'étonne pas, les contraintes c'est sans doute très utile pour de très grosses BDD, avec un maximum de sécurité mais pour des petites bases c'est plus embêtant qu'autre chose !

donc ton problème est "résolu" ?
0