1

オンラインで読んで見つけた後でも、問題を解決する方法がわかりません。そして、私がこのようにできる方法はありません:

$select=mysql_query("select * from products_list categories where id='3'");
while($row=mysql_fetch_array($select)){

echo "whatever fields that I want to display onto the form before category field";

$select=mysql_query("select * from categories ORDER BY id ASC");
while($row=mysql_fetch_array($select)){

echo "compare with the result in categories table and select the option if it's true";

}
}

私は正しいですか?

現在、データベースproducts_listとcategoryに2つのテーブルがあります。

テーブルproducts_listは、ID、コード、価格、カテゴリ、ステータスなどの多くのフィールドで構成されています...

テーブル カテゴリのみ: ID、カテゴリ (このテーブルには、使用可能なカテゴリ オプションのすべてのセットのみが含まれます)

selectステートメントを使用して、ユーザーが以前にすべてのデータを保存したテーブルproducts_listからすべての結果を取得する更新/編集フォームがあります。

フォーム自体のカテゴリ部分の下には、複数選択リストボックスがあります。

私の問題は今です:

  1. テーブルproducts_listからのすべての結果を更新/編集フォームに表示します
  2. テーブル カテゴリのすべてのカテゴリ オプションを更新/編集フォーム (リストボックス) に表示します。
  3. ユーザーがテーブルproducts_listに保存したカテゴリを比較し、リストボックスに表示されるオプションを選択します(これは2番目の質問です)

これまでにこれを行ったことがなく、これらの記事やスレッドをオンラインで読んで何が起こっているのかわからないため、これについて多くの助けが必要です. 皆さんが私の質問を理解してくれることを願っています。前もって感謝します。

現在コーディングを更新していますが、まだスタックしています:

$result2= mysql_query("SELECT category FROM categories ORDER BY id ");
$all_cat = array();
while($row2 = mysql_fetch_assoc($result2)) { 
    $all_cat[] = $row2['category'];
}

//dropdownlist query
$query="SELECT * from products_list where id='100'";
$result = mysql_query ($query);

//populate the dropdownlist

while($row = mysql_fetch_assoc($result)) { 

  $sel_cats = explode(",", $row['category']);
  //determine if the category is selected
  foreach ($sel_cats as $sel_cat){

  $selected = '';

  if ($sel_cat == $all_cat ){
           $selected =' selected="selected" ';
           break;
        }

  }

    foreach($all_cat as $i => $value)
    {
     echo  '<option value="' . $value. '"' . $selected . '>'.$value.'</option>\n';
    }

}
4

4 に答える 4

1
// get all product, assuming the saved category is cat column in product_list table
$result2= mysql_query("SELECT * from products_list where id='3'");
$row2 = mysql_fetch_assoc($result2);
$sel_cat =$row2['cat'];

//dropdownlist query
$query="SELECT cat,id FROM categories ORDER BY id ";
$result = mysql_query ($query);


//populate the dropdownlist
while($row = mysql_fetch_assoc($result)) { 
      //determine if the category is selected
      $selected = ($row['id '] == $sel_cat ) ? ' selected="selected" ' : NULL;
      echo  '<option value="' . $row['id']. '"' . $selected . '>'.$row['cat'].'</option>\n';
}

連結文字列形式で保存されたカテゴリ用。例: 黒、白、赤

 // get all product, assuming the saved category is cat column in product_list table
    $result2= mysql_query("SELECT * from products_list where id='3'");
    $row2 = mysql_fetch_assoc($result2);
    $sel_cats = explode(',', $row2['cat']);

    //dropdownlist query
    $query="SELECT cat,id FROM categories ORDER BY id ";
    $result = mysql_query ($query);


    //populate the dropdownlist
    echo '<select name="cat" size="5" multiple="multiple">';
    while($row = mysql_fetch_assoc($result)) { 
          //loop thru the sel_cat
           foreach ($sel_cats as $sel_cat){
          //determine if the category is selected
           $selected = '';
           if ($row['id '] == $sel_cat ){
               $selected =' selected="selected" ';
               break;
           }
          }
          echo  '<option value="' . $row['id']. '"' . $selected . '>'.$row['cat'].'</option>\n';

    }
    echo '</select>';
于 2012-07-31T03:48:44.737 に答える
0

あなたの質問はよくわかりませんが、単純な Read ステートメントだと思います。

  1. PHP echo を使用して、クエリ結果をフォームに表示するだけです。
  2. 1号と同じ
  3. 比較を行うための多くの方法の 1 つは、結果 (カテゴリ) を別の変数に格納することです。$userSelectedCategory と $listCategory (配列) を考えて、$listCategory 配列項目にループし、それを $userSelectedCategory と比較します。

次に何をするかは完全にあなた次第です。

于 2012-07-31T03:46:00.663 に答える
0
$select=mysql_query(" select * from products_list where id='1' ORDER BY id ASC LIMIT 20 ");
while($row=mysql_fetch_array($select)){
$id = $row["id"]; 
echo $id;
}
于 2012-07-31T03:55:47.010 に答える
0

たとえば、結合SQLクエリを使用します

select * from products_list, categories where product_list.id=categories.id ORDER  BY id ASC

 select * from products_list where id=1 ORDER BY id ASC LIMIT 20 
于 2012-07-31T03:42:11.400 に答える