I need some help with a DATE_ADD problem.
I can't seem to run a query with DATE_ADD(date, INTERVAL expr type)
where expr and type are dynamic.
It works fine with date as dynamic.
I am attempting to add 1 year to 2004-04-15 for a DueDate of 2005-04-15
and add 3 months to 2004-03-10 for a DueDate of 2004-06-10.

Field Names:
PlantName, Unit, TagName, CalDate, nPeriod 

Sample Data from Records:
Valmont, 5, FCV96008, 2004-04-15, 1 Year 
Valmont, 5, FT0701, 2004-03-10, 3 Month 

This Works: (but it adds 1 year to both records)
$qry = "SELECT PlantName, Unit, TagName, CalDate, nPeriod, 
        DATE_ADD(CalDate, INTERVAL 1 Year) AS DueDate FROM tblTemp";
Note: "1 Year" is static.

This Works: (but it adds 3 months to both records)
$qry = "SELECT PlantName, Unit, TagName, CalDate, nPeriod, 
        DATE_ADD(CalDate, INTERVAL 3 Month) AS DueDate FROM tblTemp";
Note: "3 Month" is static.

This Fails: 
$qry = "SELECT PlantName, Unit, TagName, CalDate, nPeriod, 
        DATE_ADD(CalDate, INTERVAL nPeriod) AS DueDate FROM tblTemp";
Note: nPeriod is dynamic and contains '1 Year' with FCV96008
 and '3 Month' with FT0701
Warning message:
Warning: mysql_num_fields(): supplied argument is not a valid MySQL result resource 

I have also split nPeriod in Pexpr and Ptype using the MID() function 
and placed them appropriately but that also fails.
I have changed the data to all caps (YEAR and MONTH) but it also fails.

General server information: July 15, 2004
Operating system: Linux 
Kernel version: 2.4.26 
Apache version: 1.3.31 (Unix) 
PERL version: 5.8.0 
Path to PERL: /usr/bin/perl 
Path to sendmail: /usr/sbin/sendmail 
PHP version: 4.3.7 
MySQL version: 4.0.18-standard 

I would appreciate any help.
Thank you,
Gerard Gilliland
[EMAIL PROTECTED]


// Table definition:
  $tblName = "tblTemp";

  $tblDef = "PlantName VARCHAR(50), ";
  $tblDef .= "Unit VARCHAR(10), ";
  $tblDef .= "TagName VARCHAR(255), ";
  $tblDef .= "CalDate DATE, ";
  $tblDef .= "nPeriod VARCHAR(50) ";
 
  if(!mysql_query("CREATE TABLE $tblName ($tblDef)"))
    die ('Cannot Create Table $tblName ' . mysql_error());

// Table Data:
  if(!mysql_query("INSERT INTO $tblName VALUES(
    'Valmont', '5', 'FCV96008', '2004-04-15', '1 Year')"))
    die ('Cannot Insert into $tblName ' . mysql_error());
  if(!mysql_query("INSERT INTO $tblName VALUES(
    'Valmont', '5', 'FT0701', '2004-03-10', '3 Month')"))
    die ('Cannot Insert into $tblName ' . mysql_error());
 

Reply via email to