Php 如何进行高级sql表比较

Php 如何进行高级sql表比较,php,mysql,sql,Php,Mysql,Sql,我正在建立一个显示动态图表的网站,图表中的信息是从数据库收集的,获取信息的过程分为两个步骤,第一个sql步骤是获取百分比,字符串id显示百分比。 您在图像中看到的名称是主要问题,这些名称最初是通过获取字符串的id从中收集的,例如,在第一个表中,包含45%图形的字符串“Carne Estofada”以id“1”表示 为了获取字符串而不显示字符串id,我从第二个表(两列:每个id的id和名称)中进行了第二次查询,在其中我从id中获取字符串。然后我把它全部展示出来 当我编辑第一个表上的任何字段时会出

我正在建立一个显示动态图表的网站,图表中的信息是从数据库收集的,获取信息的过程分为两个步骤,第一个sql步骤是获取百分比,字符串id显示百分比。

您在图像中看到的名称是主要问题,这些名称最初是通过获取字符串的id从中收集的,例如,在第一个表中,包含45%图形的字符串“Carne Estofada”以id“1”表示

为了获取字符串而不显示字符串id,我从第二个表(两列:每个id的id和名称)中进行了第二次查询,在其中我从id中获取字符串。然后我把它全部展示出来

当我编辑第一个表上的任何字段时会出现问题,因为信息没有按任何顺序显示

总而言之,我希望能够编辑第一个表上的信息,而不会弄乱图形

查询(php)包括:


实际上,我手动对数据进行排序,但我希望它能在图形上自动排序,以便用正确的字符串显示正确的百分比。

如果我理解正确,您的动态图表将按照查询返回的顺序显示数据;幸运的是,它一直在工作,因为除非对数据进行显式排序,否则SQL不能保证结果中的任何顺序。如果是这样,继续编辑您的数据,但编辑图形后面的查询以包含
orderby
子句。只要按ID订购就足够了


如果您根本没有这样做,请编辑您的问题,并添加与生成饼图的查询相关的所有代码。(图形代码本身并不重要。)

您只需要一个查询,连接两个表,如下所示:

SELECT
    n1.nombre as nombre1, 3eso1.porcentaje1,
    n2.nombre as nombre2, 3eso1.porcentaje2,
    n3.nombre as nombre3, 3eso1.porcentaje3,
    n4.nombre as nombre4, 3eso1.porcentaje4
FROM 3eso1 
    LEFT JOIN platos n1 ON n1.menuid=3eso1.idopcion1
    LEFT JOIN platos n2 ON n2.menuid=3eso1.idopcion2
    LEFT JOIN platos n3 ON n3.menuid=3eso1.idopcion3
    LEFT JOIN platos n4 ON n4.menuid=3eso1.idopcion4

我不能发布超过3个链接,最后一张表的图片在这里,没关系;不要发布链接,花10秒钟在你的问题中键入列名。我不明白你想做什么。你已经从PHP代码中去除了很多逻辑。虽然人们通常会犯错误,没有删除足够的代码来说明问题,但您删除了太多的代码,我们无法理解您试图在这里实现的目标/您的数据是什么样子。这或多或少是我想说的,我发布了一个小编辑来进一步解释我自己哪种选择?我相信你的问题对你来说是清楚的,但请帮你自己一个忙,听从我的建议(最好在你的问题被搁置之前)。这样做很好!这就是我要找的!
SELECT
    n1.nombre as nombre1, 3eso1.porcentaje1,
    n2.nombre as nombre2, 3eso1.porcentaje2,
    n3.nombre as nombre3, 3eso1.porcentaje3,
    n4.nombre as nombre4, 3eso1.porcentaje4
FROM 3eso1 
    LEFT JOIN platos n1 ON n1.menuid=3eso1.idopcion1
    LEFT JOIN platos n2 ON n2.menuid=3eso1.idopcion2
    LEFT JOIN platos n3 ON n3.menuid=3eso1.idopcion3
    LEFT JOIN platos n4 ON n4.menuid=3eso1.idopcion4