2015-04-02 63 views
0

我正在嘗試創建一個PHP表單來將記錄插入數據庫,其中記錄具有條件開始和結束日期。我有兩個單選按鈕設置在這裏你可以選擇:帶有條件字段的PHP表單

  1. 沒有結束日期
  2. 選擇了一系列的被concated到開始和結束日期和時間日期和時間選項。

我有Javascript設置,所以默認情況下你只能看到第一個選項。如果您選擇第二個單選按鈕,則出現附加字段。當你點擊提交按鈕,你會得到以下錯誤:

Column count doesn't match value count at row 1

有人能告訴我在標記中看到什麼錯誤嗎?

下面是頁面的代碼:

<?php require_once('../Connections/mysqlconnect.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"] == "form1")) { 
    $insertSQL = sprintf("INSERT INTO keywords (id, station, keyword, url, target, start_date, end_date) VALUES (%s, %s, %s, %s, %s, %s)", 
         GetSQLValueString($_POST['id'], "int"), 
         GetSQLValueString($_POST['station'], "text"), 
         GetSQLValueString($_POST['keyword'], "text"), 
         GetSQLValueString($_POST['url'], "text"), 
         GetSQLValueString($_POST['target'], "text"), 
         GetSQLValueString($_POST['unlimited'], "text"), 
         GetSQLValueString(date("Y-m-d H:i:s", strtotime($_POST['startDay'] . $_POST['start-hour'] . ':' . $_POST['start-minute'] . $_POST['start-meridian'])), "date"), 
         GetSQLValueString(date("Y-m-d H:i:s", strtotime($_POST['endDay'] . $_POST['end-hour'] . ':' . $_POST['end-minute'] . $_POST['end-meridian'])), "date")); 

    mysql_select_db($database_mysqlconnect, $mysqlconnect); 
    $Result1 = mysql_query($insertSQL, $mysqlconnect) or die(mysql_error()); 

    $insertGoTo = "manage.php?mess=3"; 
    if (isset($_SERVER['QUERY_STRING'])) { 
    $insertGoTo .= (strpos($insertGoTo, '?')) ? "&" : "?"; 
    $insertGoTo .= $_SERVER['QUERY_STRING']; 
    } 
    header(sprintf("Location: %s", $insertGoTo)); 
} 

mysql_select_db($database_mysqlconnect, $mysqlconnect); 
$query_Recordset1 = "SELECT * FROM keywords"; 
$Recordset1 = mysql_query($query_Recordset1, $mysqlconnect) or die(mysql_error()); 
$row_Recordset1 = mysql_fetch_assoc($Recordset1); 
$totalRows_Recordset1 = mysql_num_rows($Recordset1); 
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Ad Inventory:: Add New Campaign</title> 

     <script type="text/javascript" src="http://yourligas.yourli.com/datepicker/jquery-ui-1.10.4.custom/js/jquery-1.10.2.js"></script> 
     <script type="text/javascript" src="http://yourligas.yourli.com/datepicker/jquery-ui-1.10.4.custom/js/jquery-ui-1.10.4.custom.js"></script> 
     <script type="text/javascript" src="http://yourligas.yourli.com/datepicker/jquery-ui-1.10.4.custom/js/jquery-ui-.custom.min.js"></script> 
     <script src="../SpryAssets/SpryValidationTextField.js" type="text/javascript"></script> 
<link rel="stylesheet" type="text/css" media="screen" href="http://yourligas.yourli.com/datepicker/jquery-ui-1.10.4.custom/css/ui-lightness/jquery-ui-1.10.4.custom.css"> 
     <link rel="stylesheet" type="text/css" media="screen" href="http://yourligas.yourli.com/datepicker/jquery-ui-1.10.4.custom/css/ui-lightness/jquery-ui-1.10.4.custom.min.css"> 
     <script> 
    $(function() { 
    $("#startdatepicker").datepicker({ 
     showOn: "button", 
     buttonImage: "http://yourligas.yourli.com/datepicker/jquery-ui-1.10.4.custom/development-bundle/demos/images/calendar.gif", 
     buttonImageOnly: true, 
     changeMonth: true, 
     changeYear: true 
    }); 
    }); 
    $(function() { 
    $("#enddatepicker").datepicker({ 
     showOn: "button", 
     buttonImage: "http://yourligas.yourli.com/datepicker/jquery-ui-1.10.4.custom/development-bundle/demos/images/calendar.gif", 
     buttonImageOnly: true, 
     changeMonth: true, 
     changeYear: true 
    }); 
    }); 
    </script> 



<style> 
html,body{font-family:Arial, Helvetica, sans-serif;font-size:14px;margin:0 auto;background:#EFEFEF;} 
h1{margin-left:0;font-size:36px;} 
a{text-decoration:none;color:#036;font-weight:bold;font-size:16px;} 
a:visited{color:#036} 
td{ 
    font-family: Arial, Helvetica, sans-serif; 
    color: #585858; 
} 
tr.heading, .heading a{color:#fff; font-size:14px;font-weight:bold} 
tr.heading td{background:#036!important;color:#ffffff;} 
tr.alt td { 
    background-color: #B9DCFF; 
} 
tr td { 
    background-color: #D7EBFF;padding:10px; 
} 
.nav{list-style:none;margin:0;padding:0;text-align:right;} 
.nav li{display:inline-block;padding:0 10px;} 
.confirm-message{ 
    width:800px; 
    margin:0 auto; 
    border:1px solid #004A0D; 
    padding:15px; 
    text-align:center; 
    background-color: #B9FFC6; 
} 
.error{ 
    color:#ff0000; 
    font-style:italic; 
} 
</style> 

<link href="../SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css" /> 
</head> 

<body> 
<p><h1 align="center" style="font-size:30px;">CONNOISSEUR LI:: Keyword Management</h1></p> 
<p>&nbsp;</p> 
<?php 
// define variables and set to empty values 
$campaignErr = $startdateErr = $enddateErr = ""; 
$campaign = $startdate = $enddate = ""; 

if ($_SERVER["REQUEST_METHOD"] == "POST") 
{ 

    if (empty($_POST["campaign"])) 
    {$campaignErr = "Please Specify a Campaign Name!";} 
    else 
    {$campaign = test_input($_POST["campaign"]);} 

    if (empty($_POST["startDay"])) 
    {$startdateErr = "Please Specify a Start Date!";} 
    else 
    {$startdate = test_input($_POST["startDay"]);} 

    if (empty($_POST["endDay"])) 
    {$enddateErr = "Please Specify an End Date!";} 
    else 
    {$enddate = test_input($_POST["endDay"]);} 

} 

?> 

<form action="<?php echo $editFormAction; ?>" method="post" name="form1" id="form1" style="font-size:12px;"> 
    <table align="center" border="0" cellpadding="10" cellspacing="0" style="margin:0 auto;"> 
    <tr valign="middle"> 
     <td nowrap="nowrap" align="right">Station:</td> 
     <td> 
     <select name="station" style="font-size:12px;"> 
     <option value="WBZO" selected="selected">WBZO</option> 
     <option value="WHLI">WHLI</option> 
     <option value="WKJY">WKJY</option> 
     <option value="WALK">WALK</option> 
     <option value="WWSK">WWSK</option> 
     </select></td> 
    </tr> 
    <tr valign="middle"> 
     <td nowrap="nowrap" align="right">Keyword:</td> 
     <td><span id="sprytextfield1"> 
     <input type="text" name="keyword" value="" size="62" required="required" style="font-size:12px;" /> 
     <span class="textfieldRequiredMsg">Please specify a keyword!</span></span> 
     </td> 
    </tr> 
    <tr valign="middle"> 
     <td nowrap="nowrap" align="right">URL:</td> 
     <td><span id="sprytextfield1"> 
     <input type="text" name="url" value="" size="62" required="required" style="font-size:12px;" maxlength="2083" /> 
     <span class="textfieldRequiredMsg">Please specify a URL!</span></span> 
     </td> 
    </tr> 
    <tr valign="middle"> 
     <td nowrap="nowrap" align="right"></td> 
     <td> 
     <input name="target" type="checkbox" value="blank" /> Open Link in New Window? 

      </td> 
    </tr> 
<tr valign="middle"> 
<td></td> 
<td> 



<div> 

    <input type="radio" name="schedule" value="true" class="schedule" checked="checked" /> No End Date Yet<br /><br /> 

    <input type="radio" name="schedule" value="false" class="schedule" /> Schedule a Start and End Date 
</div> 

</td> 
</tr> 
<tr valign="middle" id="start-schedule"> 
<td>Start Date:</td> 
<td> 
<span id="sprytextfield2"> 
<input name="startDay" id="startdatepicker" style="font-size:12px;" /><style>.ui-datepicker-trigger{position:relative;left:3px;top:2px;}</style> 
&nbsp;&nbsp;@&nbsp; 
<?php 
echo "<select name=\"start-hour\" style='width:50px'>"; 
$i = 1; 
while ($i <= 12) { 
    $i = sprintf("%02d",$i); 
    echo "<option value=".$i." selected='12'>".$i."</option>"; 
    $i++; 
} 
echo "</select>"; 
echo ":&nbsp;"; 
echo "<select name=\"start-minute\" style='width:50px'>"; 
$i = 0; 
while ($i <= 59) { 
    $i = sprintf("%02d",$i); 
    echo "<option value=".$i.">".$i."</option>"; 
    $i++; 
} 
echo "</select>"; 

?> 


&nbsp; 
<select name="start-meridian" style="width:50px;font-size:12px;"><option value="am" selected="selected">AM</option><option value="pm">PM</option></select> 
<span class="textfieldRequiredMsg">Please specify a start date!</span> 
<span class="textfieldInvalidFormatMsg">Invalid date format. Please specify your date as mm/dd/yyyy!</span> 
</span> 

</td> 
</tr> 
<tr valign="middle" id="end-schedule"> 
<td>End Date:</td> 
<td> 
<span id="sprytextfield3"> 
<input name="endDay" id="enddatepicker" style="font-size:12px;" /><style>.ui-datepicker-trigger{position:relative;left:3px;top:2px;}</style> 
&nbsp;&nbsp;@&nbsp; 
<select name="end-hour" style="width:50px"> 
<option value="1">1</option> 
<option value="2">2</option> 
<option value="3">3</option> 
<option value="4">4</option> 
<option value="5">5</option> 
<option value="6">6</option> 
<option value="7">7</option> 
<option value="8">8</option> 
<option value="9">9</option> 
<option value="10">10</option> 
<option value="11" selected="selected">11</option> 
<option value="12">12</option> 
</select> 

<?php 
echo ":&nbsp;"; 
echo "<select name=\"end-minute\" style='width:50px'>"; 
$i = 0; 
while ($i <= 59) { 
    $i = sprintf("%02d",$i); 
    echo "<option value=".$i." selected=\"59\">".$i."</option>"; 
    $i++; 
} 
echo "</select>"; 

?> 


&nbsp; 
<select name="end-meridian" style="width:50px;font-size:12px;"><option value="am">AM</option><option value="pm" selected="selected">PM</option></select> 
<span class="textfieldRequiredMsg">Please specify an end date!</span> 
<span class="textfieldInvalidFormatMsg">Invalid date format. Please specify your date as mm/dd/yyyy!</span> 
</span> 


</td> 
</tr> 
    <tr valign="baseline"> 
     <td nowrap="nowrap" align="right">&nbsp;</td> 
     <td align="right"><input type="submit" value="Insert" style="font-size:14px;padding:3px 5px;" /></td> 
    </tr> 
    </table> 
    <input type="hidden" name="id" value="" /> 
    <input type="hidden" name="MM_insert" value="form1" /> 
</form> 
<p>&nbsp;</p> 
<p align="center"><b><a href="javascript: history.go(-1)">&crarr; Cancel</a></b></p> 

<script> 
$(document).ready(function(){ 
    $("#start-schedule").css("display","none"); 
     $(".schedule").click(function(){ 
     if ($('input[name=schedule]:checked').val() == "false") { 
      $("#start-schedule").slideDown("fast"); //Slide Down Effect 
     } else { 
      $("#start-schedule").slideUp("fast"); //Slide Up Effect 
     } 
    }); 
    $("#end-schedule").css("display","none"); 
     $(".schedule").click(function(){ 
     if ($('input[name=schedule]:checked').val() == "false") { 
      $("#end-schedule").slideDown("fast"); //Slide Down Effect 
     } else { 
      $("#end-schedule").slideUp("fast"); //Slide Up Effect 
     } 
    }); 
}); 
</script> 

<script type="text/javascript"> 
<!-- 
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1"); 
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "date", {format:"mm/dd/yyyy", validateOn:["blur"]}); 
var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "date", {format:"mm/dd/yyyy", validateOn:["blur"]}); 
//--> 
</script> 
</body> 
</html> 

<?php 
mysql_free_result($Recordset1); 
?> 

回答

0

我很抱歉,但你的代碼是不好的(一點點)。閱讀和理解你的代碼在做什麼很糟糕。您需要按邏輯部分分割代碼。一部分是由php寫的服務器端。爲了最好的使用PDO。前部只需要包含htmlcssjavascript在其他文件中幷包含h​​tml。或者,你可以使用一些框架來完成所有這些工作,而不是自己寫所有的東西。

相關問題