Merhaba,

Arkadaşlar bi ürün sistemim var ürün ek seçeneklerini

{Beden:Small|Medium|Large}{Renk:Kırmızı|Siyah|L acivert}

diye ayırıyorum basarken:

<?
function als($nerdens, $nereyes, $Veris){
	preg_match_all('|'.$nerdens.'(.*?)'.$nereyes.'|si', $Veris, $asds);
	$sonucs=$asds[1][0];
	return $sonucs;
}                                

function bir($nerdens){
	$pp=explode('|', $nerdens);
	$da="";
	foreach($pp as $be){
		$da.='<option value="'.$be.'">'.$be.'</option>
		';
	}
	return $da; 
}

function Cevir($veri){
	$sonuc="";
	preg_match_all('|{(.*?)}|si', $veri, $eee);
	$say=count($eee[1]);
	for($i=0; $i < $say; $i++){
		$rr=$eee[0][$i];
		$ll=als('{', ':', $rr);
		$ll2=als(':', '}', $rr);
		$pp=bir($ll2);
$sonuc.=<<<HTML
<select name="$ll" id="">
      $pp
</select>
HTML;
	}
	return $sonuc;
}

$veri='{Renk:Siyah|Yeşil|Kırmızı}{Beden:S|M|L|XL}{Degisken:a|b|c}';
echo Cevir($veri);
bu şekilde basıyorum bana:
<select name="Renk">
   <option>Siyah</option>
   <option>Yeşil</option>
   <option>Kırmızı</option>
</select>
 
<select name="Beden">
   <option>S</option>
   <option>M</option>
   <option>L</option>
   <option>XL</option>
</select>
 
<select name="Degisken">
   <option>a</option>
   <option>b</option>
   <option>c</option>
</select>
bunu veriyor.


ANCAK !:

Veritabanımda gelen sipariş ise şöyle geliyor:

Siyah|Small|abc

bunuda

<select name="renk">
<option>Siyah</option>

olarak en başında basması lazım verinin explode ile bölüp yolluyorum çünkü bunu fonksiyona nasıl geçireceğimi bulamadım


biraz daha basit anlatayım:

<?
function als($nerdens, $nereyes, $Veris){
   preg_match_all('|'.$nerdens.'(.*?)'.$nereyes.'|si', $Veris, $asds);
   $sonucs=$asds[1][0];
   return $sonucs;
}                                
 
function bir($nerdens){
   $pp=explode('|', $nerdens);
   $da="";
   foreach($pp as $be){
      $da.='<option value="'.$be.'">'.$be.'</option>
      ';
   }
   return $da; 
}
 
function Cevir($veri){
   $sonuc="";
   preg_match_all('|{(.*?)}|si', $veri, $eee);
   $say=count($eee[1]);
   for($i=0; $i < $say; $i++){
      $rr=$eee[0][$i];
      $ll=als('{', ':', $rr);
      $ll2=als(':', '}', $rr);
      $pp=bir($ll2);
$sonuc.=<<<HTML
<select name="$ll" id="">
      $pp
</select>
HTML;
   }
   return $sonuc;
}
 
$veri='{Renk:Siyah|Yeşil|Kırmızı}{Beden:S|M|L|XL}{Degisken:a|b|c}';

$icindeolsun='Yeşil|L|b';
echo Cevir($veri,$icindeolsun);
$icindeolsun='Yeşil|L|b';
echo Cevir($veri,$icindeolsun);

bunu böyle yolladığım zaman bana gene $veri degiskenini isleyip yazsın ama select'in başında $icindeolsun içeriğide olsun?