Avatar billede Jonas Nybegynder
11. december 2007 - 11:19 Der er 11 kommentarer og
1 løsning

www.demo.dk/indhold.php?side=1 til www.demo.dk/test/ vha rewrite

Som min overskrift siger det, så har jeg lige nu en side hvor jeg henter indhold fra mysql via indhold.php?side=1 ,

Jeg vil gerne vha mod_rewrite lave således at stien ændres til www.demo.dk/test/

lige nu ser min .htaccess sådan ud. og jeg kan tilgå min side via www.demo.dk/side/1/

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)/(.*)/$ /side.php?$1=$2

Men hvordan får jeg 1 tallet ændret til at være overskriften på siden?
Avatar billede jakobdo Ekspert
11. december 2007 - 18:29 #1
Det kan du ikke via mod_rewrite
Du har ikke test stående nogen steder i /side/1
Avatar billede Jonas Nybegynder
11. december 2007 - 19:06 #2
Kan godt være jeg har gjort ting forkert, men hvordan gør de fx. på http://newz.dk/pas-paa-hvor-du-koeber-dine-julegaver ? går ud fra at indhold bliver dynamisk hentet ud fra en database. skal jeg så hente mine siderne ud fra et andet felt end id?.
eller er der et andet trick ?
Avatar billede jakobdo Ekspert
11. december 2007 - 19:22 #3
De kan jo have lavet en mod_rewrite der laver:

rewriterule (.*) /index.php?side=$1

Og så kan de have et felt der indeholder: pas-paa-hvor-du-koeber-dine-julegaver i deres database.
Avatar billede Jonas Nybegynder
11. december 2007 - 22:49 #4
jakobdo>> jeg har nu oprettet et felt som hedder url og skrevet Firmaprofil ind der,
" SELECT * FROM `indhold` WHERE `url` = Firmaprofil "
jeg får denne fejl. #1054 - Unknown column 'Firmaprofil' in 'where clause'
hva skal det sige ?

SELECT * FROM `indhold` WHERE `id` = 1
giver fint et resultat.
Avatar billede Jonas Nybegynder
11. december 2007 - 23:27 #5
sådan ser min kode desuden ud
$side_db = mysql_query("select *  from indhold where url = ".$_GET["side"])or die ("Der er sket en fejl. Fejl: ".mysql_error());

fejl #1054 kunne vist løses ved at sætte '' ind
SELECT * FROM `indhold` WHERE `url` = 'Firmaprofil' virker også fint.
men kan ikke helt få det sat ind i min kode 

$side_db = mysql_query("select *  from indhold where url = '".$_GET["side"]')or die ("Der er sket en fejl. Fejl: ".mysql_error());

Giver følgende fejl
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' Firmaprofil' at line 1
Avatar billede jakobdo Ekspert
12. december 2007 - 08:19 #6
Firmaprofil skal være med ' og ' omkring.
Avatar billede Jonas Nybegynder
12. december 2007 - 10:02 #7
ja det fandt jeg ud af, men hvordan får jeg det sat ind i linien

$side_db = mysql_query("select *  from indhold where url = ".$_GET["side"])or die ("Der er sket en fejl. Fejl: ".mysql_error());
Avatar billede jakobdo Ekspert
12. december 2007 - 11:28 #8
url = '".$_GET["side"] . "' LIMIT 1")or die ("Der er sket en fejl. Fejl:".mysql_error());
Avatar billede Jonas Nybegynder
12. december 2007 - 12:22 #9
Det virkede sørme... mange tak.

Er det fordi jeg får flere resultater ud ved .$_GET["side"] ? så der skal sættet et LIMIT ind ?

du må godt ligge et svar.
Avatar billede jakobdo Ekspert
12. december 2007 - 12:50 #10
Nej, det er fordi det du får fra: $_GET["side"] er en streng og strenge skal have "" eller '' omkring.
Avatar billede jakobdo Ekspert
12. december 2007 - 12:51 #11
Og svar!
Avatar billede jakobdo Ekspert
12. december 2007 - 14:26 #12
Takker for point.
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