Prb incrémentation php et recuperer 2 tables dans 1 page

Résolu
dtbfefe Messages postés 12 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 4 juin 2005 - 31 mai 2005 à 22:24
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009 - 1 juin 2005 à 14:38
Bonjour ,j ai un gros soucis dans une incrémentation, enfin je pense que c'est le plus interressant pour ce dont je veux faire:

explications:

j ai réalisé une page de news , commentaires et dans celui ci je souhaiterais que chaque commentaires ait un numéro dans l'ordre.

Ayant 1 table news et 1 commentaires, tous les commentaires ont leur ID mais ne sont pas dans l'ordre suivant les news postés (ce qui est logique)

Pour exemple plus concret, la page commentaire se presente ainsi:
news blablabla lol
commentaires:
#1 fefe
blablabla
#2 fefe2
blablabla
etc...

J'ai mis ceci mais le prb qui que çà incrémente de 1 pour tous donc tous à #1
<?$a=0; ++$a; echo"$a" ; ?>

Help je galère trop.

PS: Peux t'on allez chercher le contenu de 2 tables dans une page avec les informations mélangers , style table news et table membres car j ai réalisés 2 sql_query l'un en dessous de l'autre puis un mysql_fetch_object pour les 2 mais je trouve celà trop lourd.

Merçi d'avance des réponses

19 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 13:23
$a = 0;
while($row_comment = mysql_fetch_object($comments_result)) {
?>
&nbsp;&nbsp;#<?php echo $a;?>
&nbsp;&nbsp;m.member_ID?>"><?=$row_comment->c_username?>&nbsp;&nbsp;<?=$row_comment->c_date?> - <?=$row_comment->c_time?>,

----

&nbsp;&nbsp;<?=ubb(nl2br(htmlentities($row_comment->c_body)))?>




<?php
$a ++;
}
3
FloThePro38640 Messages postés 63 Date d'inscription mercredi 3 novembre 2004 Statut Membre Dernière intervention 30 avril 2006
31 mai 2005 à 22:54
pour les numeros : tu creer une clé : int valeur 11 extra:auto increment et primaire(phpmyadmin) et l'autre je pense que non


---------------------------------------------------------------

FloThePro38
0
dtbfefe Messages postés 12 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 4 juin 2005
1 juin 2005 à 00:09
hum ,le problème est que j ai déjà créer un id commentaire

news
<!--c1-->
CODE,
----

<!--ec1-->
CREATE TABLE `news` (
`news_ID` smallint(6) NOT NULL auto_increment,
`categorie_ID` smallint(6) NOT NULL default '0',
`flag` varchar(50) NOT NULL default '',
`title` varchar(50) NOT NULL default '',
`postdate` varchar(10) NOT NULL default '',
`posttime` varchar(5) NOT NULL default '',
`body` text NOT NULL,
`link1` varchar(100) NOT NULL default '',
`username` varchar(50) NOT NULL default '',
KEY `news_ID` (`news_ID`)
) ENGINE= MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=8;
<!--c2-->
commentaires
<!--c1-->
<TABLE cellSpacing=1 cellPadding=3 width="95%" align=center border=0>

----, CODE </TD>
----

<!--ec1-->
CREATE TABLE `newscomments` (
`comment_ID` smallint(6) NOT NULL auto_increment,
`news_ID` smallint(6) NOT NULL default '0',
`postdate` varchar(10) NOT NULL default '',
`posttime` varchar(5) NOT NULL default '',
`body` text NOT NULL,
`username` varchar(50) NOT NULL default '',
KEY `comment_ID` (`comment_ID`)
) ENGINE =MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6

ca serait pour une incrementation mais tous mes commentairezs sont stoker dans une table commentaires, c la le prb</TD></TR></TBODY></TABLE>
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 09:26
Hello,



heu...il est ou ton probleme ?Elle est correcte pour ton utilisation, la structure de ta base.

Tu as ta primary key sur chaque table (id_news et id_commentaire), et
une foreign key dans la table commentaires, pointant sur la news dont
il depend. Tout va bien!

Ensuite, tu vas chercher tes news...et pour chaque news, tu vas
chercher les commentaires qui y sont associes. L'ordre, tu l'as
facilement avec un order by. Tu veux un chiffre devant ? Ben
l'increment devrait fonctionner...

Tu initialises a 1 avant la boucle pour recuperer les
commentaires pour chaque news, tu incrementes en fin de boucle. Et tu
affiches entre temps evidemment.



On peut aller chercher le contenu de 2 tables, oui, mais ca depend de
ce que tu veux faire exactement. 2 query completement distinctes, non.
Et puis ce serait un peu le bordel...si ces 2 tables ont une relation (
ou plusieurs), oui, evidemment.
0

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

Posez votre question
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 09:30
Quoique si, tu peux voir avec UNION.

Heu...





...



http://dev.mysql.com/doc/mysql/en/union.html



vla.
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
1 juin 2005 à 09:38
Salut,



tu as mis <?$a=0; ++$a; echo"$a" ; ?> ( viendrais tu du monde C/C++ pour faire un incrément avant )



fais plutoto



$a++

"They are 10 sorts of persons whose understand binary and whose not"
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 09:48
Ca change pas grandchose dans ce cas-ci.
Ca change si on reassigne la variable, oui, mais la...
0
dtbfefe Messages postés 12 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 4 juin 2005
1 juin 2005 à 11:02
Rebonjour, çà n'est pas tout à fait ce dont je cherchais, le problème est que tous les commentaires sont tous enregistrer dans la même table en incrementation, et que chaque news a ses commentaires mais incrementer au fur et a mesure de leur ajout.
Ce dont je voyais était d'y placer une incrementation sur la page de commentaire du chiffre 1 en créer tout d'abord une variable $a = 1 , de la pré-incrementer ++$a puis afficher l'incrémentation du chiffre par un echo variable , sans à avoir besoin de la BDD. J'avais trouvé sur le net en surfant le même principe en plus simple avec variable puis c'était $a+= ou autre que = et ca incrementer sur la page commentaire, quelqu'un a une idée (voir url pour ex)

Pour récupérer 2 tables, j'ai trouvé en fouillant un peu les valeurs LEFT JOIN et INNER JOIN pour ajout un contenu venant d'une 2eme table, efficace ??http://oufefe.free.fr/Image.jpg
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
1 juin 2005 à 11:05
j'ai valide un peu trop vite ma réponse, mais je m'etais apercus de sa non pertinence. Mais la flemme de re poster derriere

j'ai aussi l'impression qu'il initialise a chaque fois sa variable $a
donc il a toujours #1, si j'ai bien compris que son probleme était la





Cela dit le UNION ne marche qu'a partir de la version 4 de mysql je crois


"They are 10 sorts of persons whose understand binary and whose not"
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 11:56
Fais voir ton code, on y verra plus clair je pense :-)

Possible pour le Union oui, tu as quelle version...?
0
dtbfefe Messages postés 12 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 4 juin 2005
1 juin 2005 à 12:03
DTBFEFE a écrit:
Rebonjour, çà n'est pas tout à fait ce dont je cherchais, le problème est que tous les commentaires sont tous enregistrer dans la même table en incrementation, et que chaque news a ses commentaires mais incrementer au fur et a mesure de leur ajout.
Ce dont je voyais était d'y placer une incrementation sur la page de commentaire du chiffre 1 en créer tout d'abord une variable $a = 1 , de la pré-incrementer ++$a puis afficher l'incrémentation du chiffre par un echo variable , sans à avoir besoin de la BDD. J'avais trouvé sur le net en surfant le même principe en plus simple avec variable puis c'était $a+= ou autre que = et ca incrementer sur la page commentaire, quelqu'un a une idée (voir url pour ex)

Pour récupérer 2 tables, j'ai trouvé en fouillant un peu les valeurs LEFT JOIN et INNER JOIN pour ajout un contenu venant d'une 2eme table, efficace ??http://oufefe.free.fr/Image.jpg

SUITE:
En fait cela n'a rien à voir avec mon code , ce dont je souhaite et de pouvoir incrémenter en php la valeur 1 , qu'il s'incremente a chaque commentaire ajouter sans passer par la base de donnée , juste avoir ++1 .
Prenons une page vierge en affichant 1 dans un tableau et que dans le 2eme tableau il affiche 2 ainsi de suite , çà me semble simple mais je n'y arrives pas , help
0
dtbfefe Messages postés 12 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 4 juin 2005
1 juin 2005 à 12:11
Pour http://dev.mysql.com/doc/mysql/fr/union.html je viens de regarder, vu que j'utilise easyphp 1.8 en local , je vais tester mais le principe semble être le même que LEFT JOIN et INNER JOIN qui permettent aussi de récuperer du contenu dans une autre table , maintenant çà fait longtemps que j'ai pas utilisé LEFT et INNEr , faut que je regarde s'ils sont encore valide
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 12:12
Rien a voir avec ton code ?
Concernant l'incrementation, c'est du tres basique...en effet. Donc si tu ne t'en sors pas, c'est soit que tu shematises mal, soit que ton script est foireux. Donc, montre ton code, parce que la, c'est vraiment trop vague.
Sans code, perso, je te redonne la reponse que je t'ai deja donnee. Parce que la solution, vu tes explications, est la.
0
dtbfefe Messages postés 12 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 4 juin 2005
1 juin 2005 à 12:16
Ceci est le code news_comments.php
ligne 108 , l'incrémentation , à disponibilité plus haut la table commentaires,
merçi d'avance.

<?php


include("functions/db_connect.php");
include("functions/tables.php");


$sql_news_query = "SELECT n.news_ID AS n_id,
n.flag AS n_flag,
n.title AS n_title,
n.postdate AS n_date,
n.posttime AS n_time,
n.body AS n_body,
n.link1 AS n_link1,
n.username AS n_username,
cat.categorie_ID AS c_id,
cat.name AS c_name,
cat.logo AS c_logo

FROM $tblNews n


INNER JOIN $tblNewsCategories cat
ON cat.categorie_ID = n.categorie_ID

WHERE n.news_ID ='" . (int)$_GET['nid'] . "'";
$sql_users_query = "SELECT * FROM $tblUsers ";


$news_result = mysql_query($sql_news_query) or die(mysql_error());


while($row_news = mysql_fetch_object($news_result)) {
?>



&nbsp;&nbsp;n_flag?>"> <?=$row_news->n_title?>,

----

&nbsp;Par&nbsp;m.member_ID?>"><?=$row_news->n_username?> Posté le: <?=$row_news->n_date?> - <?=$row_news->n_time?>,

----

c_logo?>" width="150" height="80" alt="<?=$row_news->c_name?>" align="top">,
&nbsp;<?=ubb(nl2br($row_news->n_body))?>,

----

<?phpif($row_news->n_link1 "" || $row_news->n_link1 "http://") {
echo "";
} else {
echo "----
";
echo ", &nbsp;Source:

&nbsp;n_link1 . \"' target=\\"_blank\\">\" . $row_news->n_link1 .\"\";
}

echo \"\";
echo "
";
}



if(isset($_POST['post_comment'])) {
$insert_sql = "INSERT INTO $tblNewsComments (news_ID, postdate, posttime, body, username) VALUES (
'" . $_GET['nid'] . "',
'" . $_POST['postdate'] . "',
'" . $_POST['posttime'] . "',
'" . $_POST['body'] . "',
'" . $_POST['username'] . "')";
$insert_query = mysql_query($insert_sql) or die(mysql_error());
include("news_comments_redirect.php");
} else {



$sql_comments_query = "SELECT c.news_ID AS c_news_id,
c.comment_ID AS c_comment_id,
c.postdate AS c_date,
c.posttime AS c_time,
c.body AS c_body,
c.username AS c_username

FROM $tblNewsComments c

WHERE c.news_ID ='" . (int)$_GET['nid'] . "'

ORDER BY c.comment_ID";
$sql_users_query = "SELECT * FROM $tblUsers m ";


$comments_result = mysql_query($sql_comments_query) or die(mysql_error());


echo "
";
echo " &nbsp;Commentaires:
";



if(mysql_num_rows($comments_result) == "0") {
echo "Pas de commentaires...

";
} else {



while($row_comment = mysql_fetch_object($comments_result)) {
?>


&nbsp;&nbsp;#<?$a=0; ++$a; echo"$a" ;?>
&nbsp;&nbsp;m.member_ID?>"><?=$row_comment->c_username?>&nbsp;&nbsp;<?=$row_comment->c_date?> - <?=$row_comment->c_time?>,

----

&nbsp;&nbsp;<?=ubb(nl2br(htmlentities($row_comment->c_body)))?>




<?php
}
}



if(isset($_SESSION['login']) == "1") {



?>
<form action="" method="post" name="commentform">

,

----

BBCode est ON
HTML est OFF,
<textarea name="body" cols="30" rows="5" class="include"></textarea>,

----

" >
" >
" >,

----

,

</form>


<?php
} else {


echo "Vous devez être logué pour poster un commentaire!";
}


}
?>
0
dtbfefe Messages postés 12 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 4 juin 2005
1 juin 2005 à 13:30
Bon ben merçi beaucoup , çà marche impeccable, l'incrémentation fonctionne parfaiement et je vois ce que tu as fait,

initialisation variable $a a 0

echo $a ; à l'endroit ou l'incrémentation est effectué.

$a ++; incrémentation

Si j'ai bien compris .

je te remercie énormément .
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 13:49
Oui :-)
en fait :
$a = 0 avant ta boucle while qui va chercher tes resultats
echo $a la ou il le faut
$a ++ on incremente juste avant la fin de chaque iteration de ta boucle.

Je t'en prie :-)
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
1 juin 2005 à 14:06
C'est bien ce que je disais, mais bon c'est pas grave, le principal c'est que ca marche.



Mea culpa, j'aurais peut etre du mettre.



tu as mis <?$a=0; ++$a; echo"$a" ; ?> ( viendrais tu du monde C/C++ pour faire un incrément avant )



fais plutot



<?php echo $a++?> au lieu de $a++



Sinon, maintenant que je vois ton code, il est pas aux normes ( utilise
les
au lieu des
, de meme pour tes autres balise
non fermé genre input)

sinon mets un <?php a la place de <?, c'est plus portable



Sinon, c'est rare de voir des selects aussi propre



Bonne continuation


"They are 10 sorts of persons whose understand binary and whose not"
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
1 juin 2005 à 14:13
Garfield => lol, non, si j'avais mis ++ $a ca n'aurait rien change. J'ai mis $a++ par habitude, c'est tout.


Cela change quelquechose uniquement dans certains cas :


$a = 0;


$b = $a ++;


// $b 0...$a 1


$a =0;


$b = ++ $a;


// $b 1...$a 1

Dans notre cas, ca ne change rien. Il incremente $a dans tous les cas.
Pour le reste, c'est clair qu'il y aurait du menage a faire ;-)
0
cs_garfield90 Messages postés 388 Date d'inscription lundi 7 juillet 2003 Statut Webmaster Dernière intervention 10 février 2009
1 juin 2005 à 14:38
malalam =>



ce que je voulais dire n'est pas au niveau du ++$a ou $a++ (je connais
la différence, je ne savais pas que ca marchait avec PHP )



c 'est au niveau de l'initialisation qui été faite a chaque fois.



Mais on va pas pourrir le thread pour si peu

"They are 10 sorts of persons whose understand binary and whose not"
0
Rejoignez-nous