[php/sql] Aide enregistrement sur 2 base

Bonjour,
j'aimerais quelque infos y'a t'il une requete pour enregistrer sur 2 base a la fois

une table 1 genre :
id int(11)
pseudo varchar (80)
email varchar (100)

une 2eme table genre:
id int(11)
idpseudo int(11)
comment longtext
date int(20)

donc comment faire pour faire l'enregistrement dans la premiere et que lorsque que le pseudo publie un commentaire l'idpseudo de la deuxieme table corresponde a l'id de la table 1

Comment faire j'ai un tres grand besoin de votre aide?
Configuration: Windows Vista
Firefox 3.5.7

17 réponses

  1. marche po, j'ai deja essayer et sa me met 1 post sur toutes les news.
    1. j'ai un autre petit souci avec le SELECT COUNT pour afficher le nombre de commentaire publier pour chaque news moi sa m'affiche le nombre de commentaire pour toutes les news

      Comment faire?
      1. oki merci pour ton aide et tes conseils mais pour l'instant ce n'est qu'un brouillon quand ce seras au propre ce seras mieux et encore un grand merci
        1. sur post d'avant:
          $link = mysql_num_rows($sql4);
          un conseil dami choisit mieux tes noms de variables $link veut dire lien pour une varaible devant contenir le nombre d'enr c'est pas le top

          ensuite pourquoi $sql4 alors que jusque là tu utilisait $sql3 ?

          pour répondre à ta question:

          $sql2 = mysql_query("SELECT id, contenu, auteurn, date FROM news") OR DIE ("Probleme de requete listage: ".mysql_error());

          list($id, $contenu, $auteurn, $date) = mysql_fetch_array($sql2);


          normal que tu n'ai que la derniere tu ne fait pas de boucle

          pour n'avoir que celle dont l'id est passé par le lien:

          function comment($id){
          $id=$_GET[id''];//recup de l'id passé par le lien
          $sql2 = mysql_query("SELECT id, contenu, auteurn, date FROM news WHERE id='".$id."'") OR DIE ("Probleme de requete listage:  ".mysql_error());
          	
          	list($id, $contenu, $auteurn, $date) = mysql_fetch_array($sql2);
          }
          
          
          1. J'ai refait mon code :
            j'ai donc la partie fonction avec ceci:
            function index(){
            <a href=\"index.php?accueil=1&amp;op=comment&amp;id=" . $id . "\"><i>Commentaires</i></a>
            }
            
            qui fait donc appel a ceci:
            function comment($id){
            $sql2 = mysql_query("SELECT	id, contenu, auteurn, date FROM news") OR DIE ("Probleme de requete listage:  ".mysql_error());
            	
            	list($id, $contenu, $auteurn, $date) = mysql_fetch_array($sql2);
            }
            

            mais cela m'affiche que la premiere news.
            hors que id du depart est egale a 19
            quel est la requete exact pour faire appel a l'id 19 ou 18 etc...
            1. j'ai utilise cette partie comme suit
              $link = mysql_num_rows($sql4);
              echo "nbre d'enregistrement '".$link."'";

              et cela me donne 0

              qu'est ce qui va pas dans mon code?
              1. je n'ai pas le temps d'éplucher tout ton code mais:

                while(list($id, $contenu, $auteurn, $date, $id, $idnews, $comment, $pseudo, $cdate) = mysql_fetch_array tu as déja deux fois la même variable $id ça doit poser problème

                ensuite opur voir si ta requette trouve qq chose juste après la ligne :

                $sql3 = mysql_query(........

                mets echo "Nbr enregistrements trouves=" mysql_num_rows($sql3);
                1. je sais WHERE news.id = news_comment.idnews

                  si news.id = 19 affichage news_comment.idnews = 19 hors news comment.id peut etre de 1 a ~ sa importe peut mais le probleme est que l'affichage ne se fais aucunement ni la partie news.id = 19 ni le commentaire associer

                  Alors je suis un peut perdue la dessus je ne comprend pas trop ou est le probleme la-dedans
                  1. $sql3 = mysql_query("SELECT * FROM news LEFT JOIN news_comment ON news.id=news_comment.id WHERE news_comment.idnews
                    ")OR die("mysql error - listage de la news id");


                    lorsqu'il y a une condition WHERE il faut que ce soit égal comparé à qq chose

                    par exemple WHERE A=B hors toi tu as mis WHERE news_comment.idnews sans rien derrieère, pas de égal

                    ensuite mets une trace d'erreur plus explicite que OR die("mysql error - listage de la news id")

                    OR die("Pb de requette listage:  ".mysql_error())
                    1. je vous met le code avec les emplacement ou doit etre les requete:
                      la requete si dessous a été testé et ne fonctionne pas
                      $sql3 = mysql_query("SELECT * FROM news LEFT JOIN news_comment ON news.id=news_comment.id WHERE news_comment.idnews
                      ")OR die("mysql error - listage de la news id"); 
                      le list n'affiche rien
                      list($contenu, $auteurn, $date) = mysql_fetch_array($sql3);
                      	
                      			// On ouvre un tableau pour l'affichage
                      	echo "<table width=\"100%\" valign=\"top\">";
                      	
                      		//affichage du logo des news
                      	echo "<tr><td><img src=\"themes/images/center1.gif\" border=\"0\" alt=\"-- News --\"/></td></tr>";
                      	
                      		$nbCar = strlen($contenu);
                      		if($nbCar <= 150){
                      			echo "<tr><td style=\"background-image:url('/themes/images/news_center0.gif');background-repeat:no-repeat; border:1px; width:690px; height:70px;\">
                      			<center><font color=\"black\" style=\"font-family:Times New Roman;\"><br />".$contenu."</font></center>
                      			</td></tr>
                      			<tr><td style=\"background-image:url('/themes/images/center3.gif');background-repeat:no-repeat; width:690px; height:18px;\">
                      			<font color=\"black\"><small><b>Publiée par : </b><i>".$auteurn."</i>
                      			&nbsp;&nbsp;<b> le : </b><i>".date("d-m-Y",$date)."</i><b>
                      			&nbsp;à&nbsp</b><i>".date("H:i",$date)."</i></small></font></td></tr>
                      			<tr><td></td></tr>";
                      		}
                      		else if($nbCar <= 250){
                      			echo "<tr><td style=\"background-image:url('/themes/images/news_center1.gif');background-repeat:no-repeat; border:1px; width:690px; height:100px;\">
                      			<center><font color=\"black\" style=\"font-family:Times New Roman;\"><br />".$contenu."</font></center>
                      			</td></tr>
                      			<tr><td style=\"background-image:url('/themes/images/center3.gif');background-repeat:no-repeat; width:690px; height:18px;\">
                      			<font color=\"black\"><small><b>Publiée par : </b><i>".$auteurn."</i>
                      			&nbsp;&nbsp;<b> le : </b><i>".date("d-m-Y",$date)."</i><b>
                      			&nbsp;à&nbsp</b><i>".date("H:i",$date)."</i></small></font></td></tr>
                      			<tr><td></td></tr>";
                      		}
                      		else if($nbCar <= 450){
                      			echo "<tr><td style=\"background-image:url('/themes/images/news_center2.gif');background-repeat:no-repeat; border:1px; width:690px; height:150px;\">
                      			<center><font color=\"black\" style=\"font-family:Times New Roman;\"><br />".$contenu." </font></center>
                      			</td></tr>
                      			<tr><td style=\"background-image:url('/themes/images/center3.gif');background-repeat:no-repeat; width:690px; height:18px;\">
                      			<font color=\"black\"><small><b>Publiée par : </b><i>".$auteurn."</i>
                      			&nbsp;&nbsp;<b> le : </b><i>".date("d-m-Y",$date)."</i><b>
                      			&nbsp;à&nbsp</b><i>".date("H:i",$date)."</i></small></font></td></tr>
                      			<tr><td></td></tr>";
                      		}
                      		else{
                      			echo "<tr><td style=\"background-image:url('/themes/images/news_center3.gif');background-repeat:no-repeat; border:1px; width:690px; height:200px;\">
                      			<center><font color=\"black\" style=\"font-family:Times New Roman;\"><br />".$contenu." </font></center>
                      			</td></tr>
                      			<tr><td style=\"background-image:url('/themes/images/center3.gif');background-repeat:no-repeat; width:690px; height:18px;\">
                      			<font color=\"black\"><small><b>Publiée par : </b><i>".$auteurn."</i>
                      			&nbsp;&nbsp;<b> le : </b><i>".date("d-m-Y",$date)."</i><b>
                      			&nbsp;à&nbsp</b><i>".date("H:i",$date)."</i></small></font></td></tr>
                      			<tr><td></td></tr>";
                      		}
                      ici le listage des commentaires n'affcihe rien non plus	
                      while(list($id, $contenu, $auteurn, $date, $id, $idnews, $comment, $pseudo, $cdate) = mysql_fetch_array($sql3)){
                      	echo "<tr><td style=\"background-image:url('/themes/images/news_center1.gif');background-repeat:no-repeat; border:1px; width:690px; height:100px;\">
                      		<center><font color=\"black\" style=\"font-family:Times New Roman;\"><br />".$comment." </font></center>
                      		</td></tr>
                      		<tr><td style=\"background-image:url('/themes/images/center3.gif');background-repeat:no-repeat; width:690px; height:18px;\">
                      		<font color=\"black\"><small><b>Publiée par : </b><i>".$pseudo."</i>
                      		&nbsp;&nbsp;<b> le : </b><i>".date("d-m-Y",$cdate)."</i><b>
                      		&nbsp;à&nbsp</b><i>".date("H:i",$cdate)."</i></small></font></td></tr>
                      		<tr><td></td></tr>";
                      }
                      


                      Que dois-je faire pour que cela fonctionne réellement?
                      Aider moi je n'y arrive plus.
                      1. Sa marche pas j'ai essayer plein de truc.

                        Normalement sa doit faire par exemple:
                        Tu clic sur news id4 (commentaire = idnews 4) -> affichage de la news id4 + affichage commentaire de la news id4 -> en bas affichage des éléments pour poster un nouveau commentaire.

                        J'ai bien affichage de l'image de fond de la news, pas de commentaire associer et en bas les éléments pour poster un nouveaux commentaire.

                        Que dois-je faire? je but sur cette partit, j'ai essayer différentes chose sans y arriver.
                        Quelle serais, selon-vous, la meilleur façon d'afficher la news actuellement sélectionner + la liste des commentaires associer moi j'ai fais qu'un requête.
                        1. Contributeur
                          je ne sais pas si news.* ca va marcher, mais essaye et dis nous ce que ca donne :)
                          1. si je fais :
                            SELECT news.* FROM news LEFT JOIN news_comment ON news.id=news_comment.id WHERE news_comment.id
                            


                            est-ce juste?
                            le but de ceci est d'afficher pour chaque news des commentaires propres a chacune d'elles
                            j'utilise des fonction pour ceci pas de multi pages.

                            un lien commentaires quand on clic, cela affiche les news avec la possibilite dans poster un nouveaux.

                            en esperant que l'explication soit clair.

                            j'aimerais un petit coup de main la dessus.
                            Merci d'avance pour vos proposition
                            1. salut :)
                              si j'ai bien compris ton problème cette page devrait t'aider http://dev.mysql.com/doc/refman/5.0/fr/ansi-diff-foreign-keys.html