07. juli 2010 - 18:34Der er
20 kommentarer og 1 løsning
Hej har et lille problem, et lille cms jeg er ved at lave, men kan ikke få min content til at vise fra den første id i databasen.
Hej eksperter.dk
har et lille problem, et lille cms jeg er ved at lave, men kan ikke få min content til at vise fra den første id i databasen. Den viser kun fra id 1, og mine id er lavet således: $id = rand(100,9999);
Så den starter jo ikke fra id 1.
Kan man gøre sådan at den finder det første id i mysqlen og måske tager det, eller har i nogle bedre ideér...
<?php $id = "1"; $side = (isset($_GET['side'])) ? $_GET['side'] : "$id"; $sql = mysql_query("SELECT `navn`, `indhold` FROM `icms_indhold` WHERE id='$side'"); //while løkke til at hente ud fra vores kilde($TilWhile) : while ($row = mysql_fetch_array($sql)){ echo "$row[indhold]"; } ?>
I spørger bare hvis der er noget i mangler forklaring på... Håber i kan hjælpe mig... :))
if(isset($_GET['side']) && is_numeric($_GET['side'])){ $query = "SELECT navn, indhold FROM icms_indhold WHERE id='".$_GET['id']."'"; }else{ $query = "SELECT navn, indhold FROM icms_indhold ORDER BY id ASC LIMIT 1"; } $sql = mysql_query($query) or die(mysql_error()); while ($row = mysql_fetch_array($sql)){ echo $row['indhold']; }
hvis $_GET['side'] er sat OG er nummerisk (bare for at tjekke der ikke er hacks i ;) ) finder den data for denne id, eller tager den den første i databasen, uanset om det er 1, 2 eller 17 der er det laveste id...
Må jeg spørge, hvad pointen i at du har tilfældige id'er i din database? Det virker ikke praktisk. Især fordi du hvergang du opretter en side, skal kontrollere om id'et ikke allerede eksisterer i databasen.
Synes godt om
Slettet bruger
08. juli 2010 - 08:36#4
Ja, men hvad mener du så er bedst.. istedet for tilfældige id'er..
Synes godt om
Slettet bruger
08. juli 2010 - 08:42#5
men splazz, det eksempel tager jo bare det id med det laveste nummer. Kan man ikke lave det på en anden måde..
Og det er jo ikke sikkert forside har det laveste id, da det er randome id'er. De ændres sig jo hele tiden.
Jeg ved ikke hvordan man ellers laver sådan noget, det kan være du wanze ved noget om det måske...
Min navigation ser således ud:
<ul> <?php // først skal vi lave kilden til at hente ud: $icms_navigation = mysql_query("SELECT `navn`, `titlen`, `url` FROM `icms_navigation`"); //while løkke til at hente ud fra vores kilde($TilWhile) : while ($row = mysql_fetch_array($icms_navigation)){ echo "<li><a href='$row[url]' title='$row[title]'>".ucfirst($row[navn])."</a></li>"; } ?> </ul>
Synes godt om
Slettet bruger
08. juli 2010 - 08:49#6
Jeg tror det her var bedre,
<?php if(isset($_GET['side']) && is_numeric($_GET['side'])){ $query = "SELECT navn, indhold FROM icms_indhold WHERE id='".$_GET['side']."'"; }else{ $query = "SELECT navn, indhold FROM icms_indhold LIMIT 1"; } $sql = mysql_query($query) or die(mysql_error()); while ($row = mysql_fetch_array($sql)){ echo $row['indhold']; } ?>
Ja, men det skal være sådan at når de vil oprette en ny side, så skal de ikke skrive url ind: index.php?side=1 det er det jeg har lavet med randome id nummer, at den selv skriver url ind.. hvis du forstår... men ved ikke hvordan jeg ellers skal gøre det..
Synes godt om
Slettet bruger
08. juli 2010 - 09:12#9
Men tak for det eksempel du kom med... Men har du en ide til hvordan jeg ellers kan lave det på med de id'er...
brug funktionen autoincrement på dit id-felt i databasen, og lad være med at angive det når du opretter en post, så laver den selv et id der hedder det højeste id i tabellen +1...
Synes godt om
Slettet bruger
08. juli 2010 - 10:39#11
Og husk lige at "vaske" brugerinputtet, inden du bruger det i select-sætningen, f.eks:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.