Mysql+phpでショッピングカートの作成をおこなっております。
Mysqlからデータを引き出し→フォームに表示→内容を書き換え→Mysqlにデータ送信。の流れを作りたいです。
データを引き出し→フォームに表示麻では出来ている様ですが、書き換えたデータは全く反映されません。
ーーーー前分省略ーーーーー
if ( ( $login = auth() ) == FALSE ) {
header( 'Location: login.php?redirect=login.php' ); exit;}
if ( $_POST['action'] == 'edit' ) {
if(strlen($_POST['con'])>60) $error.='会社名が30文字以上です<br>';//文字数のエラー
if($_POST['tel']=='') $error.='電話番号が入力されていません<br>';//空のエラー
if ( $error == '' ) {
$sql = "update user set
con = '" . mysql_real_escape_string( $_POST['con'] ) . "',
name_k = '" . mysql_real_escape_string( $_POST['name_k'] ) . "',
tel = '" . mysql_real_escape_string( $_POST['tel'] ) . "'
fax = '" . mysql_real_escape_string( $_POST['fax'] ) . "'
where id = '" . mysql_real_escape_string( $_SESSION['id'] ) . "'";
$result = mysql_query( $sql );
$error = '変更しました<br>'; } }
$sql = "select * from user where id = '" . mysql_real_escape_string( $_SESSION['id'] ) . "'";
$result = mysql_query( $sql );
$users = mysql_fetch_array( $result );
?>
Telとfaxのそれぞれの末尾にカンマが無いことが原因だと思われる
このようなミスは発見が難しいのでテスト段階ではエラー出力しておくようにしておいたほうがいい
$result = mysql_query( $sql ); if (!$result) { die(mysql_error() . "->" . $sql); }
有難うございます。
>1
参考書よりsession_start();と書いてあります。
>2
$link = mysql_connect( $db_host, $db_user, $db_password );
mysql_select_db( $db_name );
$result = mysql_query( 'set character set utf8' );
となっています。
Telとfaxのそれぞれの末尾にカンマが無いことが原因だと思われる
このようなミスは発見が難しいのでテスト段階ではエラー出力しておくようにしておいたほうがいい
$result = mysql_query( $sql ); if (!$result) { die(mysql_error() . "->" . $sql); }
お陰様で解決しました。本当にありがとうございました。
$error = '';
を一番上ぐらいにかいてこの変数を初期化しておかないと
$errorの値が不定になって
if文の $error == '' が真にならず
UPDATE文が実行されません。
有難うございました。
実行してみます。
とりあえずエラーの出力をdisplayかlogファイルに出すようにされたほうがいいかと思います。
で、tel=の行の最後に,がありません。
組み立てたsql文を表示させてチェックしてみてください。実際にmysqlでエラーが出ないかどうかはそこでわかると思いますので。
有難うございました。
ためしてみます。
お陰様で解決しました。本当にありがとうございました。