Vise nr nedover på en liste. PHP.!

Mr Vest

Sjefen over alle sjefer!
Her sitter jeg litt fast, og jeg sitter også fast på hvordan jeg faktisk skal forklare hva jeg mener. Tenker jeg gir det et forsøk.:

Jeg har en slags "loop." loopen viser alle de forkjellige bestillinger jeg har fått inn i nettbutikken min. Jeg vil vite hvor mange bestillinger jeg har i kø. For og se dette vil jeg foran hver bestilling vise tall, 1, 2, 3 osv helt til siste bestilling.

Et annet eksempel kan være f.eks i kommentarer på en blogg. Da skal vi på noen Wordpress-themes kunne se tallene nedover på kommentarene. Kommentar 1, kommentar 2, kommentar 3 osv.

Hvordan kan jeg gjøre dette? Any ideas? :)
 

Mr Vest

Sjefen over alle sjefer!
Oisann, det tror jeg må være det kjappeste svaret jeg noen gang har sett her på WF, Yngve. :)

Ja, altså, litt kode skal bli, men jeg ser ikke helt hvordan den skal være nødvendig..

PHP:
<?
$_GET['members']=strip_tags($_GET['members']);
$_GET['members']=mysql_real_escape_string($_GET['members']);
$type="0";
$getmembers=mysql_query("select * from users where `admin`='$type'",$c);
if(mysql_num_rows($getmembers)==0)
{
print"<tr><td colspan=\"3\">Ingen brukere</td></tr>";
}
else
{
while($usr=mysql_fetch_array($getmembers))
{
print"
<tr $color>
<td align=\"left\">Her vil jeg vise tall</td>
<td align=\"left\">navn</td>
<td align=\"left\">epost</td>
<td align=\"right\">blabla</td>
<td align=\"right\">blablabla</td>
</tr>
";
}
}
?>
 

Nextri

Rebel
PHP:
<?
$_GET['members']=strip_tags($_GET['members']);
$_GET['members']=mysql_real_escape_string($_GET['members']);
$type="0";
$getmembers=mysql_query("select * from users where `admin`='$type'",$c);
if(mysql_num_rows($getmembers)==0)
{
print"<tr><td colspan=\"3\">Ingen brukere</td></tr>";
}
else
{
$i = 0;
while($usr=mysql_fetch_array($getmembers))
{ $i++;
print"
<tr $color>
<td align=\"left\">$i</td>
<td align=\"left\">navn</td>
<td align=\"left\">epost</td>
<td align=\"right\">blabla</td>
<td align=\"right\">blablabla</td>
</tr>
";
}
}
?>
 

Nextri

Rebel
select * from <-- ikke bra

Kommer ann på hvor viktig det er at ting skal gå fortest mulig. Bedre å oppgi hvert felt, men ikke enormt viktig hvis dette er for å liste bestillinger, i et admin system, og han trenger å vise alle feltene.
 

Mr Vest

Sjefen over alle sjefer!
Ikke for og være frekk med deg david., men veldig mye av det jeg leser fra deg i forumet her er kommentarer på at ting ikke er bra, mens løsninger og forklaringer på hvorfor forteller du lite av. Om du prater i gåter syns jeg det er litt tåpelig at du nevner sakene. At du er dyktig i PHP er en ting, men det betyr ikke at alle rundt deg er like dyktig.

En annen måte og si det samme på, hvorfor er ikke * from bra?

Hos meg blir dette brukt i et adminpanel. Om ting går fort eller sakte spiller en forholdsvis liten trille.
 
Det funker som en drøm inntil databasen blir for stor og omfattende. Selv har jeg alltid i utgangspunktet brukt select * til det aller meste, men har du en database som vokser og vokser vil det etter hvert bli en stor og krevende funksjon. Grunnen til at jeg begynte å spesifisere kolonner og ikke utelukkende bruker * i dag, var at enkelte sider etter hvert rett og slett sluttet å virke. Ytelsesbehovet ble så voldsomt at jeg fikk timeout før resultatet var klart, og da var det nødvendig å bytte. Fortsatt bruker jeg * til det meste, men det er fordi jeg ikke gidder å gå tilbake og redigere scriptet mitt der det ikke er absolutt nødvendig. Jeg kommer absolutt til å slutte med det, for ting går utrolig mye raskere når man gjør det litt annerledes.

Men selvsagt: Det funker. Så lenge man har databasen noenlunde under kontroll og den ikke vokser ut av proporsjoner, vil det sannsynligvis være helt uproblematisk å bruke * i 90 % av tilfellene. Som alt annet varierer det fra situasjon til situasjon.
 

Mr Vest

Sjefen over alle sjefer!
Som omtrent alltid, god info olafmoriarty.! :)

Det var jo godt og vite at det ikke kunne ødelegge noe ved og bruke denne da, og at den egentlig bare og og bytte dersom ting skulle gå forholdsvis treigt.

Jeg husker jeg snubla over en CSS-sak som faktisk viste tall nedover slik som dette på <li>-tagger. Kan det ha vært list-style-type:numeric; ,? som gav meg faktisk akkurat samme resultat? (eller.. ikke akkurat samme resultat, men tall nedover da..)
 
<ol>, ja. I mange tilfeller vil jeg si at <ol> er det klart beste alternativet å bruke her. Men trenger man å gjøre noe mer fancy med tallene enn å bare liste dem opp, byr det på problemer. Av og til trenger man å starte på et annet tall enn 1 (ja, <ol> har start-attributten, men den er deprecated og man har foreløpig ikke fått et alternativ i CSS). Av og til trenger man å putte disse dataene i en tabell. Av og til ønsker man å bryte i rekkefølgen og ha mulighet til å bruke andre tall enn autonummer (eksempel: jeg lager av og til topplister -- da er det veldig greit å hente ut info fra databasen og liste det opp i synkende rekkefølge etter poeng slik at man får 1, 2, 3, 4, 5 [...]. Men dersom tredje- og fjerdeplass har nøyaktig like mange poeng, kan det være svært praktisk å fikse dette med PHP slik at det står 1, 2, 3, 3, 5 [...] istedetfor).

Trenger man bare å liste opp ting i numerisk rekkefølge, er <ol> den taggen man bør bruke. Men skal man trikse litt ekstra, er det like greit å gjøre det i PHP først som sist.
 
Topp