Autor Zpráva
Jan
Profil
Začal sem optimalizovat můj e-shop pro SEO ,
vše co potřebuji mám hotovo, bohužel nevím jak zapsat proměnou do závorky viz zde :
<?	function seo_url ($title){ 
    
    $pd_name_seo = $title;  
      
    // nahradi znaky s diakritikou na znaky bez diakritiky  
    $pd_name_seo = StrTr ($pd_name_seo, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz-");  
  
    // prevede vsechna velka pismena na mala  
    $pd_name_seo = strtolower ($pd_name_seo);   
  
    // nahradi pomlckou vsechny znanky, ktera nejsou pismena  
    $re = "/[^[:alpha:][:digit:]]/";  
    $replacement = "-";  
    $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo);  
  
    // odstrani ze zacatku a z konce <b style="color:black;background-color:#99ff99">retezce</b> pomlcky  
    $pd_name_seo = trim ($pd_name_seo, "-");  
  
    // odstrani z adresy pomlcky, pokud jsou dve a vice vedle sebe  
    $re = "/[-]+/";  
    $replacement = "-";  
    $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo);  
  
    return $pd_name_seo; }	
    ?>
    
 <?  
$pd_name_seo = seo_url ("spodní prádlo kalhotky podprsenka");   

?>


potřebuji místo : ("spodní prádlo kalhotky podprsenka") zapsat $pd_name
dekuji za pomoc
Nox
Profil
že by...?
$pd_name_seo = seo_url ($pd_name); 


řádek 3 je zbytečný
Jan
Profil
SAmozřejmně toto jsem zkoušel, i s uvozovkama i bez nich , vždy vypíše chybu :


Notice: Undefined variable: pd_name in /home/spodary.cz/spodary.cz/include/productList.php on line 56

zde je kod celeho skriptu :
<?php
header("Content-Type: text/html; charset=utf-8");
?>

<table width="100%"  align="center" >
<?php
if (!defined('WEB_ROOT')) {
	exit;
}

$productsPerRow = 3;
$productsPerPage = 18;

//$productList    = getProductList($catId);
$children = array_merge(array($catId), getChildCategories(NULL, $catId));
$children = ' (' . implode(', ', $children) . ')';

$sql = "SELECT pd_id, pd_name, pd_price, pd_thumbnail, pd_qty, c.cat_id
		FROM tbl_product pd, tbl_category c
		WHERE pd.cat_id = c.cat_id AND pd.cat_id IN $children 
		ORDER BY pd_name";
$result     = dbQuery(getPagingQuery($sql, $productsPerPage));
$pagingLink = getPagingLink($sql, $productsPerPage, "c=$catId");
$numProduct = dbNumRows($result);

// the product images are arranged in a table. to make sure
// each image gets equal space set the cell width here
$columnWidth = (int)(100 / $productsPerRow);
?>

<span  style= "font-family :sans-serif; font-size:14pt; color:#FF8000;">


<?	function seo_url ($title){ 
    
    $pd_name_seo = $title;  
      
    // nahradi znaky s diakritikou na znaky bez diakritiky  
    $pd_name_seo = StrTr ($pd_name_seo, "ÁÄČÇĎÉĚËÍŇÓÖŘŠŤÚŮÜÝŽáäčçďéěëíňóöřšťúůüýž ", "AACCDEEEINOORSTUUUYZaaccdeeeinoorstuuuyz-");  
  
    // prevede vsechna velka pismena na mala  
    $pd_name_seo = strtolower ($pd_name_seo);   
  
    // nahradi pomlckou vsechny znanky, ktera nejsou pismena  
    $re = "/[^[:alpha:][:digit:]]/";  
    $replacement = "-";  
    $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo);  
  
    // odstrani ze zacatku a z konce <b style="color:black;background-color:#99ff99">retezce</b> pomlcky  
    $pd_name_seo = trim ($pd_name_seo, "-");  
  
    // odstrani z adresy pomlcky, pokud jsou dve a vice vedle sebe  
    $re = "/[-]+/";  
    $replacement = "-";  
    $pd_name_seo = preg_replace ($re, $replacement, $pd_name_seo);  
  
    return $pd_name_seo; }	
    ?>
    
 <?  
$pd_name_seo = seo_url ($pd_name);   

?>


<?
if ($numProduct > 0 ) {

	$i = 0;
	while ($row = dbFetchAssoc($result)) {
	
		extract($row);
		if ($pd_thumbnail) {
			$pd_thumbnail = WEB_ROOT . 'images/product/' . $pd_thumbnail;
		} else {
			$pd_thumbnail = WEB_ROOT . 'images/no-image-small.png';
		}
	
		if ($i % $productsPerRow == 0) {
			echo '<tr>';
		}

		// format how we display the price
		$pd_price = ($pd_price);
		
		
		
		
		 
		
		
		echo "<td width=\"$columnWidth%\" align=\"center\"><a href=\"" . $_SERVER['PHP_SELF'] . "?n=$pd_name_seo&c=$catId&p=$pd_id" . "\"><img src=\"$pd_thumbnail\" border=\"0\"><br>$pd_name</a><br>Cena : $pd_price" ; print (" Kč"); ?>


<span  style= "font-family :sans-serif; font-size:14pt; color:#FF8000;">


<?php
		// if the product is no longer in stock, tell the customer
		if ($pd_qty <= 0) {
			echo "<br>Vyprodáno!";
		}
		
		echo "</td>\r\n";
	
		if ($i % $productsPerRow == $productsPerRow - 1) {
			echo '</tr>';
		}
		
		$i += 1;
	}
	
	if ($i % $productsPerRow > 0) {
		echo '<td colspan="' . ($productsPerRow - ($i % $productsPerRow)) . '">&nbsp;</td>';
	}
	
} else {
?>

</span>

	<tr><td width="100%" align="top" valign="top">Žádné zboží v této kategorii</td></tr>
<?php	
}	
?>


</table>

<p valign="right" align="bottom"><?php echo $pagingLink; ?></p>
Yur4Y
Profil
Tú premennú treba najprv definovať.
Jan
Profil
ona je definována proto také vše funguje jak mám, je umístěna také na 92. řádku a tam funguje jak má, zobrazuje se normálně, proč na 61. řádku ne ?
Nox
Profil
a nevytvořila se náhodou tím extractem ř.72? to znamená až PO volání té funkce?
Jan
Profil
ne ne promená $pd_name se ztahuje z databaze mysql, ktera je definovana v jinem skriptu, zde chyba neni
Nox
Profil
Ta proměnná na tom místě prostě neexistuje... jestli se vytvořila někde jidne, tak je řekl bych zásadní abys to sem uvedl, kde a jak se získává...
nightfish
Profil
Jan:
ne ne promená $pd_name se ztahuje z databaze mysql
proměnná $pd_name se vytváří na řádku 72
proto je logické, že ji nemůžeš použít na řádku 61
zkus ř. 61 přesunout třeba na ř. 85
Jan
Profil
super tak už to funguje , už bych jen potřeboval doladit poslední problém, místo kadého znaku s diakritikou se mi napíše - což není dobrě, znaky s diakritikou bych chtěl nahradit znaky bez diakritiky, znakem - bych chtel nahradit pouze mezery mezi slovy.
Kde je tam chyba ?
například název : "Trenýrky boxerky Tommy Hilfiger THP10 fialové zelené L"
mi napíše jako : "tren-zrky-boxerky-tommy-hilfiger-thp10-fialov-zelen-l"
chtěl bych aby mi napsalo "trenyrky-boxerky-tommy-hilfiger-thp10-fialove-zelene-l"
AM_
Profil
Máš soubor ve správném kódování? a pokud je to utf-8, nemůžeš funkci StrTr výčet znaků předávat jako string, ale jako pole (viz manuál, vidět je to v prvním commentu)
Jan
Profil
Ano mam to v utf-8 muzes mi tedy rict co mam na kterem radku prepsat ?
AM_
Profil
funkci strtr na řádku 39 - výčet znaků přepiš na pole, je to vidět v PHP manuálu co jsem poslal hned v prvním komentáři na stránce, jak takové pole vypadá.
Jan
Profil
nemohl by si mi tu presne napsat cim to mam presne nahradit ?
dekuji

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: