Avatar billede dingkee Nybegynder
24. maj 2006 - 10:56 Der er 17 kommentarer og
1 løsning

Ingen ID vælg første

Hej,

Hvordan laver jeg et script så hvis der ikke er nogen ID, så vælger den at vise den første post i tabellen??

Min kode ser sådan ud:

$sql3 = "SELECT * FROM miniCMS_nyheder WHERE id = '" . $id . "'";
$result3 = mysql_query($sql3) or die (mysql_error());
$nyhed = mysql_fetch_array($result3);
Avatar billede tdafoobar Nybegynder
24. maj 2006 - 10:58 #1
Hvor definere du $id ?
Avatar billede michael_stim Ekspert
24. maj 2006 - 10:59 #2
Du sørger for at brugeren vælger et id der eksisterer.
Avatar billede michael_stim Ekspert
24. maj 2006 - 11:03 #3
Ellers skal du ud i noget rod:

if(mysql_num_rows($result3)>0){
kode
}
else{
$sql3 = "SELECT * FROM miniCMS_nyheder WHERE id = '" . $id . "'+1";
}
osv
Avatar billede dingkee Nybegynder
24. maj 2006 - 11:04 #4
Jeg definere ikke nogen id, den går direkte ind på en side der hedder nyheder.php, og så skal den gerne vælge den første nyhed
Avatar billede michael_stim Ekspert
24. maj 2006 - 11:05 #5
Så brug limit
Avatar billede michael_stim Ekspert
24. maj 2006 - 11:06 #6
"SELECT * FROM miniCMS_nyheder LIMIT 1 ORDER BY id DESC";//Eller ASC
Avatar billede dingkee Nybegynder
24. maj 2006 - 11:07 #7
får jeg så ikke et problem hvis man vælger en anden nyhed som f.eks. har id = 10
Avatar billede tdafoobar Nybegynder
24. maj 2006 - 11:09 #8
Du sagde jo lige du ikke havde noget id defineret... Hele din kode fra nyheder.php , tak.
Avatar billede michael_stim Ekspert
24. maj 2006 - 11:10 #9
Når man kommer ind på siden kommer den nyeste nyhed, eller? Og når man er inde på siden, kan man så vælge andre? eller? Så laver man en if(isset(...//Hvis man trykker på en knap/link
Avatar billede dingkee Nybegynder
24. maj 2006 - 11:18 #10
Okai, prøver igen :)

Man kommer ind på nyheder.php, når man er der skal den vælge den første nyhed der ligger i databasen.
Inden på den side kan man også vælge andre nyheder, som defineres via id...

Håber det var lidt mere sigende
Avatar billede tdafoobar Nybegynder
24. maj 2006 - 11:21 #11
Er det ikke! Du har stadigvæk ikke fortalt hvor $id kommer fra. Er det et querstring argument som du henter fra $_GET ?
Avatar billede dingkee Nybegynder
24. maj 2006 - 11:24 #12
ID'en bliver hentet fra url...

altså f.eks. nyheder.php?id=10
Avatar billede tdafoobar Nybegynder
24. maj 2006 - 11:26 #13
ok.

$sql3 = "SELECT * FROM miniCMS_nyheder ORDER BY id DESC LIMIT 1";
if(isset($_GET['id']))
{
  $id = (int)$_GET['id'];
  $sql3 = "SELECT * FROM miniCMS_nyheder WHERE id = '" . $id . "'";
}
$result3 = mysql_query($sql3) or die (mysql_error());
$nyhed = mysql_fetch_array($result3);

Overstående burde gøre tricket.
Avatar billede coderdk Praktikant
24. maj 2006 - 11:41 #14
$sql3 = "SELECT * FROM miniCMS_nyheder" . ( isset( $_GET['id'] ) ? " WHERE id = " . intval( $_GET['id'] ) : '' ) . ' ORDER BY id DESC LIMIT 1';
$result3 = mysql_query($sql3) or die (mysql_error());
$nyhed = mysql_fetch_assoc($result3);

samme :)
Avatar billede coderdk Praktikant
24. maj 2006 - 11:41 #15
Ok, ok, min $sql3 linje ser ikke pæn ud! tdafoobar's er bedre ;)
Avatar billede tdafoobar Nybegynder
24. maj 2006 - 11:42 #16
coderdk kunne du i det mindste ikke bruge en variabel *cry*.

Overskuelighed er altså bedre :p desuden siger PEAR coding convension at vi højest må have linjelænger på 80 tegn.
Avatar billede dingkee Nybegynder
24. maj 2006 - 11:45 #17
tdafoobar >> Det virker sørme... 1000 tak... hvis du ligger et svar er der point på vej til dig ;)

Til alle jer andre, tak for hjælpen også...
Avatar billede tdafoobar Nybegynder
24. maj 2006 - 11:47 #18
*moooo*
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester