0

最初に、このページが読み込まれるたびに、コメントがない場合は「1969年12月31日の午後5時にコメント」が表示され、コメントが送信されると、「列数が行1の値数と一致しません」と表示されます。コメントはこんな感じ

id int(11)
comment_date datetime
first_name varchar(50)
last_name varchar(50)
content varchar(500)
post_id int(11)

  <?php require_once('Connections/Main.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
  if (PHP_VERSION < 6) {
    $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch ($theType) {
    case "text":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;    
    case "long":
    case "int":
      $theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case "double":
      $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case "date":
      $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
      break;
    case "defined":
      $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
      break;
  }
  return $theValue;
}
}

$editFormAction = $_SERVER['PHP_SELF'];
if (isset($_SERVER['QUERY_STRING'])) {
  $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form")) {
  $insertSQL = sprintf("INSERT INTO blog_comments (first_name, last_name, content, post_id) VALUES (%s, now(), %s, %s, %s)",
                       GetSQLValueString($_POST['first_name'], "text"),
                       GetSQLValueString($_POST['last_name'], "text"),
                       GetSQLValueString($_POST['content'], "text"),
                       GetSQLValueString($_POST['post_id'], "int"));

  mysql_select_db($database_Main, $Main);
  $Result1 = mysql_query($insertSQL, $Main) or die(mysql_error());
}

$colname_getSinglePost = "-1";
if (isset($_GET['post_id'])) {
  $colname_getSinglePost = $_GET['post_id'];
}
mysql_select_db($database_Main, $Main);
$query_getSinglePost = sprintf("SELECT post_id, post_date, post_img, content, tags, post_title FROM blog_posts WHERE post_id = %s LIMIT 1", GetSQLValueString($colname_getSinglePost, "int"));
$getSinglePost = mysql_query($query_getSinglePost, $Main) or die(mysql_error());
$row_getSinglePost = mysql_fetch_assoc($getSinglePost);
$totalRows_getSinglePost = mysql_num_rows($getSinglePost);

$maxRows_getSingleComments = 20;
$pageNum_getSingleComments = 0;
if (isset($_GET['pageNum_getSingleComments'])) {
  $pageNum_getSingleComments = $_GET['pageNum_getSingleComments'];
}
$startRow_getSingleComments = $pageNum_getSingleComments * $maxRows_getSingleComments;

$colname_getSingleComments = "-1";
if (isset($_GET['post_id'])) {
  $colname_getSingleComments = $_GET['post_id'];
}
mysql_select_db($database_Main, $Main);
$query_getSingleComments = sprintf("SELECT id, first_name, comment_date, last_name, content, post_id FROM blog_comments WHERE post_id = %s", GetSQLValueString($colname_getSingleComments, "int"));
$query_limit_getSingleComments = sprintf("%s LIMIT %d, %d", $query_getSingleComments, $startRow_getSingleComments, $maxRows_getSingleComments);
$getSingleComments = mysql_query($query_limit_getSingleComments, $Main) or die(mysql_error());
$row_getSingleComments = mysql_fetch_assoc($getSingleComments);

if (isset($_GET['totalRows_getSingleComments'])) {
  $totalRows_getSingleComments = $_GET['totalRows_getSingleComments'];
} else {
  $all_getSingleComments = mysql_query($query_getSingleComments);
  $totalRows_getSingleComments = mysql_num_rows($all_getSingleComments);
}
$totalPages_getSingleComments = ceil($totalRows_getSingleComments/$maxRows_getSingleComments)-1;
?>

//郵便番号...

//コメントコード=

<?php do { ?>
            <div id="comments" style="border-bottom:1px solid #000; margin-bottom:3px;">
            <?php $row_getSingleComments = mysql_fetch_assoc($getSingleComments); ?>
            <div class="single"> 
<span class="author"><?php echo $row_getSingleComments['first_name']; ?> <?php echo $row_getSingleComments['last_name'];?> commented on <?php $phpdate = strtotime($row_getSingleComments['comment_date']);
$mysqldate = date('F j, Y',$phpdate); echo $mysqldate; ?> at <?php $mysqltime = date('g:i A',$phpdate);  echo $mysqltime; ?></span><br />
<?php echo $row_getSingleComments['content']; ?>
</div>
            <?php } while ($row_getSingleComments = mysql_fetch_assoc($getSingleComments)); ?>
          <p>Add a Comment</p>
          <form method="POST" action="<?php echo $editFormAction; ?>" name="form">
            <p> First Name
              <input type="text" name="first_name" />
              <br/>
              Last Name
              <input type="text" name="last_name" />
              <textarea name="content" cols="60" rows="15"></textarea>
            </p>
            <input type="hidden" value="<?php echo $colname_getSinglePost ?>" name="post_id" />
            <input type="submit" name="submit" id="submit" value="Submit" style="float:right;" />
            <input type="hidden" name="MM_insert" value="form" />
          </form>
        </div>
        </div>
        </div>
    </div><!-- end #content -->
<?php mysql_free_result($getSinglePost);

mysql_free_result($getSingleComments);?>
4

1 に答える 1

0

SQLフィールドが入力と一致しません。適切なフィールドに日付を入力していない場合は、次のように変更してください。

INSERT INTO blog_comments (first_name, comment_date, last_name, content, post_id) VALUES (%s, now(), %s, %s, %s)
于 2012-05-04T18:12:42.380 に答える