bjour les alsaciens!
voila un dessin vaut mieux que des mots donc j'ai la table adresse qui contientt la clé etragère de la table abonne et la table operateur
seulement j'aimerais juste inserer un nouvel operateur (idop,nomop,contact1,tel,fax) avec les elements de son adresse qui se trouve dans la table adresse(id adresse,adr_ligne1,adr_ligne2,adrcp,adrville)
seulement la table adresse contient 2 cles etrangères ( #idop, et #idabonne)
pour l'instant je ne m'occupe pas d'abonne ! c''est à part sauf que ma requete passe pas
voici mes tables pour de vrai
RESULTAT MSG ERREUR comme quoi le nombre de param ne match pas
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in C:\wamp64\www\ALLAHYARAB\ajouter-op.php on line 73
voila un dessin vaut mieux que des mots donc j'ai la table adresse qui contientt la clé etragère de la table abonne et la table operateur
seulement j'aimerais juste inserer un nouvel operateur (idop,nomop,contact1,tel,fax) avec les elements de son adresse qui se trouve dans la table adresse(id adresse,adr_ligne1,adr_ligne2,adrcp,adrville)
seulement la table adresse contient 2 cles etrangères ( #idop, et #idabonne)
pour l'instant je ne m'occupe pas d'abonne ! c''est à part sauf que ma requete passe pas
voici mes tables pour de vrai
CREATE TABLE `adresse` (
`ID_ADR` int(11) NOT NULL,
`ID_ABONNE` int(11) NOT NULL,
`ID_OP` int(11) NOT NULL,
`ADR_LIGNE1` char(75) DEFAULT NULL,
`ADR_LIGNE2` char(75) DEFAULT NULL,
`ADR_CP` decimal(5,0) DEFAULT NULL,
`ADR_VILLE` char(35) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE `operateur` (
`ID_OP` int(11) NOT NULL,
`NOM_OP` varchar(155) NOT NULL,
`EMAIL_OP` char(255) DEFAULT NULL,
`CONTACT1` char(55) DEFAULT NULL,
`CONTACT2` char(55) DEFAULT NULL,
`CONTACT3` char(55) DEFAULT NULL,
`TEL_OP` varchar(15) NOT NULL,
`FAX_OP` varchar(15) NOT NULL
)
CREATE TABLE `abonne` (
`ID_ABONNE` int(11) NOT NULL,
`NOM_ABONNE` varchar(55) DEFAULT NULL,
`PRENOM_ABONNE` varchar(55) DEFAULT NULL,
`EMAIL_ABONNE` char(255) DEFAULT NULL
)
<?php
include('haut.php');
include('connect.php');
?>
<section>
<article>
<header>
<h2>Ajouter Un Opérateur</h2>
</header>
<form class="form " action="#" method="POST" >
<label >Nom Operateur: </label>
<input type="text" name="NOMOP" required />
<label>Email Operateur: </label>
<input type="EMAIL" name="EMAILOP" required />
<label for="CONT1">CONACT1 </label>
<input type="text" name="CONT1" required />
<label for="CONT2">CONACT2 </label>
<input type="text" name="CONT2" />
<label for="CONT3">CONACT3 : </label>
<input type="text" name="CONT3" />
<label>TELEPHONE : </label>
<input type="tel" name="TELT" required />
<label>FAX : </label>
<input type="tel" name="TELF" />
<label>Adresse 1: </label>
<input type="text" name="adr1" required />
<label for="adr2">Adresse 2: </label>
<input type="text" name="adr2" />
<label for="adrcp">Adresse CP</label>
<input type="text" name="adrcp" />
<label for="adrv">Adresse VILLE: </label>
<input type="text" name="adrv" />
<input type="submit" value="Ajouter" class="clear" name="Ajouter" >
</form>
<br/>
<?php
// AJOUT D'UN OPERATEUR
$con=pdoconnect();
extract($_POST);
if ( isset($_POST['Ajouter'])
AND isset($_POST['NOMOP']) AND isset($_POST['EMAILOP']) AND isset($_POST['CONT1']) AND isset($_POST['CONT2'])
AND isset($_POST['CONT3'])AND isset($_POST['TELT']) AND isset($_POST['TELF'])
AND isset($_POST['adr1']) AND isset($_POST['adr2']) AND isset($_POST['adrcp']) AND isset($_POST['adrv'])
AND !empty($_POST['NOMOP']) AND !empty($_POST['EMAILOP']) AND !empty($_POST['CONT1']) AND !empty($_POST['CONT2'])
AND !empty($_POST['CONT3']) AND !empty($_POST['TELT']) AND !empty($_POST['TELF'])
AND !empty($_POST['adr1']) AND !empty($_POST['adr2']) AND !empty($_POST['adrcp']) AND !empty($_POST['adrv']) )
{
$req=$con->prepare('INSERT INTO operateur (NOM_OP, EMAIL_OP, CONTACT1, CONTACT2, CONTACT3, TEL_OP, FAX_OP)
VALUES(:NOMOP,:EMAILOP,:CONT1,:CONT2,:CONT3,:TELT,:TELF)')
or exit(print_r($con->errorInfo()));
$req->bindValue(':NOMOP',$_POST['NOMOP'],PDO::PARAM_STR);
$req->bindValue(':EMAILOP',$_POST['EMAILOP'],PDO::PARAM_STR);
$req->bindValue(':CONT1',$_POST['CONT1'],PDO::PARAM_STR);
$req->bindValue(':CONT2',$_POST['CONT2'],PDO::PARAM_STR);
$req->bindValue(':CONT3',$_POST['CONT3'],PDO::PARAM_STR);
$req->bindValue(':TELT',$_POST['TELT'],PDO::PARAM_STR);
$req->bindValue(':TELF',$_POST['TELF'],PDO::PARAM_STR);
$req->execute();
$lastid = $con->lastInsertId(); //recuperation de l'id de la table operateur dont je viens d'insérer les données
//Préparation de la requête pour insertion l'adresse
$req = $con->prepare('INSERT INTO adresse (ID_OP,ADR_LIGNE1,ADR_LIGNE2,ADR_CP,ADR_VILLE)
VALUES(:lastid, :adr1,:adr2,adrcp,adrv)');
//sachant que la table adresse en vrai (ID_ADR,ID_ABONNE,ID_OP,ADR_LIGNE1,ADR_LIGNE2,ADR_CP,ADR_VILLE) mais j en veux pas id abonne et je sais pas comment faire
$req->bindParam(':lastid', $lastid);
$req->bindParam(':adr1', $_POST['adr1']);
$req->bindParam(':adr2', $_POST['adr2']);
$req->bindParam(':adrcp', $_POST['adrcp']);
$req->bindParam(':adrv', $_POST['adrv']);
//exécution de la requête pour insertion du mot
$req->execute();
//print_r($con->errorInfo());
echo"L OPERATEUR : ".$_POST['NOMOP']." <b> à bien été ajouté, Veuillez réactualiser la page pour la voir svp </b>";
// Fermeture de la connexion
$req->closeCursor();
}
?>
</article>
<p> <a href="gestionop.php"> Retour au menu de gestion Principal des Opérateurs </a> </p>
</article>
</section>
</body>
</html>
RESULTAT MSG ERREUR comme quoi le nombre de param ne match pas
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in C:\wamp64\www\ALLAHYARAB\ajouter-op.php on line 73