[mysql]不能插入表使用 PHP 的查询结果

标签: sql MySQL PHP
发布时间: 2017/4/9 22:30:24
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想在我的数据库中插入到新表中的一些信息。为此我查询信息从两个表和 xref 表,然后我尝试做插入像通常做的那样。这不工作。 下面是代码,

$query = "select listaA.product_s_desc, category_name, listaA.product_desc, listaA.product_sku 
from listaA, jos_vm_category, jos_vm_product_category_xref 
where listaA.product_id = jos_vm_product_category_xref.product_id 
and  jos_vm_category.category_id = jos_vm_product_category_xref.category_id limit 10";
$result = mysql_query($query);
$row = mysql_fetch_array($result) or die;
do{
        $imagen = 'http://accesoriosazteca.mx/imagesite/'.$row['listaA.product_sku'].".png";
        mysql_query("insert into lista_importat (id, activo, sku, nombre, categoria, descripcion_corta, descripcion_larga, pedidos, mostrar_precio, imagen) 
        values ('$row['listaA.product_id']', '1', '$row['listaA.product_sku']', '$row['listaA.product_s_desc']', '', '$row['listaA.product_s_desc']', '$row['listaA.product_desc']', '0', '0', '$imagen')");
}while($row = mysql_fetch_array($result));

与上面的代码中,我得到一个空白的屏幕,和什么都不插入到新表中。有什么想法?

解决方法 1:

如果查询开始......

select listaA.product_s_desc, ...

返回一个结果集,结果集的第一列将有一个列名称 product_s_desc ,不 listaA.product_s_desc

(mysql 命令行客户端中运行该查询将演示此行为)。

到该列中的值的引用 $row :

$row['product_s_desc']

请注意,查询不返回列的名称与 listaA.product_id


几个笔记,超越回答你问的问题︰

为读者,我建议你沟 join 操作的旧学校逗号语法和它的地方,在使用 JOIN 关键字和 WHERE 子句中的联接谓词迁居为 ON 子句。我也推荐使用短表别名和也排位赛列的所有引用。例如︰

SELECT a.product_s_desc
     , c.category_name
     , a.product_desc
     , a.product_sku
  FROM listaA a
  JOIN jos_vm_product_category_xref r 
    ON r.product_id = a.product_id
  JOIN jos_vm_category c
    ON c.category_id = r.category_id
 ORDER BY 1    
 LIMIT 10
官方微信
官方QQ群
31647020