Rigo Skrevet 17. februar 2012 Del Skrevet 17. februar 2012 (endret) Føler jeg har postet en del tråder her i det siste, men det får bare være. Jeg har så langt dette av koding. if (isset($_GET['id'])) { $id = intval($_GET['id']); $result = mysql_query("SELECT * FROM people WHERE side_id='1' AND id=$id LIMIT 5") or die ("Kunne ikke koble til databasen. " . mysql_error()); if(mysql_num_rows($result)==0) { echo '<META HTTP-EQUIV="Refresh" Content="0; URL=index.php">'; exit; } else { while ($row = mysql_fetch_assoc($result)) { echo "<div class=\"picture\">"; echo "<p>"; // Link $id = $_GET["id"]; echo "<a href='".($id+1)."'>"; echo "<img src=\"../uploads/" . $row['filename'] . "\" alt=\"\" />"; echo "</a>"; echo "</p>"; echo "</div>"; } } } Hvis du ser på delen som jeg har listet nedenfor så ser du at det er en link som legger til 1 "ID" når man trykker på den. Det jeg da ønsker er at den skal finne neste ID av seg selv, siden jeg får store hopp som f. eks fra 4 til 9. Grunnen til dette er at jeg viser kun innholdet for de "entriene" i databasen som har side ID 1. $id = $_GET["id"]; echo "<a href='".($id+1)."'>"; echo "<img src=\"../uploads/" . $row['filename'] . "\" alt=\"\" />"; echo "</a>"; Endret 17. februar 2012 av Rigo Lenke til kommentar
xibriz Skrevet 17. februar 2012 Del Skrevet 17. februar 2012 (endret) Jeg tror du må forklare litt mer om forholdet mellom "side_id" og "id" i tabellen.. Intuitivt vil jo "id" være unik, og du vil da bare få ut ett resultat med spørringen din... ? Endret 17. februar 2012 av xibriz Lenke til kommentar
Rigo Skrevet 17. februar 2012 Forfatter Del Skrevet 17. februar 2012 Altså, jeg har bildes navn lagret i en database, og hvert bilde har sin egen ID. Et par av disse bildene vil få en "side ID", som f. eks iPhone=1, og iPad=2. Dette har egentlig ikke mye med saken å gjøre, for spørsmålet mitt er egentlig hvordan jeg kan finne neste ID automatisk. Fordi akkurat nå har bilde 4, altså ID 4, side ID 1 og bilde 9, altså ID 9, side ID 1. Jeg ønsker å finne en måte å lage en link som finner ut av seg selv at neste ID er 9 når du er på 4. Lenke til kommentar
Tom_ Skrevet 17. februar 2012 Del Skrevet 17. februar 2012 Hvis du legger dette etter } else { i koden din så får du ut neste id. // Neste Bilde $result = mysql_query("SELECT id FROM people WHERE side_id='1' AND id>$id ORDER BY id ASC LIMIT 1") or die ("Kunne ikke koble til databasen. " . mysql_error()); // Denne linja trenger du ikke men den kan være fin senere til å finne siste bilde osv. $num = mysql_num_rows($result); $row = mysql_fetch_array($result); echo "ID for neste bilde: ".$row['id']; Håper det hjelper deg litt på vei Lenke til kommentar
Rigo Skrevet 17. februar 2012 Forfatter Del Skrevet 17. februar 2012 Nei, beklageligvis ikke. Kom meg ikke noe videre med det der, for problemet mitt er å finne neste ID automatisk. Akkurat nå så linker den kun til neste ID som er listet, noe som ikke funker fordi jeg har store hopp mellom ID'ene. Lenke til kommentar
Tom_ Skrevet 18. februar 2012 Del Skrevet 18. februar 2012 uff da. post hele koden slik den ser ut nå da, så skal vi nok løse problemet Lenke til kommentar
xibriz Skrevet 18. februar 2012 Del Skrevet 18. februar 2012 Tom_ har rett.. jeg har prøvd å sette sammen koden til deg... if (isset($_GET['id'])) { //Nåværende bildeID $id = intval($_GET['id']); // Neste Bilde $result = mysql_query("SELECT id FROM people WHERE side_id=1 AND id > $id ORDER BY id LIMIT 1") or die ("Kunne ikke koble til databasen. " . mysql_error()); // Denne linja trenger du ikke men den kan være fin senere til å finne siste bilde osv. $num = mysql_num_rows($result); $row = mysql_fetch_array($result); $nesteID = intval($row['id']); $result = mysql_query("SELECT * FROM people WHERE side_id = 1 AND id = $id LIMIT 5") or die ("Kunne ikke koble til databasen. " . mysql_error()); if(mysql_num_rows($result)==0) { echo '<META HTTP-EQUIV="Refresh" Content="0; URL=index.php">'; exit; } else { while ($row = mysql_fetch_assoc($result)) { echo "<div class=\"picture\">"; echo "<p>"; // Link echo "<a href='".($nesteID)."'>"; echo "<img src=\"../uploads/" . $row['filename'] . "\" alt=\"\" />"; echo "</a>"; echo "</p>"; echo "</div>"; } } } Lenke til kommentar
Rigo Skrevet 18. februar 2012 Forfatter Del Skrevet 18. februar 2012 (endret) Fjernet. Endret 27. februar 2012 av Rigo Lenke til kommentar
slacky Skrevet 18. februar 2012 Del Skrevet 18. februar 2012 (endret) En enkel sql-spørring burde gjør nok susen.. Hvor du da går frem simpelthen noe ala: >>> WHERE `id`>'{$id}' >>> ORDER BY `id` Da vil du hente ut nermeste, som er større en nåverende id.. Evt mindre <. Fungerer kansje: while ($row = mysql_fetch_assoc($result)) { echo "<div class=\"picture\">"; echo "<p>"; // Link $id = mysql_real_escape_string($row["id"]); $next = mysql_fetch_array(mysql_query("SELECT * FROM people WHERE `side_id`=1 AND `id`>'$id' ORDER BY `id` LIMIT 1")); echo "<a href='". $next['id'] ."'>"; echo "<img src=\"../uploads/" . $row['filename'] . "\" alt=\"\" />"; echo "</a>"; echo "</p>"; echo "</div>"; } Edit: Nå ser jeg at xibrix postet noe ligenende, har ikke hele lest koden hans. Men fremgangsmåten SKAL fungere. Endret 18. februar 2012 av warpie 1 Lenke til kommentar
Rigo Skrevet 18. februar 2012 Forfatter Del Skrevet 18. februar 2012 (endret) Fjernet. Endret 27. februar 2012 av Rigo Lenke til kommentar
Tom_ Skrevet 18. februar 2012 Del Skrevet 18. februar 2012 Det kan være en ide og bytte dette feltet fra ENUM til INT, da det kan gjøre ting lettere i fremtiden når du får lyst til å utvide kategoriene dine. ENUM feltet krever pre-definerte verdier mens INT feltet kan du utvide nesten ubegrenset. Lenke til kommentar
Icetears Skrevet 22. februar 2012 Del Skrevet 22. februar 2012 (endret) Hvorfor har du tatt META-koding med refresh for å gå tilbake til index ved tomt resultat? Er det ikke bedre å gjøre dette ved hjelp av header? if(mysql_num_rows($result)==0) { echo '<META HTTP-EQUIV="Refresh" Content="0; URL=index.php">'; exit; } else { med if(mysql_num_rows($result)==0) { header('Location: index.php'); exit; } else { Endret 22. februar 2012 av Icetears Lenke til kommentar
slacky Skrevet 22. februar 2012 Del Skrevet 22. februar 2012 (endret) Er da ingen problemer ved å bruke META REFRESH, sett bort i fra at det er en tregere funksjon... Men, som personen over meg nevner, så er header et bedre alternativ. Om du får en error alà "Header is already sent.." så er løsningen å bruke ob_start(); ob_end_flush(); om jeg husker rett. Se PHP.net for vidre info om disse. Evt. så kan du bruke js: <script type='text/javascript'> document.location.href='index.php' </script> Men, som nevnt META REFRESH fungerer bare fint for de fleste Endret 26. februar 2012 av warpie Lenke til kommentar
Rigo Skrevet 25. februar 2012 Forfatter Del Skrevet 25. februar 2012 Tenkte selv på å bruke header, men ender opp med en error så fort jeg legger den inn. Det er grunnen til at jeg bruker Meta. Er selv ikke fornøyd med hastigheten, ettersom siden først laster inn, og så redirigerer deg. Som sagt, koden nedenfor gir meg en feilmelding. if(mysql_num_rows($result)==0) { header('Location: index.php'); exit; } else { Koden nedenfor her funker fint, men skulle ønske at det var en måte å få header til å funke, siden det er ikke alle som har javascript på, og du vil da ikke bli redirigert. Fikk heller ikke noe ut av ob_start(); ob_end_flush(). <script type='text/javascript'> document.location.href='index.php' </script> Lenke til kommentar
Tom_ Skrevet 25. februar 2012 Del Skrevet 25. februar 2012 Hvilken error får du når du bruker header ? Lenke til kommentar
Rigo Skrevet 25. februar 2012 Forfatter Del Skrevet 25. februar 2012 (endret) Warning: Cannot modify header information - headers already sent by (output started at /..massetekst../header.php:9) in /..massetekst../index.php on line 11. Inkluderer 3 filer før jeg skal "outpute" headeren. Vet ikke om dette har noen betydning, men dette er linje 11 i index.php filen: header('Location: index.php'); Endret 25. februar 2012 av Rigo Lenke til kommentar
Tom_ Skrevet 25. februar 2012 Del Skrevet 25. februar 2012 header må alltid komme først Lenke til kommentar
Rigo Skrevet 25. februar 2012 Forfatter Del Skrevet 25. februar 2012 Vel, jeg "krever" en config fil, så hvor kan jeg da legge header koden? Jeg krever først config filen, så inkluderer jeg en header fil, så kommer koden dere har sett tidligere, så inkluderer jeg en footer. Hvordan kan jeg legge inn en header redirigering da? Lenke til kommentar
Tom_ Skrevet 26. februar 2012 Del Skrevet 26. februar 2012 Det kommer litt an på hva som er i config fila... http://no.php.net/manual/en/function.header.php Lenke til kommentar
slacky Skrevet 26. februar 2012 Del Skrevet 26. februar 2012 (endret) Løsningen fo headermodifisering er skrevet i en tidligere post.. Videre så annbefaler jeg deg igjen å ta en titt på php.net Du kan også bruke javascript (viser til tidligere post). Da slipper du å start/stoppe output buffering. ob_start(); /* ALL HTML (og annet etter behag) KODE MÅ INNENFOR HER, INK. HEADER (<head>) ETC.. */ ob_end_flush(); Endret 26. februar 2012 av warpie 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å