[php/sql] Aide enregistrement sur 2 base

Fermé
Yuushi_Sato Messages postés 104 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 - 23 janv. 2010 à 19:44
Yuushi_Sato Messages postés 104 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 - 28 janv. 2010 à 05:28
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 mardi 13 octobre 2009 Statut Membre Dernière intervention 23 janvier 2010
23 janv. 2010 à 20:22
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
23 janv. 2010 à 22:10
je vais essayer sa merci
0
Yuushi_Sato Messages postés 104 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
23 janv. 2010 à 23:09
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
25 janv. 2010 à 01:47
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 jeudi 22 mars 2007 Statut Contributeur Dernière intervention 24 mars 2019 1 974
25 janv. 2010 à 06:47
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
25 janv. 2010 à 15:10
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
25 janv. 2010 à 18:12
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
25 janv. 2010 à 18:58
$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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
25 janv. 2010 à 19:34
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
25 janv. 2010 à 20:32
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
26 janv. 2010 à 18:41
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
26 janv. 2010 à 19:51
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
26 janv. 2010 à 20:46
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
27 janv. 2010 à 05:15
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 mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
27 janv. 2010 à 15:07
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 dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 janv. 2010 à 18:13
avec une condition WHERE id_new=$id

par exemple
0
Yuushi_Sato Messages postés 104 Date d'inscription mardi 1 décembre 2009 Statut Membre Dernière intervention 18 février 2021 1
28 janv. 2010 à 05:28
marche po, j'ai deja essayer et sa me met 1 post sur toutes les news.
0