Insertion php

Fermé
so - 21 févr. 2003 à 09:30
 so - 24 févr. 2003 à 15:29
salut !

j'ai fait un script pour insérer des données dans ma bdmais ça ne veux pas le faire....
en fait, des la premiere requete, ça plente !!

<?php
//cnx à la bd
$bd = mysql_connect('localhost', 'login','mot de passe') or die ("erreur de connexion");
//séléction de la bd
mysql_select_db(courrier, $bd) or die("erreur de connexion à la base");

//verification des données
// if(empty($nomexp))
//{
// echo "Le nom de l'expéditeur n'est pas rempli ! ";
//}
//if (empty($objet) || empty($typecourrier))
//{
// echo "L'objet ou le type du courrier ne sont pas spécifiés ! ";
//}
//if(empty($datenvoi))
//{
// echo "La date d'envoi du courrier n'est pas spécifiée ! ";
//}
//if (empty($service))
//{
// echo " Le service n'est pas rempli ! ";
//}

// on récupere le no de l'expediteur
$query1 = "SELECT noexpediteur FROM expediteur WHERE nomexpediteur = '$nomexp', prenexpediteur = '$prenexp', steexpediteur = '$steexp', villeexpediteur = '$villexp'";
$result1 = mysql_query($query1) or die ("La requete a echoué ");
//on vérifie que l'expéditeur n'existe pas
if (mysql_num_rows($result1)==0) // si l'expediteur n'existe pas il faut l'insérer
{
$query2 = "INSERT INTO expediteur (noexpediteur, nomexpediteur, prenexpediteur, steexpediteur, activiteexp, villeexp) VALUES (NULL, '$nomexp', '$prenexp', '$steexp', '$activiteexp', '$villexp')";
$result2 = mysql_query($query2) or die ("L'insertion à échoué !");
$query3 = $query1;
$result3 = mysql_query($query3) or die ("La requete 3 a échoué");
$line = mysql_fetch_array($result3);
$numeroexp = $line[0];
}
else //sinon, on récupere son numéro
{
$line = mysql_fetch_array($result1);
$numeroexp = $line[0];
}


//on récupere le no du destinataire correspondant au nom (dans la table destinataire);
$query4= "SELECT * FROM destinataire WHERE nomdestinataire = '$nomdest'";
$result4 = mysql_query($query4) or die ("La requete 4 à échoué");
$linenodest = mysql_fetch_array($result4);
$nodest = $linenodest[0];

//on récupere le numéro du service (de la table service)
$query5 = "SELECT * FROM service WHERE libservice = '$service'";
$result5 = mysql_querry($query5) or die ("La requete 5 à échoué");
$linenoserv = mysql_fetch_array($result5);
$noserv = $linenoserv[0];

//on récupere le numéro du type de courrier (de la table type courrier)
$query6 = "SELECT * FROM typecourrier WHERE libtypecourrier = '$typecourrier'";
$result6 = mysql_query($query6) or die ("la requete 6 à échoué");
$linetypnocour = mysql_fetch_array($result6);
$notypcour = $linetypnocour[0];

//on insere les champs dans la table courrier
$query5 = "INSERT INTO courrier (nocourier, objetcourrier, chpsrqs, datenvoi, refnoexpediteur, refnotypcourrier, chpsrqs, datenvoi, confidentiel, ) VALUES (NULL, '".$objet."', '".$chpsrqs."', '".$detenvoi."', '".$numeroexp."', '".$numtypcour."')";
$result5 = mysql_query($query5) or die("La requete 5 à échouer");




mysql_close();
?>
A voir également:

30 réponses

Utilisateur anonyme
21 févr. 2003 à 09:46
ça plente !!

Désolé, je connais pas cette erreur. Par contre, si l'interpreteur te donnait une erreur bien explicite autre que "ca plante", ca nous aiderait vraiment à touver.

Kalamit,
Et ben crôôôôa, alors ? :@)
0
dsl pour les fautes d'orthographe !!!
en fait, j'ai ça
Champ 'activiteexp' inconnu dans field list
c'est en rapport avec cette requete :
$query2 = "INSERT INTO expediteur (noexpediteur, nomexpediteur, prenexpediteur, steexpediteur, activiteexp, villeexp) VALUES (NULL, '$nomexp', '$prenexp', '$steexp', '$activiteexp', '$villexp')";
$result2 = mysql_query($query2) or die ("L'insertion à échoué !");
0
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
21 févr. 2003 à 12:59
essaie ca:

$query1 = "SELECT noexpediteur FROM expediteur WHERE nomexpediteur = '$nomexp' and prenexpediteur = '$prenexp' and steexpediteur = '$steexp' and villeexpediteur = '$villexp'";
$result1 = mysql_query($query1) or die ("La requete a echoué ");
//on vérifie que l'expéditeur n'existe pas
if (mysql_num_rows($result1)==0) // si l'expediteur n'existe pas il faut l'insérer
{
$query2 = "INSERT INTO expediteur VALUES (NULL, '$nomexp', '$prenexp', '$steexp', '$activiteexp', '$villexp')";
$result2 = mysql_query($query2) or die ("L'insertion à échoué !");
$result1 = mysql_query($query3) or die ("La requete 3 a échoué");
}


//on récupere le no du destinataire correspondant au nom (dans la table destinataire);
$query4= "SELECT * FROM destinataire WHERE nomdestinataire = '$nomdest'";
$result4 = mysql_query($query4) or die ("La requete 4 à échoué");
$linenodest = mysql_fetch_array($result4);
$nodest = $linenodest[0];

//on récupere le numéro du service (de la table service)
$query5 = "SELECT * FROM service WHERE libservice = '$service'";
$result5 = mysql_querry($query5) or die ("La requete 5 à échoué");
$linenoserv = mysql_fetch_array($result5);
$noserv = $linenoserv[0];

//on récupere le numéro du type de courrier (de la table type courrier)
$query6 = "SELECT * FROM typecourrier WHERE libtypecourrier = '$typecourrier'";
$result6 = mysql_query($query6) or die ("la requete 6 à échoué");
$linetypnocour = mysql_fetch_array($result6);
$notypcour = $linetypnocour[0];

//on insere les champs dans la table courrier
$query5 = "INSERT INTO courrier VALUES (NULL, '".$objet."', '".$chpsrqs."', '".$detenvoi."', '".$numeroexp."', '".$numtypcour."')";
$result5 = mysql_query($query5) or die("La requete 5 à échouer");


le message d'erreur est tres explicite: le champ 'activiteexp' n'existe pas dans ta table.

ps:Tu fais bcp de requetes a mon gout....
0
Utilisateur anonyme
21 févr. 2003 à 13:11
Re-,
Si cela ne fonctionne toujours pas :
Fais un echo de la requete incriminée et copie/colle la dans phpmyadmin.
Il peut s'agir d'un champ mal orthographié. (Il faut respecter la casse sous les systeme UNIX).

Voili, voilou !

Kalamit,
Amis motards, attention à la ligne blanche ! :@)
0

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

Posez votre question
et qu'est ce que tu préconise pour faire moins de requetes? il faut bien que je récupere les numéro vue qu'on ne peut pas les saisir dans le formulaire...
0
Utilisateur anonyme
21 févr. 2003 à 14:00
Certes, y'a beaucoup de requetes, mais si elles sont necessaires...

Kalamit,
Amis motards, attention à la ligne blanche ! :@)
0
ça ne risque pas de marcher ça : {
$query2 = "INSERT INTO expediteur VALUES (NULL, '$nomexp', '$prenexp', '$steexp', '$activiteexp', '$villexp')";
$result2 = mysql_query($query2) or die ("L'insertion à échoué !");
$result1 = mysql_query($query3) or die ("La requete 3 a échoué"); <<-- tu fais appel a une requete qui n'existe pas vue que tu l'a fait sauté !!
}
0
Utilisateur anonyme
21 févr. 2003 à 14:54
Juste une question, a quoi ca te sert ca : $query3 = $query1; ??

Kalamit,
Amis motards, attention à la ligne blanche ! :@)
0
wiwimagique Messages postés 481 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 20 avril 2006 108
22 févr. 2003 à 03:22
desole, c moi qui ai saute la query 3 ( vue qu'elle ne servait pas apparemment) et j'ai oublie de corriger :p

Sinon, pour le nombre de requete, je m'affole quand il y en a plus de 3 dans un script. J'ai pas regarde la structure de ses tables ni la pertinence de ses requetes. c'etait juste une remarque comme ca, pour le fun :)
0
et ben pour afecter la requete 1 à la requete 3 ce qui évite de la refaire
0
Utilisateur anonyme
21 févr. 2003 à 15:53
Et bien sers toi directement de $query1 ! C'est pas plus cher et ca te fait une ligne de code en moins.

Kalamit,
Amis motards, attention à la ligne blanche ! :@)
0
si vous le dites chef !!! moije crayait bien faire !!! c'est à cause de ça que ça marché pas le reste ??
0
et ben j'ai toujours la meme erreur et je ne vois pas pourquoi :


Parse error: parse error in c:\program files\easyphp\www\suivi courrier\insertion.php on line 34


$query1 = "SELECT * FROM expediteur WHERE nomexpediteur = '$nomexp' AND prenexpediteur = '$prenexp' AND steexpediteur = '$steexp' AND villeexpediteur = '$villexp'";
$result1 = mysql_query($query1) or die (mysql_error());
0
c'est bon, j'ai trouvé mon erreur mais j'en ai une autre !
Fatal error: Call to undefined function: mysql_querry() in c:\program files\easyphp\www\suivi courrier\insertion.php on line 54

c'est sur cette requete :
//on récupere le numéro du service (de la table service)
$query5 = "SELECT * FROM service WHERE libservice = '$service'";
$result5 = mysql_querry($query5) or die ("La requete 5 à échoué");
$linenoserv = mysql_fetch_array($result5);
$noserv = $linenoserv[0];
0
mea culpa !!! j'ai rien dit !!!
0
j'ai encore un erreur : ma requete ne veux pas se faire :

//on récupere le numéro du type de courrier (de la table type courrier)
$query6 = "SELECT * FROM typecourrier WHERE typecourrier = '$typecourrier'";
$result6 = mysql_query($query6) or die ("la requete 6 à échoué");
$linetypnocour = mysql_fetch_array($result6);
$notypcour = $linetypnocour[0];

pourquoi ???
0
je suis arrivé à arrenger ma requete, mais elle ne fonctionne toujours pas, pourtant, je l'ai vérifier plusieurs fois !!!
qu'est-ce qui ne va pas la dedans ???


//on insere les champs dans la table courrier
$query6 = "INSERT INTO courrier (objetcourrier, refnoexpediteur, reftypcourrier, chpsrqs, datenvoi, confidentiel, refnodest, datereception) VALUES ('$objet', '$noexp', '$typecourrier', '$chpsrqs', '$detenvoi', '$confidentiel', '$nodest','$date')";
$result6 = mysql_query($query6) or die("La requete 6 a échoué ! ");

j'ai : la requete 6 a échoué !
0
est ce que ça peut etre à cause de la date parce que $date est au format 0000-00-00 ???
0
Utilisateur anonyme
21 févr. 2003 à 17:01
Ah ? Tu as essayé de faire un echo de ta requete et de la copie/collé dans phpmyadmin ?

Fais le ! Tu auras un message d'erreur plus clair.

Kalamit,
Amis motards, attention à la ligne blanche ! :@)
0
et bien j'ai ça :
MySQL a répondu: Champ 'reftypcourrier' inconnu dans field list
et pourtant reftypcourrier existe bien dans ma bd !!!
0
c'est bon, ça marche !!!!
par contre j'ai un pb de dates ... en fait, elles sont au format : AAAA-MM-JJ alors que je les rentre au format JJ-MM-AAAA comment faut faire pour le mettre au bon format ?
0
Utilisateur anonyme
24 févr. 2003 à 09:34
Salut !

http://www.phpfrance.com/tutorials/index.php?id=54

Kalamit,
Amis motards, attention à la ligne blanche ! :@)
0
et qu'est ce que tu me conseilles ???
0