• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sortableを使用したデータのUPDATE)

sortableを使用したデータのUPDATE方法についての質問

このQ&Aのポイント
  • jQueryの「sortable」プラグインを使用して、データベースの特定のカラムを並び替える方法について質問です。
  • データを並び替えた後、シリアライズした配列を使ってデータベースをupdateする際に、正常にデータを更新できない問題が発生しています。
  • foreachの処理に問題があると感じますが、どのように組み立てれば正常にデータベースにデータを投げることができるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.2

PHP部分だけざっと書き直してみました。UPDATEをSELECTより先にしなければならないことは自明ですね。 <?php include 'db_pdo_conn.php'; if (isset($_POST['result'])) { __$sql = 'UPDATE sortable SET no = ? WHERE id = ?'; __$stmt = $pdo->prepare($sql); __foreach (explode(',', $_POST['result']) as $i => $id) { ____$stmt->execute(array(++$i, $id)); __} } $sql = 'SELECT id, name, price, no FROM sortable ORDER BY no'; foreach ($conn->query($sql) as $row) { __vprintf('<li class="ns" id="%s">%s %s %s</li>' . PHP_EOL, $row); } ?>

nazal2010
質問者

お礼

いつも貴重なアドバイスをいただき本当にありがとうございます。 おかげさまで無事解決できました。 explode(',', $_POST['result']) as $i => $id がミソになりますね。 ご回答をいただけてなければ、この書き方は全く思いつかなかったと思います。

すると、全ての回答が全文表示されます。

その他の回答 (2)

noname#244856
noname#244856
回答No.3

訂正 $pdo->prepare($sql); ↓ $conn->prepare($sql);

nazal2010
質問者

お礼

いつも貴重なアドバイスをいただき本当にありがとうございます。 おかげさまで無事解決できました。

すると、全ての回答が全文表示されます。
noname#244856
noname#244856
回答No.1

$_GET, $_POSTなどを受け取る際の処理 http://qiita.com/mpyw/items/2f9955db1c02eeef43ea PHPでデータベースに接続するときのまとめ http://qiita.com/mpyw/items/b00b72c5c95aac573b71 使いやすいPDOの継承クラス http://qiita.com/mpyw/items/f4369c87b689cb6ac35e とりあえず、PDOで例外をスローさせる設定にしてください。原因が分かるはずです。

nazal2010
質問者

お礼

いつも貴重なアドバイスをいただき本当にありがとうございます。 おかげさまで無事解決できました。

すると、全ての回答が全文表示されます。

関連するQ&A