2011-07-07 2 views
1

私は現在、ユーザーがPHP/HTMLフォームを介してSQLデータベースにデータを提出しようとしています。私はこれをうれしく行うことができますが、ユーザがIndexカラムを入力するのを許可しないようにしたいのですが、自動的にajdをインクリメントすることは嫌になりません。PHPでSQLにインデックス値を隠す

私が持っている現在のコードは次のようである:

$result = mysql_query("SELECT * FROM {$table}") or die(mysql_error()); 

// Start a form to run insert.php 

echo "<form action=\"insert.php\" method=\"post\">"; 

// Loop to create boxes in the form 

for ($i = 0; $i < $fields_num; $i++) 
{ 
    $field = mysql_fetch_field($result); 
    echo "{$field->name}: <br /><input type=\"text\" name=\"{$field->name}\"onkeypress=\"return noenter()\"/>"; 
    echo "<br />"; 
}; 

// End form. 

echo "<input type=\"submit\"> 
     </form> 
     </div>"; 

ここから私はインデックスの列を無視することができますか。私はそれが役立つ場合、データベースへの完全なアクセス権を持っています。

ありがとうございました!

答えて

1

このフィールドを表示させたくない場合は、単に、このような何か出力を生成する前に、あなたのループで前提条件を追加します。このよう

for ($i=0; $i<$fields_num; $i++) 
{ 
    $field = mysql_fetch_field($result); 
    if ($field->name != "yourindexfieldname") 
    { 
     echo "{$field->name}: <br><input type=\"text\" name=\"{$field->name}\"onkeypress=\"return noenter()\"/>"; 
     echo "<br>"; 
    } 
}; 
1

は:

for ($i=0; $i<$fields_num; $i++) 
    { 
     $field = mysql_fetch_field($result); 
     if($field->name == 'Index') continue; //This does the trick 
     echo "{$field->name}: <br><input type=\"text\" name=\"{$field->name}\"onkeypress=\"return noenter()\"/>"; 
    echo "<br>"; 
    }; 

continueステートメントは、ループの次の反復まで 'スキップ'します。フィールド名が「索引」の場合は、次のフィールドにスキップしてください。

これが役立つことを願っています。乾杯

0

クエリでインデックスフィールドを省略することができます:
SELECT <put the fields without your index field> from {table};

0

は、インデックスなしデシベルでビューを作成します。

$result = mysql_query("SELECT * FROM v_{$table}) or die(mysql_error()); 
関連する問題