kroekkete Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 (endret) Hmmm... Sitter her i natten og prøver å finne ut følgende: (Dette er vel kanskje en gjenganger for noen her inne, men jeg lar det stå til...) Jeg har en tabell i MySQL med et felt som heter brukerindeks. Postene i dette feltet består av tall, som øker med én for hver gang en bruker registrerer en post i tabellen. Kort fortalt ser det slik ut: TABELL Navn Innhold Brukerindeks arne hei hei 1 siri javel 1 siri neivel 2 siri tralala 3 arne tamtara 2 Dette feltet bruker jeg til å lage neste/forrige muligheter. Når Siri er inne og ser på http://...php?brukerindeks=2 kan hun klikke på nesteknappen og se post nr 3, eller forrigeknappen og se sin post nr 1. Dette fungerer utmerket! -Helt inntil en post slettes. Da skjærer det fine opplegget mitt seg... Det jeg ser for meg at jeg må gjøre for å få det til å virke er følgende: Hente alle postene av brukerindeks som er knyttet til Siri Bruke array til å indeksere postene Finne ut hvilken index den gjeldende posten har (I tilfellet over skal jeg finne arrayindexen til ?brukerindeks=2) Når nesteknappen trykkes er det ikke (som i dag) verdien av $array[brukerindeks] som skal økes med én, men indexen. MEN, jeg vil jo ikke at det er det nye indexnummeret som skal sendes med $_GET når hun trykker på nesteknappen. Jeg må få tilbake brukerindeks-verdien til det nye indexnummeret, slik at det er det som sendes med $_GET... Er det noen her inne som forstår hvor jeg vil? Er jeg på bærtur med hvordan jeg ønsker å løse problemet? Er det noen som kan (gidder) hjelpe meg litt i gang? Jeg må innrømme at arrays er noe av det vanskeligste for meg når det gjelder PHP... Takk for at dette forumet finnes! Endret 1. juni 2004 av primaxx Lenke til kommentar
The Red Devil Skrevet 28. mai 2004 Del Skrevet 28. mai 2004 (endret) Ein while setning som finner det neste posten vil jo virke. I.e. du lager ein while setning, som sjekker først nummeret som er inkludert i urlen ($_GET['brukerindeks']) vist queryen du kjører returnerer eit tomt resultat, så finnes ikkje den posten lengre. Då legger du til ein på verdien ($variable++ og while setningen kjøres igjen dette skjer heilt til den enten finner neste post, eller at brukeren ikkje har meir poster. Eit raskt døme: (Er seint og er trøtt, vist du trenger meir info kan eg poste meir inngående i morgon kveld) $result = mysql_query(SELECT brukerindeks FROM database WHERE username='denne brukeren' ORDER BY brukerindeks DESC) //Finn det siste post nummeret til denne brukeren her $sistepost = //her legger du verdien fra sist query $brukerindex = verdien fra url; while (!isset($foundit)) { $result = mysql_query(SELECT * FROM database WHERE username='denne brukeren' && brukerindeks='$brukerindeks') //Se om du finner ein post med den brukerindexen $id = verdien fra queryen if (!empty($id)) { kjør resten av informasjonen du vil ha fra queryen her (ikkje vits å kjøre den før vist queryen er tom) $foundit = 1; break; } if ($brukerindex > $sistepost) { $errormsg = "du har ikkje meir poster"; $foundit = 1; break; } $brukerindex++; } Kjør resten av siden her Deretter legger du til det $brukerindex + 1 til "neste post" knappen. Husk at dette fungerer fint vist bruker går tilbake i postene og, bare skriv om while setningen slik at den tar av 1 kvar gang isteden for å legge til. Håper du forstår kva eg meiner Endret 28. mai 2004 av The Red Devil Lenke til kommentar
kroekkete Skrevet 28. mai 2004 Forfatter Del Skrevet 28. mai 2004 Fantastisk! :-) Da blir det lite søvn i natt også... Takk så lenge! Lenke til kommentar
kroekkete Skrevet 29. mai 2004 Forfatter Del Skrevet 29. mai 2004 (endret) SLETTET Endret 29. mai 2004 av primaxx Lenke til kommentar
The Red Devil Skrevet 29. mai 2004 Del Skrevet 29. mai 2004 Håper du fekk det til Lenke til kommentar
kroekkete Skrevet 29. mai 2004 Forfatter Del Skrevet 29. mai 2004 Jobber med det. -Kommer GARANTERT tilbake... Lenke til kommentar
kroekkete Skrevet 1. juni 2004 Forfatter Del Skrevet 1. juni 2004 Problemet er løst! Takk for all hjelp! For spesielt interesserte kan jeg jo fortelle hvordan jeg gjorde det til slutt: Filen viktigedetalj.php viser innholdet i en eller annen post i tabellen tab5, og her har jeg også neste (vis neste post i tabellen som denne respektive brukeren har registrert) og forrigeknapper, med hyperlenker som ser slik ut: <li><?php echo "<a href=http:/inter.net/viktigenestesql.php?brukerindeks=".$arr["brukerindeks"].">Neste</a>";?> </li> <li><?php echo "<a href=http://inter.net/viktigeforrigesql.php?brukerindeks=".$arr["brukerindeks"].">Forrige</a>";?> </li> Under vises eksemplet på viktigenestesql.php viktigeforrigesql.php er identisk, bortsett fra at den finner den laveste verdien i tabellen først, i stedet for den høyeste som her. I tillegg teller den selvfølgelig nedover. <?php session_start(); //Session-scriptet til SirIce (http://www.misinterpreted.net/indexarticlephp-1.htm) if ($_SESSION["login"] != "true"){ header("Location: http://inter.net/registrer.php"); $_SESSION["error"] = "<font color=red>Beklager...</font>"; exit; } $brukernavn=($_SESSION ['brukernavn']); include ("kobletilbase.php"); //Sjekk hva høyeste verdi av brukerindeks er $sql = "SELECT brukerindeks FROM tab5 WHERE brukernavn='{$_SESSION['brukernavn']}' ORDER BY brukerindeks desc LIMIT 1"; $sql_resultat = mysql_query($sql); while ($arr=mysql_fetch_array($sql_resultat)){ $hoyeste = ($arr['brukerindeks']); //Hvis GET-brukerindeksverdien er lavere enn høyeste i tabellen økes brukerindeks med 1 if ($_GET['brukerindeks'] < $hoyeste){ $buindeks = ($_GET['brukerindeks']); $nybuindeks = ($buindeks +1); $sql1 = "SELECT brukerindeks FROM tab5 WHERE brukernavn='{$_SESSION['brukernavn']}' AND brukerindeks=$nybuindeks LIMIT 1"; $sql_resultat1 = mysql_query($sql1); $ant_rekker = mysql_num_rows($sql_resultat1); //Denne sjekker om spørringen over returnerte noen post, og sender bruker tilbake til viktigedetalj.php med ny verdi på brukerindeks hvis ja if($ant_rekker > 0){ while ($arr=mysql_fetch_array($sql_resultat1)){ $bindeks= ($arr['brukerindeks']); header('Location: http://inter.net/viktigedetalj.php?brukerindeks='.$bindeks); } } //Hvis spørringen over ikke returnerte noen post kjøres denne siden på nytt. else { header('Location: http://inter.net/viktigenestesql.php?brukerindeks='.$nybuindeks); } } //Hvis siste post i tabellen er nådd får brukeren beskjed om det... else { header('Location: http://inter.net/viktigesiste.php?brukerindeks='.$hoyeste); } } ?> Jeg laget til slutt også to filer til, nemlig viktigesiste.php og viktigeforste.php Disse filene er identiske med viktigedetalj.php, med unntak av at de har fått tilleggstekst som informerer om at du ikke kan bla deg lenger bakover eller forover... 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å