[php/sql] steeds 1 nummer omhoog (Opgelost)
shibble - 22/06/2007 02:21 (laatste wijziging 22/06/2007 02:25)
MySQL interesse
Hallo,
ik vraag me af hoe mensen dat doen,
vaak zie je op sites bij newsposts dan bij comments
#1
#2
#3
voor elke comment die gepost word.
oftewel degene die als eerste post krijgt
#1
de tweede
#2
en dan bij een nieuwe newspost en daar bij comments
begint ie dan weer bij #1
nu vraag ik me af hoe ze zoiets maken, aangezien je maar 1 keer auto_increment in een table kan gebruiken. iemand die me dat kan vertellen?
12 antwoorden
Gesponsorde links
vinTage - 22/06/2007 02:26 (laatste wijziging 22/06/2007 19:03)
Nieuw lid
Volgens mij, bij het uitlezen :
Voor de while , en bij elke reactie op dat artikel (in de while) ..
echo "#".i ;
echo //de rest van de reacties
echo //de rest van de reacties
edit @ mods, ja zet maar in code tags
Citaat:
Siliecom14's edit:
omdat jij het zo lief vroegÂ
shibble - 22/06/2007 02:34 (laatste wijziging 22/06/2007 02:35)
MySQL interesse
Hmm,
ok is ff aritkel over die lussen dingen zoeken:p
Dark_Paul - 22/06/2007 08:43
PHP ver gevorderde
Gooi dat gewoon in de while-lus waarmee je de reacties uitleest.
shibble - 22/06/2007 16:01
MySQL interesse
is daar ergens een artikel over?
Ibrahim - 22/06/2007 19:08
PHP expert
Wat artikel
Allereerst initialiseer je de i variabele:
Daarna moet je je gegevens ophalen. Daarna voer je de while uit:
<?php
// ophalen query
while( .... )
{
//weergeven data, je kunt dan dit doen voor het weergeven van de teller:
echo 'Comment #' . $i;
$i++;
}
<?php
// ophalen query
while ( .... )
{
//weergeven data, je kunt dan dit doen voor het weergeven van de teller:
$i ++;
}
zo
shibble - 22/06/2007 21:41 (laatste wijziging 22/06/2007 23:20)
MySQL interesse
Ik ben nu zover gekomen:
http://www.shib...p;newsid=1
Zoals je ziet bij de comments zie je dus
Comment #6 overal achter staan zie hier de code die ik gebruik:
<?php
$comments = $db->getquery('SELECT * FROM shibble_comments WHERE newsid = "'.$_GET['newsid'].'"');
while ($cSelect = mysql_fetch_array($comments))
{
$commentid = 1;
$commentid2 = $db->getRows($db->getquery('SELECT * FROM shibble_comments WHERE newsid = "'.$_GET['newsid'].'"'));
while ($commentid <= $commentid2)
{
$commentid++;
}
$tpl->newBlock('comments');
$tpl->assign(array(
'cid' => $cSelect['cid'],
'commentid' => $commentid,
'date' => $cSelect['date'],
'time' => $cSelect['time'],
'comment' => $func->ubb($cSelect['comment'])
));
$poster = $db->getquery('SELECT pid, username, country FROM shibble_profile WHERE pid = "'.$cSelect['poster'].'"');
while ($pSelect = mysql_fetch_array($poster))
{
$tpl->newBlock('cposter');
$tpl->assign(array(
'pid' => $pSelect['pid'],
'poster' => $pSelect['username'],
'flag' => $pSelect['country']
));
}
}
$tpl->gotoBlock('_ROOT');
?>
<?php
$comments = $db -> getquery ( 'SELECT * FROM shibble_comments WHERE newsid = "' . $_GET [ 'newsid' ] . '"' ) ;
{
$commentid = 1 ;
$commentid2 = $db -> getRows ( $db -> getquery ( 'SELECT * FROM shibble_comments WHERE newsid = "' . $_GET [ 'newsid' ] . '"' ) ) ;
while ( $commentid <= $commentid2 )
{
$commentid ++;
}
$tpl -> newBlock ( 'comments' ) ;
'cid' => $cSelect [ 'cid' ] ,
'commentid' => $commentid ,
'date' => $cSelect [ 'date' ] ,
'time' => $cSelect [ 'time' ] ,
'comment' => $func -> ubb ( $cSelect [ 'comment' ] )
) ) ;
$poster = $db -> getquery ( 'SELECT pid, username, country FROM shibble_profile WHERE pid = "' . $cSelect [ 'poster' ] . '"' ) ;
{
$tpl -> newBlock ( 'cposter' ) ;
'pid' => $pSelect [ 'pid' ] ,
'poster' => $pSelect [ 'username' ] ,
'flag' => $pSelect [ 'country' ]
) ) ;
}
}
$tpl -> gotoBlock ( '_ROOT' ) ;
?>
Ik gebruik TemplatePower
Stefan14 - 23/06/2007 01:04
PHP gevorderde
Waarom zou je er een functie van willen maken? Dit is 3 of 4 regeltjes code, dat moet je niet een functie zetten.
shibble - 23/06/2007 01:08 (laatste wijziging 23/06/2007 02:45)
MySQL interesse
Nja dat is waar maar het is opzig tog handig of is het niet slim?
want ik heb de mysql_query's enzo ook in functie's gezet
@siliecom14
Ik heb gedaan wat jij zij maar dan kloppen de Comment #1 etc etc wel,
maar dan is alle inhoud van de comments zelf de eerste comment die gepost is.
Deze gebruik ik nu:
http://nopaste.php-q.net/304051
Ultimatum - 23/06/2007 02:40
PHP expert
Zou moeten werken:
<?php
$i = 1;
$comments = $db->getquery('SELECT * FROM shibble_comments WHERE newsid = "'.$_GET['newsid'].'"');
while ($cSelect = mysql_fetch_array($comments))
{
$tpl->newBlock('comments');
$tpl->assign(array(
'cid' => $cSelect['cid'],
'commentid' => $i++,
'date' => $cSelect['date'],
'time' => $cSelect['time'],
'comment' => $func->ubb($cSelect['comment'])
));
$poster = $db->getquery('SELECT pid, username, country FROM shibble_profile WHERE pid = "'.$cSelect['poster'].'"');
while ($pSelect = mysql_fetch_array($poster))
{
$tpl->newBlock('cposter');
$tpl->assign(array(
'pid' => $pSelect['pid'],
'poster' => $pSelect['username'],
'flag' => $pSelect['country']
));
}
}
$tpl->gotoBlock('_ROOT');
?>
<?php
$i = 1 ;
$comments = $db -> getquery ( 'SELECT * FROM shibble_comments WHERE newsid = "' . $_GET [ 'newsid' ] . '"' ) ;
{
$tpl -> newBlock ( 'comments' ) ;
'cid' => $cSelect [ 'cid' ] ,
'commentid' => $i ++,
'date' => $cSelect [ 'date' ] ,
'time' => $cSelect [ 'time' ] ,
'comment' => $func -> ubb ( $cSelect [ 'comment' ] )
) ) ;
$poster = $db -> getquery ( 'SELECT pid, username, country FROM shibble_profile WHERE pid = "' . $cSelect [ 'poster' ] . '"' ) ;
{
$tpl -> newBlock ( 'cposter' ) ;
'pid' => $pSelect [ 'pid' ] ,
'poster' => $pSelect [ 'username' ] ,
'flag' => $pSelect [ 'country' ]
) ) ;
}
}
$tpl -> gotoBlock ( '_ROOT' ) ;
?>
En volg gewoon wat siliecom14 zegt want zo moeilijk is het niet
Gesponsorde links
Dit onderwerp is gesloten .