[SQL] Erreur SQL

KévYn -  
 KévYn -
Bonjour,

En voulant envoyer les donner d'un formulaire vers une base ACCESS avec le code suivant:

<?
$datedujour=date("d/m/Y");
$base ="C:\Program Files\EasyPHP\mysql\data\Parking.mdb";
$connexion = odbc_connect('MS Access Database', 'root', '') or die ('Erreur de connexion');


$nbcarte=$_POST["nbcarte"];
$nbveh=$_POST['nbveh'];
$datepai=$_POST['datepai'];
$moypai=$_POST['moypai'];


$sql = "INSERT INTO paiement (num_carte°, date_paiement) VALUES ('$nbcarte', '$datepai')";


$req = odbc_do($connexion, $sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());



odbc_close( $connexion);

?>


J'obtient cetts erreur:

Warning: odbc_do(): SQL error: [Microsoft][Pilote ODBC Microsoft Access] Vous ne pouvez pas ajouter ou modifier un enregistrement car l'enregistrement associé est requis dans la table 'ABONNEMENTS'., SQL state 23000 in SQLExecDirect in c:\program files\easyphp\www\stagekevin\abonnements.php on line 82
Erreur SQL !
INSERT INTO paiement (num_carte°, date_paiement) VALUES ('33', '04/06/2007')


Quelqu'un pourait-il m'aider?
Merci d'avance

2 réponses

Pool Orion Messages postés 124 Statut Membre 55
 
Salut,

Je pense qu'il y a une table appelée Abonnement dans ta base de données et qu'il y a une contrainte obligeant tout enregistrement de ta table paiement d'être également dans la table abonnement.
Regarde dans les liens entre tes tables.
1
KévYn
 
Oui il y avait un lien entre ces de champs
Mais même en le retirant sa ne marche toujours pas, j'ai toujours la même erreur..
0
Pool Orion Messages postés 124 Statut Membre 55
 
Supprimer le lien ne suffit pas, il faut egalement supprimer la contrainte. Ta colonne est renseignée comme clé externe de la deuxième table, et c'est pour ca que tu as une erreur.
D'un autre coté, je ne suis pas certain qu'il faut supprimer cette contrainte, regarde tout de même si tu ne devrais pas plustot insérer ton record dans la table abonnement avant de l'insérer dans la table payement ! Il me parait en effet logique pour pour avoir un payement il faut au préalable avoir eu un abonnement non ?
0
KévYn > Pool Orion Messages postés 124 Statut Membre
 
Comment fait on pour supprimer la contrainte?
(Dsl je ne connait pas trop ACCESS, ce n'est pas moi qui est fait la table..)
0
Pool Orion Messages postés 124 Statut Membre 55 > KévYn
 
Désolé mais je viens de faire un test et en supprimant le lien, la contraite est automatiquement supprimée. Regarde peut-être dans les propriété de ton champs de table s'il n'y a pas un champs lié. Sinon, il me faudra ta base de données pour pouvoir t'aider.
0
KévYn > Pool Orion Messages postés 124 Statut Membre
 
C'est bon en enlevant les lien sa marche en faite...je n'avais pas modifier la bonne base -_-'

Merci pour ton aide!
0