Insertion php
so
-
so -
so -
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();
?>
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:
- Insertion php
- Touche insertion clavier - Guide
- Insertion sommaire word - Guide
- Insertion filigrane word - Guide
- Insertion liste déroulante excel - Guide
- Insertion signature word - Guide
30 réponses
Bah en fait, moi, je les stocke au format 'aaaa-mm-jj' et après je me sers d'expressions regulieres pour les retrier et les afficher.
Je me suis toujours demerdé pour pas avoir à trier par date. Maintenant, je sais pas ce que tu veux faire...
Kalamit,
Amis motards, attention à la ligne blanche ! :@)
Je me suis toujours demerdé pour pas avoir à trier par date. Maintenant, je sais pas ce que tu veux faire...
Kalamit,
Amis motards, attention à la ligne blanche ! :@)
alors pour les dates, je conseille de stocker sous forme de temps unix en int.
Il s'agit du nombre de secondes depuis le 1er janvier 1970, etc (se referer au manuelle php).
Ensuite, on peut afficher la date dans le format qu'on veut avec date("d-m-Y", $date); ou $date est le champ date de ta table.
De plus, ca te permet de faire des calculs directement dans la bdd: Par ex des differences pour trouver le nombre de jours entre 2 dates. Et enfin, un format JJ-MM-AAAA ne peut meme pas etre classe par ordre chronologique...
Il s'agit du nombre de secondes depuis le 1er janvier 1970, etc (se referer au manuelle php).
Ensuite, on peut afficher la date dans le format qu'on veut avec date("d-m-Y", $date); ou $date est le champ date de ta table.
De plus, ca te permet de faire des calculs directement dans la bdd: Par ex des differences pour trouver le nombre de jours entre 2 dates. Et enfin, un format JJ-MM-AAAA ne peut meme pas etre classe par ordre chronologique...
et ben ta solution me parait la bonne mais qu'est ce que tu appelles "expressions régulieres"?? comment tu fais ???
et comment faire pour adapter tout ça à mon script ?
en voila des parties (php et html):
//la c'est la premiere date
<p align="right"><b><font color="#3333CC" face="Geneva, Arial, Helvetica, sans-serif" size="3">date du jour :</font>
<input type="text" name="date" value=" <?php
$date=date("d-m-Y");
echo "".$date."";
?>" size="10">
//et la seconde
<input type="text" name="datenvoi" size="10">
et entre ya du html ( mon formulaire )
en voila des parties (php et html):
//la c'est la premiere date
<p align="right"><b><font color="#3333CC" face="Geneva, Arial, Helvetica, sans-serif" size="3">date du jour :</font>
<input type="text" name="date" value=" <?php
$date=date("d-m-Y");
echo "".$date."";
?>" size="10">
//et la seconde
<input type="text" name="datenvoi" size="10">
et entre ya du html ( mon formulaire )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon, je vais reprendre mon post, vu que je n'ai pas ete tres clair (c peu de le dire).
Voila l'inconvinient de sauvegarder en format date de mysql (format YYYY-MM-DD ou YYYYMMDD).
aucune indication de l'heure, minute et seconde. Mais on peut l'etendre pour afficher YYYY-MM-DD HH:MM:SS cependant.
pour l'afficher dans un autre format (par ex, le jour de la semaine) il faut parser la chaine et le mettre dans un tableau par ex, puis la reafficher en passant par les functions mktime() et date();
de meme, pour faire un calcul sur le temps, il faut reformater la date.
Exemple concret:
la base me retourne '2003-02-24' ($date), je veux l'afficher en 'monday, 24th february 2003'. je dois faire :
$tab = explode("-", $date);// pour mettre les valeurs YYYY, MM et DD dans un tableau
$time = mktime(0,0,0, $tab[1], $tab[2], $tab[0]); // pour avoir le temps unix de $date
$date_formatee = date ("l, jS F Y", $time);
de meme, essaie de calculer le nombre de jours entre les 7 mars 2003 et le 28 novembre 2002
Ma solution consiste a entrer le temps unix a la place de YYYY-MM-DD ou autre:
tu l'obtiens avec la commande mktime(); en php.
Le champs mysql devra etre un int.
ainsi, dans mon ex precedent, j'aurais deja les resultats en mktime.( c'est a dire que la valeur retournee par la base est $time)
et il ne restera plus qu'a afficher le resultat dans le format qu'on souhaite.
de meme, pour calculer une difference de date, il suffit de faire simplement la difference, on a alors le nombre de seconde qui separe les 2 dates
et pour manipuler a l'interieur de la bdd, il existe toujours la fonction FROM_UNIXTIME() dans mysql.
Voila
... ouais, pas super clair .... :p
Voila l'inconvinient de sauvegarder en format date de mysql (format YYYY-MM-DD ou YYYYMMDD).
aucune indication de l'heure, minute et seconde. Mais on peut l'etendre pour afficher YYYY-MM-DD HH:MM:SS cependant.
pour l'afficher dans un autre format (par ex, le jour de la semaine) il faut parser la chaine et le mettre dans un tableau par ex, puis la reafficher en passant par les functions mktime() et date();
de meme, pour faire un calcul sur le temps, il faut reformater la date.
Exemple concret:
la base me retourne '2003-02-24' ($date), je veux l'afficher en 'monday, 24th february 2003'. je dois faire :
$tab = explode("-", $date);// pour mettre les valeurs YYYY, MM et DD dans un tableau
$time = mktime(0,0,0, $tab[1], $tab[2], $tab[0]); // pour avoir le temps unix de $date
$date_formatee = date ("l, jS F Y", $time);
de meme, essaie de calculer le nombre de jours entre les 7 mars 2003 et le 28 novembre 2002
Ma solution consiste a entrer le temps unix a la place de YYYY-MM-DD ou autre:
tu l'obtiens avec la commande mktime(); en php.
Le champs mysql devra etre un int.
ainsi, dans mon ex precedent, j'aurais deja les resultats en mktime.( c'est a dire que la valeur retournee par la base est $time)
et il ne restera plus qu'a afficher le resultat dans le format qu'on souhaite.
de meme, pour calculer une difference de date, il suffit de faire simplement la difference, on a alors le nombre de seconde qui separe les 2 dates
et pour manipuler a l'interieur de la bdd, il existe toujours la fonction FROM_UNIXTIME() dans mysql.
Voila
... ouais, pas super clair .... :p
bon, j'ai pas tout compris mais c'est pas tres grave.... comment faire pour seulement transformer AAAA-MM-JJ en JJ-MM-AAAA avec ta solution (parce que je ne veux pas calculer de différence entre une date et une autre )
ben je sais pas moi !!! j'y connais rien !!! le seule truc que je voudrais c'est laisser le format JJ-MM-AAAA pour l'utilisateur parce qu'il n'est pas forcement au courrant de tous les formats!
ben je sais pas moi !!! j'y connais rien !!!
Heu... Tu sais quand meme ou tu veux en venir, non ?
Tu veux que ce soit l'utilisateur qui saisisse une date au format JJ-MM-AAAA et le coller dans ta base ? Ou alors, mettre une date lu dans ta bdd au format JJ-MM-AAAA ?
Kalamit,
Amis motards, attention à la ligne blanche ! :@)
Heu... Tu sais quand meme ou tu veux en venir, non ?
Tu veux que ce soit l'utilisateur qui saisisse une date au format JJ-MM-AAAA et le coller dans ta base ? Ou alors, mettre une date lu dans ta bdd au format JJ-MM-AAAA ?
Kalamit,
Amis motards, attention à la ligne blanche ! :@)