Dinamik değişken veritabanı kayıt / hatırlama dayalı - Yardım?

1 Cevap php

Tamam, ben de kısa elimden geldiğince bu devam edeceğiz ..

I am trying to create a truly scalable environment for my users and so allow them to..
1. define a new option (dshop_options_name)
2. define option values (dshop_options_values)
separate tables in the database

This is to allow distinct values to be assigned and also in any combination.
OK, the script is in 2 parts. The form page and the result page

form.php (using POST)

Önce ben dinamik ürüne atanan seçenekleri dayalı dropdowns oluşturun ve sonra bu seçeneği atanmış tüm değerleri almak için dshop_options_values ​​tablo ile çalıştırmak gerekir

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

$prod_prop_name=mysql_query("SELECT * FROM `dshop_options_name`");
$prod_prop_name_array= array();
while($data9=mysql_fetch_array($prod_prop_name)) {
$prod_prop_name_array[]=$data9;
}

foreach($prod_prop_name_array as $rowNum => $data9) {
$prod_prop_id=$data9[0];
$prod_prop_title=$data9[1];

$prod_prop_attri=mysql_query("SELECT * FROM `dshop_options_values` WHERE `prod_id`='".$selected_product."' AND `attri_name`='".$prod_prop_title."' ORDER BY `attri_value` ASC ");
$prod_prop_attri_array= array();
while($data10=mysql_fetch_array($prod_prop_attri)) {
$prod_prop_attri_array[]=$data10;
}   
  if(!$prod_prop_attri_array){}
  else{
  echo"<div class='left'>";
  echo"$prod_prop_title\n";?>
    <select name='<? echo $prod_prop_title?>'>
    <option value="select">Select</option>
    <?php   
  foreach($prod_prop_attri_array as $rowNum => $data10){
  $itemname=$data10[2];
  $itemvalue=$data10[3];
  $itemprice=$data10[4];
  if($itemprice<="0"){
  echo"<option value='".$itemvalue."'>".$itemvalue."</option>\n";
  }
  else{
  echo"<option value='".$itemvalue."'>".$itemvalue."&nbsp;-&nbsp;".$currency_type.$itemprice."</option>\n";
  }      
  }
  echo"</select></br></br></div>";
  }

}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

Gördüğünüz gibi, tamam, ben select seçenek adı olarak aynı isim, bu yüzden daha sonra tekrar bir sonraki komut değeri aramak için bu adı kullanmak olduğunu.

result.php

Tamam, veri kümesini reasemble ve yayınlanan verilere sonucu maç, ben yine, önce tüm verileri almak için birkaç çağrı yapın.

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

$prod_prop_name=mysql_query("SELECT * FROM `dshop_options_name`");
$prod_prop_name_array= array();
while($data9=mysql_fetch_array($prod_prop_name)) {
$prod_prop_name_array[]=$data9;
}
foreach($prod_prop_name_array as $rowNum => $data9){
$option_id=$data9[0];
$option_name=$data9[1];
$varnval=$_REQUEST[$option_name];
echo"$varnval"; // did we get a result?
$results = array();

  if(!$varnval | $varnval=="select"){}
  else{
  $results[] = $option_name."-".$varnval;
  $optpricesum_query=mysql_query("SELECT * FROM `dshop_options_values` WHERE `attri_name`='".$option_name."' AND `attri_value`='".$varnval."'");
  $optpricesum_result=mysql_fetch_array($optpricesum_query);
  $optpricesum=$optpricesum_result[4];
  }
  if(!$varnval | $varnval=="select"){}
  else{
  for ($i=0;$i<=0;$i++){$options.=$results[$i]." | ";}
  }
}

/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /

Tamam, konuya aşağı ...

form.php de, ben aslında Admin kullanıcı tarafından, dinamik olarak oluşturulan bir değer ilanıyla.

Onlar bir seçenek "Foo", ve değerler "foo1" (admin alanında), "foo2", "foo3" yarattı diyelim

form.php iki tablolara başvuran haç ile seçer, adlarını seçin ve sonra doldurur (hiçbir şey önceden tanımlı) oluşturur

sonra son kullanıcı ön ucunda ve formu gönderme formunda geldiğinde, onlar "foo3" Seçili

result.php at first has nothing to _REQUEST (remember we had nothing to define) until it rebuilds the possible vaiables that could have been posted. I then used the foreach to run through all the option names stored with the hope of then creating dynamic variables...
$varnval = $_REQUEST[$option_name];

I then filter the names that have not been posted with..
if(!$varnval | $varnval=="select"){}

Şimdi ...

Yerel olarak ben değil, web sunucusu üzerinde, hiçbir sorun "foo3" değeri olsun. Daha sonra yerel php kullanırken (xampp) değerleri bile $ var tanımlı = $ _POST ['var'] gereken Yüklü fark; ayıklarken hala .... can sıkıcı çalışacaktır! AMA komut çalışacak, zaten bir noktaya gösterir.

Ben $varnval $_REQUEST sonra echo yerleştirilmiş, ama hiçbir şey görüntüler.

Bana öyle geliyor ki $_REQUEST çünkü ayrıştırma ya da ben sadece bir şey kaçırmış çünkü ya, değişken almıyor.

Ben çok farklı yollar deneyerek, bu konuda çalışma gün geçirdim ama bütün konuları bir yere varamayacağını.

Belki de (başka bir yol etrafında en aramalar üretmek gibi değil gibi) imkansız çalışıyorum, ama yalnız veritabanı kayıtlarının değişkenlerin bir kümesi oluşturmak için bir yol olarak var olan hissediyorum

Bu benim ilk yazı olduğunu, bu yüzden yanlış yerde ise özür diliyorum!

Ben herhangi bir yardım için şimdiden teşekkür ederim

1 Cevap

Önce 'register_globals' çalışmak $ _REQUEST sahip olmak için, açık olduğunu kontrol etmelisiniz; Ben doğrusu bu superglobal değişken kullanmak değil ama (form ayarlarına bağlı olarak) yerine $ _GET veya $ _POST kullanmak istiyorum.

Seçenekleri için; bir dizi olarak bunları saklamak için iyi:

<select name="myoption[]">
<option name="1" value="1">One</option>
<option name="2" value="2">Two</option>
</select>

PHP hangi kullanarak alabilirsiniz bir dizi döndürür

print_r($myoption);

Umut olur.