の名前が正しくないtable
ため、にデータを挿入できないという問題がありました。columns
それらは単に column1、column2 などでした。Date、Address、City などの代わりに。私はこのデータベースを設計していません。また、これらのテーブルの作成方法を変更する方法がないため、最初にinsert
の名前に決めました。それらの下。これで、それらをリンクするための対応するデータが得られました。だから今、私はすべての列名の と1のすべての値の を作成しているので、それらを 1 つに結合できます。後でこれを挿入ステートメントのキーとして使用します。columns
row
array
array
row
associative array
それは混乱を招くかもしれないので、これが私のtable
見た目です
id | column1 | column2 | column3
1 | Date | Address | City
ただし、次回は別の名前の列が増える可能性があるため、次のようになります
id | column1 | column2 | column3 | column4 | column5
1 | Apple | Orange | Tomato | Pear | Banana
ここで、私が試して作成するために使用しているコードを次に示しますAssociative Array
。
$col_keys = array();
$col_values = array();
$columns = "SELECT column_name FROM information_schema.columns WHERE table_name = 'mytablename'";
$columns_info = "SELECT * FROM 'mytablename' WHERE 'id' = '1'";
if ($query_run11 = mysql_query($columns)) {
if (mysql_num_rows($query_run11) == NULL) {
$response["success"] = 0;
echo $response;
} else {
while ($row = mysql_fetch_assoc($query_run11)) {
$col_keys['key_name'] = $row['column_name'];
}
}
}
if ($query_run12 = mysql_query($columns_info)) {
if (mysql_num_rows($query_run12) == NULL) {
$response["success"] = 0;
echo $response;
} else {
while ($row = mysql_fetch_assoc($query_run12)) {
$col_values['value_name'] = $row['column_name']; // PROBLEM
}
}
}
$final = array_combine($col_keys, $col_values);
//echo '<pre>'; print_r($final); echo '</pre>
コードでコメントされているように、以下の行が問題です。
$col_values['value_name'] = $row['column_name'];
'column_name'
は列の名前ではないため、問題です。明らかに、それがそもそもの問題でした。列名が何であるかを知る方法はありません。列 1 ~列 67 の可能性があります。
だから私の質問は、どうすればこれを行うことができますか?
また、これをすべて行う簡単な方法があれば、私はすべて耳にします。これは貧弱な解決策ですが、これまでのところ私が思いつくことができる最高のものでした.
編集
私の全体的な目標には多くの混乱があるようです。このデータベース設計はひどいものであり、複雑な問題であるため、理解できます。列名は実際には質問の値です。それらの下の行は、それらの質問に対する答えです。だから最終的にはこれが私の目標です。私はAssociative Array
このようなものを持っています
column1 => Date
column2 => Address
column3 => City
...
06-22-2013
そうすれば、(日付への回答) を挿入する INSERT を作成できcolumn1
ますcolumn1 => Date
。
さらに説明が必要な場合は、これに追加します。