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

Permalänk

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'];
}

Permalänk
Medlem
Permalänk
Medlem

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);