vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Feilen var i min database, det var rettet nå. Men fikk ikke helt til koden alikevel Lenke til kommentar
molty Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Hvis vi tar det herfra, så har jeg gjort det om slikt: $userQuery = ''; foreach($friends as $a){ if(empty($userQuery)){ $userQuery.= "(post_bruker='$a' AND bruker='$a')"; } else{ $userQuery.=" OR (post_bruker='$a' AND bruker='$a')"; } } $select_post = mysql_query("SELECT * FROM poster WHERE $userQuery ORDER BY id DESC") or die(mysql_error()); while($show_feed = mysql_fetch_assoc($select_post)){ // ouputen her // Hvis du må hente brukerinfo, lag spørringen innenfor denne while loopen } Hvis du ser ekstra nøye har jeg lagt til "or die(mysql_error());" på spørringen din. Så siden du får den feilmeldingen din kan det hende at det er noe feil med spørringen som vi får vite ved or die mysql error. Legg merke til at jeg også har brukt assoc istedenfor array. Assoc syns jeg er rimelig å bruke framfor array fordi at med array får man ut slik som dette: $array[0] = 1 $array['id'] = 1 $array[1] = Heisann alle sammen $array['melding'] = Heisann alle sammen osv osv. Men ved assoc får man bare ut id melding osv og ikke muligheten til å bruke tallene. Molty 1 Lenke til kommentar
vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Jeg skal lese nøye igjennom og skal prøve det ut nå med en gang! Lenke til kommentar
vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Tusen takk molty! Det fungerer akkurat som jeg ønsket! Nå er det berre å lese gjennom dette slik at jeg forstår oppsettet ditt Lenke til kommentar
vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Men hvorfor må jeg egentlig ha if empty i den foreach delen? Lenke til kommentar
molty Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 For hvis variabelen ikke er tom starter den med OR, og da blir selve spørringen feil for den første som legges inn er bare vanlig uten noe and og or elle rnoe, men de neste som legges inn må være OR for å hente ut informasjonen Molty Lenke til kommentar
alfred97 Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Når jeg ser nærmere på Moltys løsning, får jeg inntrykk av at vi har tolket problemstillingen på omtrent samme måte, og egentlig har kommet frem til prinsipielt den samme løsningen. Eneste forskjellen ser ut til å være at vi velger forskjellig strategi for å fortelle databasen hvilke data vi vil ha ut. Ytelsesmessig tror jeg mitt forslag vil skalere noe bedre når antallet venner øker, da Moltys spørring fort kan vokse seg ganske lang, mens min spørring vil være den samme uansett antall venner som abonneres på. 1 Lenke til kommentar
vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Men jeg kan jo berre legge til en LIMIT? Da får jeg kun f.eks. 15 på siden? Lenke til kommentar
molty Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Når jeg ser nærmere på Moltys løsning, får jeg inntrykk av at vi har tolket problemstillingen på omtrent samme måte, og egentlig har kommet frem til prinsipielt den samme løsningen. Eneste forskjellen ser ut til å være at vi velger forskjellig strategi for å fortelle databasen hvilke data vi vil ha ut. Ytelsesmessig tror jeg mitt forslag vil skalere noe bedre når antallet venner øker, da Moltys spørring fort kan vokse seg ganske lang, mens min spørring vil være den samme uansett antall venner som abonneres på. Tolket det slik at han ønsket det, hehe. Men jeg kan jo berre legge til en LIMIT? Da får jeg kun f.eks. 15 på siden? Det er det bare å gjøre vet du Og hvis du ikke husker eller vet hvordan så er det å skrive ORDER BY id DESC LIMIT 15Du kan også lage sidetall ved å hente fra side 2 slik f.eks: ORDER BY id DESC LIMIT 15, 15 (hvis jeg husker riktig, hehe ) Molty Lenke til kommentar
vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Hehe, takker! Ja blir vel noe som LIMIT 15, 30 da? som side 2 og 30, 45 for 3 osv ? Lenke til kommentar
molty Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Det kan stemme bedre ja Molty Lenke til kommentar
alfred97 Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Jeg regnet med fra starten at det var meningen man skulle inn med en LIMIT-klausul på slutten ja - ellers ville spørringen returnert alle poster fra alle abonnerte venner. Over tid kan det fort bli forferdelig mye data. Men det jeg nevnte om skalering har ikke med det å gjøre - jeg snakket om spørringen som sendes inn til databasen, ikke datasettet som kommer tilbake. Moltys løsning vil gi en spørring som ser omtrent slik ut hvis du abonnerer på poster fra to venner: SELECT * FROM poster WHERE (post_bruker='2' AND bruker='1') OR (post_bruker='3' AND bruker='1') ORDER BY id DESC Abonnerer du på poster fra 20 venner, blir det noe sånt som dette: SELECT * FROM poster WHERE (post_bruker='2' AND bruker='1') OR (post_bruker='3' AND bruker='1') OR (post_bruker='4' AND bruker='1') OR (post_bruker='5' AND bruker='1') OR (post_bruker='6' AND bruker='1') OR (post_bruker='7' AND bruker='1') OR (post_bruker='8' AND bruker='1') OR (post_bruker='9' AND bruker='1') OR (post_bruker='10' AND bruker='1') OR (post_bruker='11' AND bruker='1') OR (post_bruker='12' AND bruker='1') OR (post_bruker='13' AND bruker='1') OR (post_bruker='14' AND bruker='1') OR (post_bruker='15' AND bruker='1') OR (post_bruker='16' AND bruker='1') OR (post_bruker='17' AND bruker='1') OR (post_bruker='18' AND bruker='1') OR (post_bruker='19' AND bruker='1') OR (post_bruker='20' AND bruker='1') OR (post_bruker='21' AND bruker='1') ORDER BY id DESC Abonnerer du på 200 venner, blir det... ja, det kan du jo selv tenke deg. Med min løsning blir spørringen som sagt den samme uansett antall. Lenke til kommentar
molty Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Jeg regnet med fra starten at det var meningen man skulle inn med en LIMIT-klausul på slutten ja - ellers ville spørringen returnert alle poster fra alle abonnerte venner. Over tid kan det fort bli forferdelig mye data. Men det jeg nevnte om skalering har ikke med det å gjøre - jeg snakket om spørringen som sendes inn til databasen, ikke datasettet som kommer tilbake. Moltys løsning vil gi en spørring som ser omtrent slik ut hvis du abonnerer på poster fra to venner: SELECT * FROM poster WHERE (post_bruker='2' AND bruker='1') OR (post_bruker='3' AND bruker='1') ORDER BY id DESC Abonnerer du på poster fra 20 venner, blir det noe sånt som dette: SELECT * FROM poster WHERE (post_bruker='2' AND bruker='1') OR (post_bruker='3' AND bruker='1') OR (post_bruker='4' AND bruker='1') OR (post_bruker='5' AND bruker='1') OR (post_bruker='6' AND bruker='1') OR (post_bruker='7' AND bruker='1') OR (post_bruker='8' AND bruker='1') OR (post_bruker='9' AND bruker='1') OR (post_bruker='10' AND bruker='1') OR (post_bruker='11' AND bruker='1') OR (post_bruker='12' AND bruker='1') OR (post_bruker='13' AND bruker='1') OR (post_bruker='14' AND bruker='1') OR (post_bruker='15' AND bruker='1') OR (post_bruker='16' AND bruker='1') OR (post_bruker='17' AND bruker='1') OR (post_bruker='18' AND bruker='1') OR (post_bruker='19' AND bruker='1') OR (post_bruker='20' AND bruker='1') OR (post_bruker='21' AND bruker='1') ORDER BY id DESC Abonnerer du på 200 venner, blir det... ja, det kan du jo selv tenke deg. Med min løsning blir spørringen som sagt den samme uansett antall. Det blir forresten likt på post_bruker og bruker, de skal være helt like (etter det vevo har skrevet i sin kode. Eneste forskjellen er vel kvaliteten eller ytelsen på spørringene. Hvilke som krever minst resurser og best optimalisert. Men forstod ikke helt om du mente at min ville hente ut mange flere jo flere man abonnerte på, men det gjør den altså ikke hvis du mente det. (Bare for å si få det klarert ^^) Molty Lenke til kommentar
vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Hmm, jeg fikk i hvertfall den metoden molty til å fungere kjempeflott! Det vel ikke gjøre så mye om jeg har 345 abonnenter liksom? Eller om noen har 14023 ? Tar det så lang tid da? :!: Lenke til kommentar
molty Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 Hmm, jeg fikk i hvertfall den metoden molty til å fungere kjempeflott! Det vel ikke gjøre så mye om jeg har 345 abonnenter liksom? Eller om noen har 14023 ? Tar det så lang tid da? :!: Har ikke erfart med så mye så det kan jeg ikke svare på. Men hvis det tar lang tid så vil jeg enten prøve å finne en bedre og mer optimalisert løsning enn det jeg har eller bedre server Molty Lenke til kommentar
vevo1992 Skrevet 2. februar 2012 Forfatter Del Skrevet 2. februar 2012 Hehe Jeg får prøve å se hvordan det går, takk for all hjelp! Lenke til kommentar
The Jackal Skrevet 2. februar 2012 Del Skrevet 2. februar 2012 første problemet du vil treffe på er sannsynligvis at queryen er for lang Det kan naturligvis stilles på, men på sikt er det alfred sin løsning du burde gå for. Lenke til kommentar
alfred97 Skrevet 3. februar 2012 Del Skrevet 3. februar 2012 Det blir forresten likt på post_bruker og bruker, de skal være helt like (etter det vevo har skrevet i sin kode. Ja ok, du har nok rett i det - men det gjør ingen forskjell for det poenget jeg forsøker å få frem. Men forstod ikke helt om du mente at min ville hente ut mange flere jo flere man abonnerte på, men det gjør den altså ikke hvis du mente det. (Bare for å si få det klarert ^^) Nei, det var ikke det jeg mente, og det var derfor jeg i en tidligere post presiserte at jeg snakket om selve spørringen som sendes inn til databasen, og IKKE resultatsettet som kommer tilbake derfra. Antallet poster som returneres, styrer man jo med en LIMIT-klausul uansett om man velger din eller min måte å bygge opp spørringen på. Lenke til kommentar
vevo1992 Skrevet 3. februar 2012 Forfatter Del Skrevet 3. februar 2012 (endret) Jeg gikk gjennom linken du la ut, jeg fant ikke ut så veldig mye. Har du et forslag på hva du mener? Jeg prøvde første eksempelet, men det funket ikke :/ Endret 3. februar 2012 av vevo1992 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å