2012-01-27 111 views
0

我有一些链接,显示在iframe中的数据与数据库 我正在获取这个数据与查询字符串的帮助下临时数据的帮助下全局临时表创建失败

与链接的页面是

<style type="text/css"> 
a 
{ 
    text-decoration:none; 
} 
.Menu 
{ 
    width:150px; 
    float:left; 
} 
.fr 
{ 
    width:800px; 
    height:800px; 
    float:right 
} 

</style> 
<div class="Menu"> 
<?php 
mysql_connect("localhost","dbname","password"); 
mysql_select_db("dbname"); 
$sql="select * from NSEIndices_latest"; 
$result=mysql_query($sql); 
while($row=mysql_fetch_array($result)) 
{ 
$tpnt=$row['TickerPlantCode']; //nse indice code 
$indexname=$row['IndexName']; //nse indice index name 
?> 
    <tr> 
    <td><a href="http://mastertrade.in/master/wpfiles/gtnsegainers.php?tpnt=<?php echo $tpnt;?>&indexname=<?php echo $indexname;?>" target="fr"><?php echo $indexname;?></a><br></td> 
    </tr> 
    <?php }?> 
    </div> 
    <div class="fr"> 
    <iframe height="780" width="780" scrolling="no" name="fr"></iframe> 
    </div> 

现在从上述页面链接中获取数据与查询字符串在该网页的collectiong从各种表 数据创建的临时表的帮助,但我得到的错误,而从该临时表中检索数据

与临时表的页面是

<table class="table" cellspacing="0" width="100%"> 
    <tr> 
    <td align="left" valign="middle" style="border:#e7e7e7 1px solid; background-color:#f9f9f9;">Company Name 
     </th> 
    <td align="center" valign="middle" style="border:#e7e7e7 1px solid; background-color:#f9f9f9; background-color:#f9f9f9;">High 
     </th> 
    <td align="center" valign="middle" style="border:#e7e7e7 1px solid; background-color:#f9f9f9; background-color:#f9f9f9;">Low 
     </th> 
    <td align="center" valign="middle" style="border:#e7e7e7 1px solid; background-color:#f9f9f9; background-color:#f9f9f9;">Last Price 
     </th> 
    <td align="center" valign="middle" style="border:#e7e7e7 1px solid; background-color:#f9f9f9; background-color:#f9f9f9;">Prv Close 
     </th> 
    <td align="center" valign="middle" style="border:#e7e7e7 1px solid; background-color:#f9f9f9; background-color:#f9f9f9;">Change 
     </th> 
    <td align="center" valign="middle" style="border:#e7e7e7 1px solid; background-color:#f9f9f9; background-color:#f9f9f9;">%Gain 
     </th> 
    </tr> 
<?php 
mysql_connect("localhost","dbname","password"); 
mysql_select_db("dbname"); 
$tpnt=$_GET['tpnt']; 
$indexname=$_GET['indexname']; 
echo "1".$indexname. "<br>"; 
$query="SELECT nsepricequotes_latest.Symbol, nsepricequotes_latest.CompanyName, nsepricequotes_latest.HighPrice, nsepricequotes_latest.LowPrice, nsepricequotes_latest.LastTradedPrice, nsepricequotes_latest.ClosePrice, nsepricequotes_latest.NetChange, nsepricequotes_latest.PercentChange, nse_index_constituents.Tickerplant_index_code,nse_index_constituents.NSE_Index_Name 
FROM nsepricequotes_latest, nse_index_constituents 
WHERE nsepricequotes_latest.TickerPlantCode = nse_index_constituents.TickerPlant_scrip 
AND PercentChange >0 
ORDER BY PercentChange DESC "; 
$result=mysql_query($query); 
echo "2".$indexname. "<br>"; 
while($row1=mysql_fetch_array($result)) 
{ 
$Symbol1=$row1['Symbol']; 
$CompanyName1=$row1['CompanyName']; 
$HighPrice1=$row1['HighPrice']; 
$LowPrice1=$row1['LowPrice']; 
$LastTradedPrice1=$row1['LastTradedPrice']; 
$ClosePrice1=$row1['ClosePrice']; 
$NetChange1=$row1['NetChange']; 
$PercentChange1=$row1['PercentChange']; 
$Tickerplant_index_code1=$row1['Tockerplant_index_code1']; 
$NSE_Index_Name1=$row1['NSE_Index_Name']; 
} 
echo "3".$indexname. "<br>"; 
$tbl="create GLOBAL TEMPORARY TABLE temppice(Symbol varchar(100),CompanyName varchar(200),HighPrice float(50),LowPrice float(50),LastTradedPrice float(50),ClosePrice float(50),NetChange float(50),PercentChange float(50),Tickerplant_index_code varchar(100),NSe_Index_Name varchar(100)) ON COMMIT DELETE ROWS;"; 
$res=mysql_query($tbl); 
if (!$res) { die('Temporary table creation failed: ' . mysql_error()); } 
if(mysql_error())die(mysql_error()); 
$intbl="Insert into temppice values('$Symbol1','$CompanyName1','$HighPrice1','$LowPrice1','$LastTradedPrice','$ClosePrice1','$NetChange1','$PercentChange1','$Tockerplant_index_code1','$NSE_Index_Name1')"; 
mysql_query($intbl); 
if(mysql_error())die(mysql_error()); 
echo "4".$indexname. "<br>"; 
$query1="Select * from temppice where NSE_Index_Name=$indexname"; 
$result1=mysql_query($query1); 
//if(mysql_error())die(mysql_error()); 
mysql_connect("localhost","dbname","password"); 
mysql_select_db("dbname"); 
while($row=mysql_fetch_array($result1, MYSQL_BOTH)) 
{ 
$symbol=$row['Symbol']; 
$CompanyName=$row['CompanyName']; 
$HighPrice=$row['HighPrice']; 
$LowPrice=$row['LowPrice']; 
$previousclose=$row['LastTradedPrice']; 
$ClosePrice=$row['ClosePrice']; 
$netChange=$row['NetChange']; 
$percentagechange=$row['PercentChange']; 
?> 

    <tr> 
    <td align="left" valign="middle" style="border-right:#e7e7e7 1px solid; border-left:#e7e7e7 1px solid ;border-bottom:#e7e7e7 1px solid;"><?php echo $CompanyName;?></td> 
    <td align="center" valign="middle" style="border-right:#e7e7e7 1px solid; border-left:#e7e7e7 1px solid ;border-bottom:#e7e7e7 1px solid;"><?php echo $HighPrice;?></td> 
    <td align="center" valign="middle" style="border-right:#e7e7e7 1px solid; border-left:#e7e7e7 1px solid ;border-bottom:#e7e7e7 1px solid;"><?php echo $LowPrice;?></td> 
    <td align="center" valign="middle" style="border-right:#e7e7e7 1px solid; border-left:#e7e7e7 1px solid ;border-bottom:#e7e7e7 1px solid;"><?php echo $previousclose; ?></td> 
    <td align="center" valign="middle" style="border-right:#e7e7e7 1px solid; border-left:#e7e7e7 1px solid ;border-bottom:#e7e7e7 1px solid;"><?php echo $ClosePrice;?></td> 
    <td align="center" valign="middle" style="border-right:#e7e7e7 1px solid; border-left:#e7e7e7 1px solid ;border-bottom:#e7e7e7 1px solid;"><?php echo $netChange;?></td> 
    <td align="center" valign="middle" style="border-right:#e7e7e7 1px solid; border-left:#e7e7e7 1px solid ;border-bottom:#e7e7e7 1px solid;"><?php echo $percentagechange;?></td> 
    </tr> 
    <?php } ?> 
</table> 

错误我得到是

临时表创建失败:你在你的SQL语法 有一个错误;检查对应于你的MySQL服务器版本 为正确的语法在1号线

回答

0

According to the manual的使用近 'GLOBAL TEMPORARY TABLE temppice(符号为varchar(100),公司名称为varchar(200),几点措施' 手册MySQL的CREATE TABLE语法不支持global关键字的appears to be an Oracle thing同样我相信,ON COMMIT DELETE ROWS条款是Oracle语法,不会在MySQL的工作,要么部分

如果除去这两部分,它可能会工作:。

$tbl=<<<SQL 
create TEMPORARY TABLE temppice (
    Symbol     varchar(100), 
    CompanyName   varchar(200), 
    HighPrice    float(50), 
    LowPrice    float(50), 
    LastTradedPrice  float(50), 
    ClosePrice    float(50), 
    NetChange    float(50), 
    PercentChange   float(50), 
    Tickerplant_index_code varchar(100), 
    NSe_Index_Name   varchar(100) 
); 
SQL; 
+0

得到相同的错误 – Manoj 2012-01-27 06:26:19

+0

我不认为我看到任何其他问题的语句的语法。你确定你得到_exact same_error?它还在说'靠近'全球时间表'吗?如果是这样,你确定你删除了该部分的声明?它是否会在代码的其他地方再次碰到不受支持的语法的另一个实例? – 2012-01-27 23:11:12