pb d'insertion dans une table

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 mai 2005, 21:31

tu ne récupères qu'un seul champ ici, à savoir "nomutilisateur"

requête qui d'ailleurs ne sert à rien car tu fais :

Code : Tout sélectionner

sélectionner le nom de la personne dont le nom est "Durand"
ta requête te renverra... "Durand"

pour sélectionner deux champs :

Code : Tout sélectionner

SELECT champ1, champ2 FROM table
pour ta question précédente, si tu as un champ de type Date tu peux y mettre la date du jour en utilisant NOW()

Code : Tout sélectionner

INSERT INTO table (date) VALUES (NOW())
enfin : sais-tu exactement à quoi sert la fonction mysql_num_rows() ??

ricardo
Invité n'ayant pas de compte PHPfrance

14 mai 2005, 21:43

Elle retourne le nombre de lignes d'une requete non

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 mai 2005, 21:48

oui c'est ça

ok désolé, comme tu la mettais toujours dans tes exemples, j'avais l'impression que tu essayais de récupérer des valeurs avec :)

ricardo
Invité n'ayant pas de compte PHPfrance

14 mai 2005, 21:52

INSERT INTO table (date) VALUES (NOW())

est-ce que ca marche pour une insertion dans un champs de type date
(0000-00-00) ou faut-il faire une conversion

Comment faire ?

Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 mai 2005, 21:56

est-ce que tu lis ce que j'écris ??!!
pour ta question précédente, si tu as un champ de type Date tu peux y mettre la date du jour en utilisant NOW()

Code:
INSERT INTO table (date) VALUES (NOW())
sinon un moyen de savoir si ça marche ça peut aussi être d'essayer tout seul comme un grand

ricardo
Invité n'ayant pas de compte PHPfrance

14 mai 2005, 22:00

Desolé, ca marche pas
mysql_query("INSERT INTO annonce (choix, annonce, lieu, telephone, datesaisie, id_utilisateur)". 
     	 	 " VALUES ('$choix', '$annonce', '$lieu', '$telephone','(NOW())','$id_utilisateur') ") 
        	or die("Impossible d'insérer le résultat de l'annonce");
Voila

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 mai 2005, 22:03

il y a deux parenthèses de trop autour de NOW

si tu regardes bien dans ma requête il y en deux pour NOW(), et deux autour qui regroupent les valeurs

toi tu les as déjà
de plus, pas besoin de quotes car c'est une fonction mysql
ta requête serait plutôt :
mysql_query("INSERT INTO annonce (choix, annonce, lieu, telephone, datesaisie, id_utilisateur)".
               " VALUES ('$choix', '$annonce', '$lieu', '$telephone',NOW(),'$id_utilisateur') ")
            or die("Impossible d'insérer le résultat de l'annonce");
Voilà

ricardo
Invité n'ayant pas de compte PHPfrance

14 mai 2005, 22:08

Ok ca marche, dans ma table sous la forme 2005-05-14

Je vais devoir afficher cette date dans une autre page, pourrais je sous la forme 14/05/2005.


Merci

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 mai 2005, 22:10

pfffff je ne vais pas faire ton site étape par étape, cherche un peu !

quand tu récupéreras cette date, ça te donnera une chaine de caractère

ce que tu veux faire, c'est changer l'ordre des morceaux, et remplacer les "-" par des "/"
et miracle, PHP propose plein de fonction de manip de chaines

regarde donc celle là : explode()
ici => http://fr2.php.net/explode

tu dois pouvoir formater ta date en deux lignes :)

ricardo
Invité n'ayant pas de compte PHPfrance

14 mai 2005, 22:12

Desolé trouver entre temps
<? $date= datefr($val['datesaisie']);echo $date; ?>
Merci pour ton aide

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

14 mai 2005, 22:35

tu es sûr que c'est une fonction PHP ? où as-tu trouvé cette fonction ?

moi je ne la trouve pas dans la doc :? je pencherai plutôt pour une fonction dévelopée par quelqu'un, si tu l'appelles sans avoir le code de cette fonction, ça ne marchera pas

si tu as récupéré ce code poste le, ce sera plus sympa pour la personne qui tombera (peut-être) un jour sur cette page venant de Google par exemple et cherchant "formater une date SQL en français" ;)

Mammouth du PHP | 983 Messages

15 mai 2005, 00:20

Allez je vais etre sympa car je suis fatigué :wink:

<?php
function datefr($mysql_date){
   $tab = explode('-',$mysql_date);

   return $tab[2].'/'.$tab[1].'/'.$tab[0];
}

 $date= datefr($val['datesaisie']);echo $date; ?>

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 mai 2005, 00:25

effectivement, tu es très sympa :)

ricardo
Invité n'ayant pas de compte PHPfrance

15 mai 2005, 10:01

Oui c'est ca ?

ricardo
Invité n'ayant pas de compte PHPfrance

15 mai 2005, 10:18

$reponse="SELECT id FROM login WHERE nomutilisateur = '$nomutilisateur_ok'"; 
   			 $result=mysql_query($reponse); 
   			 list($id_utilisateur) = mysql_fetch_row($result);
			 //$valeur=mysql_fetch_array($result);
            $choix="SELECT * FROM annonce WHERE id_utilisateur = '$id_utilisateur'";
			$result=mysql_query($choix);
			while($val=mysql_fetch_array($result)) { ?>
			
	       
		   <p><table width="649" border="1" cellpadding="0" cellspacing="0" bordercolor="#990000">
          <tr>
		<td width="424"><div align="left">Date : 
		      <? $date= datefr($val['datesaisie']);echo $date; ?>
		      <br>
		      <? if($val['lieu']){ ?>
		      Lieu : <? echo $val['lieu']; ?><br>
		      <? } ?>
		     <br> Annonce saisie par <b><? echo $val['nomutilisateur']; ?></b><br>
  
		<? if($val['email']){ ?>
		  E-mail : <? echo $val['email']; ?></a></b></strong><br><? } ?>
  
		<? if($val['telephone']){ ?>
		  Téléphone : <? echo $val['telephone']; ?><br>
		  <? } ?>
		  <? if($val['annonce']){ ?>
		  <br> <? echo $val['annonce']; ?><br>
		  <? } ?>
  
		</div></td></tr>
Voila mon message d'erreur :
Notice: Undefined index: nomutilisateur in d:\easyphp1-8\www\pages seules\annonceespace.php on line 109

En effet le nom d'utilisateur appartient a ma table login alors que la j'effectue une requete sur ma table annonce. Comment récupérer "nomutilisateur" sachant que les deux tables sont liées par id_utilisateur ?

Merci