2012-03-12 11 views
1

申し訳ありませんが、MySQLの情報をドロップダウンリストに入力しようとすると問題が発生します。この問題は、2番目のドロップダウンでアポストロフィを使用して情報を取得しようとしたときに発生します。たとえば、女性の服や男性の服などです。どんな援助も大いに感謝します。動的ドロップダウンmysqlアポストロフィの問題

エラーは次のとおりです。SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックし、正しい構文が1行目近くの 'Clothing' 'を使用するようにしてください。

ここにコードがあります。

<?php 
//************************************** 
//  Page load dropdown results  // 
//************************************** 
function getTierOne() 
{ 
    $catresult = mysql_query("SELECT DISTINCT category FROM categories") 
    or die(mysql_error()); 

     while($tier = mysql_fetch_array($catresult)) 

     { 
      echo '<option value="'.$tier['category'].'">'.$tier['category'].'</option>'; 
     } 

} 

//************************************** 
//  First selection results  // 
//************************************** 
if($_GET['func'] == "drop_1" && isset($_GET['func'])) { 
    drop_1($_GET['drop_var']); 
} 

function drop_1($drop_var) 
{ 
    include_once('db.php'); 
    $result = mysql_query("SELECT DISTINCT level1 FROM categories WHERE category='$drop_var'") 
    or die(mysql_error()); 

    echo '<select name="drop_2" id="drop_2"> 
      <option value=" " disabled="disabled" selected="selected">Choose one</option>'; 

      while($drop_2 = mysql_fetch_array($result)) 
      { 
       echo '<option value="'.$drop_2['level1'].'">'.$drop_2['level1'].'</option>'; 
      } 

    echo '</select>'; 
    echo "<script type=\"text/javascript\"> 
$('#wait_2').hide(); 
    $('#drop_2').change(function(){ 
     $('#wait_2').show(); 
     $('#result_2').hide(); 
     $.get(\"pla2.php\", { 
     func: \"drop_2\", 
     drop_var: $('#drop_2').val() 
     }, function(response){ 
     $('#result_2').fadeOut(); 
     setTimeout(\"finishAjax_tier_three('result_2', '\"+escape(response)+\"')\", 400); 
     }); 
     return false; 
    }); 
</script>"; 
} 


//************************************** 
//  Second selection results  // 
//************************************** 
if($_GET['func'] == "drop_2" && isset($_GET['func'])) { 
    drop_2($_GET['drop_var']); 
} 

function drop_2($drop_var) 
{ 
    include_once('db.php'); 
    $bresult = mysql_query("SELECT DISTINCT level2 FROM categories WHERE level1='$drop_var'") 
    or die(mysql_error()); 

    echo '<select name="drop_3" id="drop_3"> 
      <option value=" " disabled="disabled" selected="selected">Choose one</option>'; 

      while($drop_3 = mysql_fetch_array($bresult)) 
      { 
       echo '<option value="'.$drop_3['level2'].'">'.$drop_3['level2'].'</option>'; 
      } 

    echo '</select> '; 
    echo '<input type="submit" name="submit" value="Submit" />'; 
} 
?> 
+0

"SELECT DISTINCT level2 FROM categories WHERE level1='$drop_var'"

を変更しなければならなかった、私はそれを考え出しました。私は に "WHERE LEVEL1 =カテゴリFROM DISTINCT LEVEL2をSELECT '" は "LEVEL1 = '$のdrop_varは' WHEREカテゴリFROM DISTINCT LEVEL2を選択" に変更する必要がありました。mysql_real_escape_stringの($のdrop_var)。 "'" –

答えて

0

私はそれを理解しました。私は

"SELECT DISTINCT level2 FROM categories WHERE level1='".mysql_real_escape_string$drop_var"'"

2

htmlentitiesを使用しますか?

.htmlenteties($drop_2['level2']). 
+0

関数drop_2($ dropvar)の後にこのコードを追加しようとしました。$ dropvar = htmlentities($ dropvar)は動作しませんでしたが、同じエラーが発生しました。 –

0

一重引用符で置き換えることで、htmlの特殊文字に置き換えることができます。 list here

+0

データベース内のアポストロフィのすべてのインスタンスを置き換えることについてお話しますか? –

関連する問題