在Joomla数据库的另一个表中使用jos_content id列

时间:2014-03-21 21:08:53

标签: mysql joomla

我创建了连接到Joomla默认数据库的Joomla文章,我想创建一个新表,我将存储这些页面的结果(文章是测试)。

<?php
$db =& JFactory::getDBO(); 
$query = "INSERT INTO jos_results(id, question1) VALUES ((select id from jos_content), '$answers')"; 
$db->setQuery($query); 
$db->query();
?>

如上所述,我创建了一个新表jos_results,我想要的是在这个表中我有一个列问题1,我将存储来自变量$ answers的文本数据。另一列是id。这个id我试图成为默认jos_content的列。

jos_content在Joomla中存储文章,并且它具有auto_increment列标识。我想当用户打开一些文章,并在那里填写他们的问题时,应该创建一个新行,它将具有一个id(实际上是文章中打开的id)和一个问题1列,其中的答案来自post变量。

Mysql看起来像这样:

'jos_results' (
  `userid` int(11) NOT NULL AUTO_INCREMENT,
  `id` int(11) DEFAULT NULL,
  `question1` text,
  PRIMARY KEY (`userid`),
  KEY `id` (`id`)
)

某处出现错误:( 子查询返回超过1行SQL = INSERT INTO jos_results(id,question1)VALUES((从jos_content中选择id),'我的回答在这里等等......')

2 个答案:

答案 0 :(得分:1)

如上所述,您要求jos_content表上的所有id。您应该在子查询中添加WHERE以仅返回一个值。

$query = "INSERT INTO jos_results(id, question1) VALUES ((select id from jos_content WHERE <your_condition>), '$answers')"; 

顺便说一句,在使用这种方式之前,你应该清理$ answers。

问候!

答案 1 :(得分:0)

在SELECT子句中添加带有COUNT()的GROUP BY子句以查找重复项。