我创建了连接到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),'我的回答在这里等等......')
答案 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子句以查找重复项。