0

誰か助けてください。このスクリプトで必要に応じてmysqlテーブルから値を選択し、存在する場合は更新し、存在しない場合は代わりに挿入しようとしています。

誰かが私が間違っている場所を教えてもらえますか?

    <?php
        require_once("session.php"); 
        require_once("functions.php");
        require('_config/connection.php');

        session_start();

        include '_config/connection.php'; 

        $height_ft = $_POST['height_ft'];
        $height_in = $_POST['height_in'];
        $weight_st = $_POST['weight_st'];
        $weight_lb = $_POST['weight_lb'];    

        $result = mysql_query("SELECT height_ft FROM ptb_stats WHERE id=".$_SESSION['user_id']."");

        $result2 = mysql_query("SELECT height_in FROM ptb_stats WHERE id=".$_SESSION['user_id']."");

        $result3 = mysql_query("SELECT weight_st FROM ptb_stats WHERE id=".$_SESSION['user_id']."");

    $result4 = mysql_query("SELECT weight_lb FROM ptb_stats WHERE id=".$_SESSION['user_id']."");

    if( !$result ) { 
       echo "The username you entered does not exist"; 
    } else if( $height_ft != mysql_result( $result, 0 ) ) { 
       echo "";    

         $sql = mysql_query("UPDATE ptb_stats SET height_ft='$height_ft' WHERE id=".$_SESSION['user_id'].""); 

         $sql = mysql_query("UPDATE ptb_stats SET height_in='$height_in' WHERE id=".$_SESSION['user_id'].""); 

         $sql = mysql_query("UPDATE ptb_stats SET weight_st='$weight_st' WHERE id=".$_SESSION['user_id'].""); 

         $sql = mysql_query("UPDATE ptb_stats SET weight_lb='$weight_lb' WHERE id=".$_SESSION['user_id']."");    

         mysql_query("INSERT INTO ptb_stats (user_id, height_ft) VALUES (".$_SESSION['user_id'].", ".$height_ft.")"); 

         mysql_query("INSERT INTO ptb_stats (user_id, height_in) VALUES (".$_SESSION['user_id'].", ".$height_in.")"); 

         mysql_query("INSERT INTO ptb_stats (user_id, weight_st) VALUES (".$_SESSION['user_id'].", ".$weight_st.")");

         mysql_query("INSERT INTO ptb_stats (user_id, weight_lb) VALUES (".$_SESSION['user_id'].", ".$weight_lb.")");
    }

    if( $sql ) { 
        $_SESSION['edit_done']="<div class=\"infobox-edit-done\"><strong>Thank You -</strong> Your Details were changed.</div>"; 
        header("Location: {$_SERVER['HTTP_REFERER']}");
    } else { 
        $_SESSION['edit_done2']="<div class=\"infobox-edit-done\"><strong>Oooops! -</strong> That didn't work. Try again.</div>"; 
        header("Location: {$_SERVER['HTTP_REFERER']}");
    }  
?>
4

1 に答える 1

0

ON DUPLICATE KEY UPDATEMySQL には、質問をより簡潔に解決できる更新または挿入のオプションがあります。

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

クエリは次のようになります。

$sql=mysql_query("INSERT INTO ptb_stats (user_id, height_ft) 
VALUES (".mysql_real_escape_string($_SESSION['user_id']).", "
         .mysql_real_escape_string($height_ft).") 
ON DUPLICATE KEY UPDATE user_id = ".mysql_real_escape_string($_SESSION['user_id']).");
于 2013-02-14T01:47:24.780 に答える