TaklampeX Skrevet 23. mai 2010 Del Skrevet 23. mai 2010 (endret) Jeg ønsker meg en setning på siden min som sier "Vi har nå (id_1) medlemmer. Siste medlem var (navn_1)". Jeg vil altså ha nyeste verdien av id_1 og navn_1 fra tabell_1. Jeg er ganske grønn på å skrive mysql-script, så jeg håper noen her kan hjelpe meg i gang! Endret 23. mai 2010 av TaklampeX Lenke til kommentar
4588pkdkrikue5c Skrevet 23. mai 2010 Del Skrevet 23. mai 2010 Det er ikkje noko problem slik eg ser det.. Berre legg inn ei spørring som teller radene, og ta den høgaste verdien og print ut. Mange måter å gjere dette på sikkert, men eg hadde berre tatt ei spørring som printer ut ID fra høgast til lavast, for så å leggje til LIMIT 1 (berre eit resultat - det blir då den høgaste ID'en, altså siste medlem). Noko slik: $result = mysql_query("SELECT * FROM tabellnamn ORDER BY id DESC LIMIT 1"); // Desc gjer sorteringa feil veg. Altså nyaste til første. $antallbrukare = mysql_num_rows($result); //Berre skriv ut denne for antall brukare. while($row = mysql_fetch_array($result)) { $sistebrukar = $row['brukarnamn']; } echo "Me har no $antallbrukare medlemmer. Siste medlem var $sistebrukar"; Lenke til kommentar
TaklampeX Skrevet 23. mai 2010 Forfatter Del Skrevet 23. mai 2010 KONGE! Tusen takk! Viste det ikke var så mye som skulle til, men jeg klarer ikke skrive script fra bånn... Om jeg derimot får noe å starte med klarer jeg som regel å prøve og feile til det funker. $antallbrukare ga meg bare 1, sikkert fordi den teller etter limit 1. La til en $sistebrukarid = $row['id_1']; og det funka. Igjen, takk! Lenke til kommentar
4588pkdkrikue5c Skrevet 23. mai 2010 Del Skrevet 23. mai 2010 Berre hyggeleg du, kjekt å høyre at det fungerte! Mogleg det var ein feil der ja, eg prøvde det ikkje ut - berre skreiv slik eg tenkte det kunne vere enklast! Ikkje så vanskeleg å gjere slike elementære ting egentleg, berre ein tenkjer seg litt om. Sleit og litt med å skrive desse før, men har arbeida mykje med å berre hugse alt i hovudet. Kan vere greitt og nytte dømene på W3Schhols om ein gløymer noko. Lenke til kommentar
Jonas Skrevet 23. mai 2010 Del Skrevet 23. mai 2010 En primærnøkkel er ingen garanti for riktig rekkefølge i henhold til når en bruker ble registrert. Du vil sannsynligvis en gang allikevel vise når en bruker registrerte seg, så sorter heller etter en slik verdi. Til slutt spør jeg, steffenz og mange andre, hvorfor bruke while-løkker til å hente ut én rad? Lenke til kommentar
4588pkdkrikue5c Skrevet 24. mai 2010 Del Skrevet 24. mai 2010 Joda, du har eit poeng der. Eg tenkte ikkje så langt. Eit tidsstempel er sikkert betre å sortere etter.. Grunnen til at eg nytter while er berre fordi det er god praksis. Eg nytter alltid while, og det blir sjeldent berre ein ting eg henter ut. Derfor liker eg å berre nytte while slik at eg kan hente ut fleire ting. Eg har vanskeleg for å tro at stjel så mykje meir ressurser, sjølv om det er litt meir arbeid for meg å skrive. Lenke til kommentar
Jonas Skrevet 24. mai 2010 Del Skrevet 24. mai 2010 (endret) Wow, wow, wow. Hold on there, slick. God praksis? Jeg tror du trenger en liten lekse i hva god praksis egentlig betyr. En while-løkke signaliserer til en leser at det forventes eller at det i hvert fall finnes et potensiale for flere iterasjoner. For det første så finnes ikke dette, fordi SQLen er begrenset til én rad og for det andre så overskrives forrige verdier satt i eventuelle tidligere iterasjoner. Dette er ulogisk og forvirrende. På hvilken måte er det god praksis? Endret 24. mai 2010 av Jonas Lenke til kommentar
4588pkdkrikue5c Skrevet 24. mai 2010 Del Skrevet 24. mai 2010 For meg, fordi eg somregel kjem til å skrive ut fleire ting på sikt, og derfor lager eg berre ei while løkke så eg har den klar. Om det er god praksis eller ei er jo opp til kvar enkelt å bestemme. Eg har min måte, du har din. Eg er ikkje verdensmester i dette, men eg får ting til å fungere. Det er nok for meg. Kva som til ein kvar tid er heilt korrekt bryr eg meg ikkje så mykje om, berre det er sikkert nok. Lenke til kommentar
Jonas Skrevet 24. mai 2010 Del Skrevet 24. mai 2010 (endret) Hele innlegget ditt fremstår for meg bare som en gigantisk rasjonalisering av et tåpelig kode. Jeg har sett denne typen bruk av while-løkker så utrolig mange ganger her på forumet og det er virkelig bare amatørmessige. Dette har ingen verdens ingen ting om subjektiv mening å gjøre, det er simpelthen bare feil. Skal du hente du én rad, så skal det ikke forekomme noen løkke. Riktig måte følger. For meg, fordi eg somregel kjem til å skrive ut fleire ting på sikt, og derfor lager eg berre ei while løkke så eg har den klar. Koden kommer aldri til å iterere over noe annet enn én rad. Ikke en gang på "sikt". Om det er god praksis eller ei er jo opp til kvar enkelt å bestemme. God praksis i kodemiljøet er på ingen måte noe som bestemmes av hver enkelt. Det finnes klare regler og konvensjoner og eventuelle uenigheter er blant disse. Lest f.eks. agile manifesto? Selv et søk etter «programmering guidelines» på google gir deg treff som sier mer eller mindre akkurat det samme. Eg har min måte, du har din. Eg er ikkje verdensmester i dette, men eg får ting til å fungere. Det er nok for meg. Kva som til ein kvar tid er heilt korrekt bryr eg meg ikkje så mykje om, berre det er sikkert nok. Du påstår først at du praktiserer god kode, for så å innrømme at du ikke er verdensmester og at det at det fungerer er godt nok for deg, og at resten ikke betyr noe så lenge det er sikkert. Noe henger ikke helt på grep her. <?php $resource = mysql_query ( 'SELECT username FROM users ORDER BY time_registered DESC LIMIT 1' ); $last_user = mysql_fetch_assoc ( $resource ); echo "Nyeste medlem er {$last_user['username']}"; ?> Skal ellers nevnes at jeg definitivt ville opprettet modell-objekter og abstrahert bort hele prosessen med å finne siste registrerte bruker til et factory lag, men jeg tror ikke trådstarter er helt der ennå. Endret 24. mai 2010 av Jonas Lenke til kommentar
Crowly Skrevet 31. mai 2010 Del Skrevet 31. mai 2010 $result = mysql_query("SELECT * FROM tabellnamn ORDER BY <felt> DESC LIMIT 1"); $antallbrukare = mysql_num_rows($result); //Berre skriv ut denne for antall brukare. Siden det er brukt LIMIT 1 så vil $antallbrukere alltid være 1. Dette vil nok fungere mer som tiltenkt, men er kanskje ikke den mest effektive måten å gjøre det på. $result = mysql_query("SELECT * FROM tabellnamn ORDER BY <felt> DESC"); $antallbrukare = mysql_num_rows($result); $bruker= mysql_fetch_assoc($result); echo 'Siste medlem '.$bruker['felt_med_brukers_navn']; Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå