
$arrayCodeは生徒の出席番号を列挙した配列です。
$arrayNameは生徒の名前を列挙した配列です。
それぞれの配列に9個ずつデータが格納されており、出席番号に対応する名前をupdateしたいです。
$arrayCodeや$arrayNameにforeach構文などで9回SQL発行、実行を繰り返すのでしょうが、
どのように記述したらいいでしょうか。foreachの使い方がいまいち理解できておらず・・・。
よろしくお願い致します。
$arrayCode = array(1,2,3,4,5,6,7,8,9);
$arrayName = array("阿藤","伊藤","宇藤","江藤","尾藤","加藤","木藤","工藤","毛藤");
$sql = "update mytable set myName = '$arrayName' where myCode = '$arrayCode' ";
$rst = mysql_query($sql, $con);
if ($rst) {
echo "成功";
} else {
echo "失敗";
}
No.3ベストアンサー
- 回答日時:
if ( count($arrayCode) == count($arrayName) ) {
for ( $i = 0; $i < count($arrayCode); $i++ ) {
$sql = "update mytable set myName = " . $arrayName[$i] . " where myCode = " . $arrayCode[$i];
$rst = mysql_query($sql, $con);
}
}
テストしてませんがこんな感じはどうでしょうか?
ryoumasanさん、ありがとうございました。
わたしにも理解できる(?)for構文による解法、
目からうろこでした。
まさに、こういうことできないかと頭を悩ませていました。
大変勉強になりました。ありがとうございました。
No.4
- 回答日時:
あくまでもforeach文を利用する場合、連想配列にすると良いです。
$data = array( 1=>"阿藤", 2=>"伊藤", 3=>"宇藤", 4=>"江藤", 5=>"尾藤", 6=>"加藤", 7=>"木藤", 8=>"工藤", 9=>"毛藤");
foreach ($data as $key => $value) {
$sql = "update mytable set myName = " . $value . " where myCode = " . $key;
$rst = mysql_query($sql, $con);
}
ryoumasanさん。たびたびのご回答ありがとうございました。
#2さんの御礼にも書きましたが、
今回の本番環境の配列には「1=>」などのキーがついているわけでは
ないので、残念ながらご回答の方法は適用できませんでした。
でも、大変参考になりました。ありがとうございました。
No.2
- 回答日時:
配列を二つ使うのは整合性がとりにくいのでお勧めできません。
一応2つ例示しておきます。
<?
$arrayCode = array(1,2,3,4,5,6,7,8,9);
$arrayName = array("阿藤","伊藤","宇藤","江藤","尾藤","加藤","木藤","工藤","毛藤");
foreach($arrayName as $key=>$val){
$sql = "update mytable set myName = '{$val}' where myCode = '{$arrayCode[$key]}' ";
//$rst = mysql_query($sql, $con);
print $sql."<br>";
}
?>
<?
$arrayName = array(1=>"阿藤",2=>"伊藤",3=>"宇藤",4=>"江藤",5=>"尾藤",6=>"加藤",7=>"木藤",8=>"工藤",9=>"毛藤");
foreach($arrayName as $key=>$val){
$sql = "update mytable set myName = '{$val}' where myCode = '{$key}' ";
//$rst = mysql_query($sql, $con);
print $sql."<br>";
}
?>
yambejpさん、いつもお世話になります。
前者は、まさにやりたいコトでした。
$key=>$val
という書き方がミソだったのですね。
後者は、配列に「1=>」などのキーがついているわけではないので
今回は適用できないようです。
いずれにせよ、おかげさまで解決しました。ありがとうございました。
No.1
- 回答日時:
aleisterさん、早速のご回答ありがとうございました。
foreachの書き方は、ご照会のものなど解説サイトでわかるのですが、
二つの配列変数を同時並行でSQL文に流し込んでいく書き方がわかりませんでした。
$arrayCode = array(1,2,3,4,5,6,7,8,9);
$arrayName = array("阿藤","伊藤","宇藤","江藤","尾藤","加藤","木藤","工藤","毛藤");
以上の2配列変数を、
$sql = "update mytable set myName = '阿藤' where myCode = '1' ";
$rst = mysql_query($sql, $con);
$sql = "update mytable set myName = '伊藤' where myCode = '2' ";
$rst = mysql_query($sql, $con);
$sql = "update mytable set myName = '宇藤' where myCode = '3' ";
$rst = mysql_query($sql, $con);
:
(以下略)
:
…という風に順次実行していくのに、例えば次のようにすれば、$arrayCodeの方は
SQL文に順次流し込んでいけますが、$arrayNameの方は流し込んでいけませんよね?
foreach ($arrayCode as $value) {
$sql = "update mytable set myName = '$arrayName' where myCode = '$value' ";
$rst = mysql_query($sql, $con);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- PHP ファイルの書き込みについて教えて下さい。 1 2023/03/20 12:01
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 1 2022/10/27 14:21
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- PHP PHPでCSVを出力するさいに、ループの中で前の行の値を変更したい 3 2022/10/27 17:44
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP 配列の値の更新方法について 1 2022/08/05 09:49
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
insert1つの処理でもトランザ...
-
JAVA SQLServerException 列名 ...
-
<VB.NET>INSERT文でDBにデータ...
-
エクセルVBAのデータベース接続...
-
PHP+PDO+MYSQL で実行されたSQ...
-
【初歩】配列の格納データ数だ...
-
mysqliを使ってデータベースを...
-
VB.NET エラーになる箇...
-
MySQLにmd5が登録できません。
-
プリぺアードステートメントの...
-
MySQLでデータベースにデータin...
-
VBAをつかってクエリの情報を抽...
-
phpのPEARのMDB2を使って出たエ...
-
実行時エラー3131 FROM 句の構...
-
SELECT文を発行して、ACCESSよ...
-
phpからdocument.writeで出力し...
-
Accessのテーブルへ複数の主キ...
-
どちらが高速ですか?
-
ボタンのonclick時における関数...
-
DBで検索結果に該当するデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JAVA SQLServerException 列名 ...
-
insert1つの処理でもトランザ...
-
<VB.NET>INSERT文でDBにデータ...
-
Pro*Cの構文エラー
-
PHP&MySQLでの文字列+数列の一...
-
MySQLのINSERT時にたまに重複に...
-
データベースに存在するデータ...
-
配列をループさせてUPDATE
-
php postgres Insert と updat...
-
C#でDBの特定列をUpdate
-
ResultSetインターフェイスでの...
-
VBA ACCESS SQL...
-
VB.NET エラーになる箇...
-
PHP+SQLite でSELECT文のWHERE...
-
phpで複数の検索語を検索対象に...
-
エクセルVBAのデータベース接続...
-
OR検索を実装したい
-
【初歩】配列の格納データ数だ...
-
mysqliを使ってデータベースを...
-
ODBC接続でデータ件数を求...
おすすめ情報