言語と会社に対してlink
とlink text
を保存する必要があるフォームを処理するには、より良い方法がありますか?複数のフォームフィールドを処理する方が良い
以下の例は機能しますが、難しい作業だと思います。
リンクとリンクテキストフィールドのキーに言語と会社のIDをグループ化し、その他の情報をPHPとDBに渡す方法として、テキストフィールドを追加しました。
$newlinks = array();
foreach($_POST as $post_key => $post_value) {
if (substr($post_key, 0, 7) == 'newlink') {
$posted_link = explode('_', $post_key);
$newlinks[$posted_link[1]][$posted_link[2]][$posted_link[0]] = $post_value;
$newlinks[$posted_link[1]][$posted_link[2]]['language_id'] = $posted_link[1];
$newlinks[$posted_link[1]][$posted_link[2]]['company_id'] = $posted_link[2];
}
}
foreach($newlinks as $newlinklang) {
foreach($newlinklang as $newlink) {
if ($newlink['newlink'] != '' && $newlink['newlinkname'] != '') {
$sql = "
INSERT
INTO
".$db_prefix."catalogue_links (
link,
link_name,
language_id,
company_id
) VALUES (
'".$newlink['newlink']."',
'".$newlink['newlinkname']."',
'".$newlink['language_id']."',
'".$newlink['company_id']."'
";
}
}
}
そしてHTML
<input type="text" name="newlink_1_1" value="" />
<input type="text" name="newlinkname_1_1" value="" />
1ページに表示された複数の言語や企業が存在する場合があります。
補足として、これらの入力を確実に消毒してください!あなたのSQLステートメントは私がうんざりさせています。 http://php.net/manual/en/function.mysql-real-escape-string.phpを使用するか、またはプリペアドステートメントを使用してください。 – nategood
@nategoodありがとう、コードの簡素化のために私はポストキーと値から自分のクリーニングを削除しました。 –