Vise nr nedover på en liste. PHP.!

En tråd i 'PHP, SQL og databaser' startet av Mr Vest, 23 Aug 2009.

  1. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    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? :)
     
  2. Yngve Larsen

    Yngve Larsen E-commerce ekspert

    Innlegg:
    635
    Tja, vis litt kode så kan sikkert noen hjelpe.
     
    Mr Vest liker dette.
  3. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    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>
    "
    ;
    }
    }
    ?>
     
  4. Thomas Pedersen

    Thomas Pedersen Pornogründer

    Innlegg:
    632
    set $i til 0 før loopen starter.
    i hver loop tar du $i++;
    også printer du $i; ved siden av hver bestilling.
     
    Tonny Kluften liker dette.
  5. Thomas Pedersen

    Thomas Pedersen Pornogründer

    Innlegg:
    632
    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>
    "
    ;
    }
    }
    ?> 
     
    Tonny Kluften og Mr Vest liker dette.
  6. Yngve Larsen

    Yngve Larsen E-commerce ekspert

    Innlegg:
    635
    Derfor skulle du poste litt kode, for å få svaret ;)
     
    Tonny Kluften liker dette.
  7. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    Herlig. Tusen hjertelig takk! Fungerer som en drøm.! :)
     
  8. david. Medlem

    Innlegg:
    102
  9. Thomas Pedersen

    Thomas Pedersen Pornogründer

    Innlegg:
    632
    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.
     
  10. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    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.
     
  11. Tonny Kluften

    Tonny Kluften Administrator

    Innlegg:
    15.969
    Det funker. Hvis noe ikke er bra kan du gjerne forklare hvorfor.
     
  12. olafmoriarty

    olafmoriarty Medlem

    Innlegg:
    751
    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 liker dette.
  13. Mr Vest

    Mr Vest Sjefen over alle sjefer!

    Innlegg:
    2.079
    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..)
     
  14. Bjørnar Gründer

    Innlegg:
    1.941
    <ol>
    <li>Tekst</li>
    </ol>

    ... vil gi deg nummerert liste.

    edit: ol = ordened list, ul = unordened list
     
    Tonny Kluften og Mr Vest liker dette.
  15. olafmoriarty

    olafmoriarty Medlem

    Innlegg:
    751
    <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.
     
    Tonny Kluften liker dette.

Del denne siden