[php/sql] Aide enregistrement sur 2 base

Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   -  
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   -
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?
A voir également:

17 réponses

DocPB Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   1
 
je vais essayer sa merci
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   1
 
besoin de votre aide merci
0

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

Posez votre question
graffx Messages postés 6506 Date d'inscription   Statut Contributeur Dernière intervention   1 975
 
je ne sais pas si news.* ca va marcher, mais essaye et dis nous ce que ca donne :)
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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.
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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.
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
$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())
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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);
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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?
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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...
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
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);
}

0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   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?
0
Alain_42 Messages postés 5361 Date d'inscription   Statut Membre Dernière intervention   894
 
avec une condition WHERE id_new=$id

par exemple
0
Yuushi_Sato Messages postés 104 Date d'inscription   Statut Membre Dernière intervention   1
 
marche po, j'ai deja essayer et sa me met 1 post sur toutes les news.
0