Använda path istället för id PHP

Trädvy Permalänk
Medlem
Plats
lkpg
Registrerad
Mar 2008

Använda path istället för id PHP

Hej på er!

Har fått färdigt ett "nyhetsscript" och har en tabell som heter

pages

- id <- PRIMARY KEY
- title
- path
- body

som det är nu så länkar jag till en "singel" nyhet med:

page.php?id=1

Vill använda mig av fältet "path" istället på detta vis:

page.php?path=det_jag_sparat_i_path.

Detta för att sedan använda mod_rewrite för att gör om dom till:

page/det_jag_sparat_i_path

Har testat en del men får det inte att funka. Är det för att id är PRIMARY KEY? Hur löser jag detta?

har för sökt lite med

function page_title()
{
$path_id = $_GET['path'];
$result = mysql_query('SELECT title, path, id FROM pages WHERE path='.$path_id);
$row = mysql_fetch_array($result);

echo $row['title'];
}

Trädvy Permalänk
Medlem
Plats
Helsingborg
Registrerad
Okt 2004
Trädvy Permalänk
Medlem
Plats
63.3°, 18.6°
Registrerad
Aug 2004

Du bör behålla id, mycket snabbare och enklare för databasen att hitta.

Jag skulle ha gjort någonting såhär:

class Link { static $url = 'http://www.sweclockers.com/nyhet/'; static $url_separator = '-'; static $space = '_'; // Tar bort alla onödiga tecken static function title($string){ // Svenska. $table = array( 'Å' => 'a', 'å' => 'a', 'Ä' => 'a', 'ä' => 'a', 'Ö' => 'o', 'ö' => 'o', ); $title = strtr($string, $table); // Tar bort övriga tecken och tomrum. $title = preg_replace('/[^' . self::$space . 'a-z0-9\s]+/', '', strtolower($title)); $title = preg_replace('/[' . self::$space . '\s]+/', self::$space, $title); return trim($title, self::$space); } // Skapar en relativ href-länk static function href($id, $string = NULL){ return empty($string) ? $id : $id . self::$url_separator . self::title($string); } // Skapar en absolut href-länk static function ahref($id, $string = NULL){ return self::$url . self::href($id, $string); } // Skapar en färdig länk static function anchor($id, $title, $long_url = TRUE, $tooltip = FALSE){ // Ska det dyka upp en tooltip med titeln? $alt = $tooltip ? sprintf(' title="%s" ', $title) : ' '; $link = self::ahref($id, ($long_url ? $title : NULL)); return sprintf('<a href="%s"%s/>%s</a>', $link, $alt, $title); } } $id = 4321; $title1 = 'En lång titel (som inte vill ha) EN MASSA %¤£€, men behåller s1ffr0rn4'; print Link::anchor($id, $title1); print '<br />'; print Link::href($id, $title1); print '<hr />'; Link::$url = 'http://google.com/blog/'; $title2 = 'Den här texten kommer inte syns inte i adressfältet'; print Link::anchor($id, $title2, NULL); print '<br />'; print Link::ahref($id, NULL); $link1 = Link::href($id, $title1); print "<pre>\nFör att hitta artikeln '{$link1}' använd queryn:\n"; print 'SELECT * FROM pages WHERE id = ' . intval($link1);