首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理php (explode)

处理php (explode)
EN

Stack Overflow用户
提问于 2012-05-14 21:35:44
回答 2查看 159关注 0票数 0

我正在创建一个有4列的数据库,“类型”,“兼容”,"StockLevel",“成本”。

类型可以是" battery“,兼容字段是与该电池一起工作的设备的ID。例如"1,4,9“。

我需要我的PHP做的是在数据库中查询所有在“$_POSTcompatible”行中包含兼容的“类型”。当然,这并不像X =X那么简单,因为我们首先需要(php)分解兼容字段。

我的头很痛,我仍然在努力寻找解决方案,但我会粘贴我的代码,并希望你们中的一个人能提供一些帮助。

代码语言:javascript
复制
IF ($_POST["printer"]) {

    $printerinfo_query = mysql_query("SELECT * FROM printers WHERE ID LIKE '$_POST[printer]'");
    $printerinfo_result = mysql_fetch_assoc($printerinfo_query);

    echo ("<H5>".$printerinfo_result["Model"]."</H5>");
    echo "".$printerinfo_result["Description"]."";

    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    $cartridge_query = mysql_query("SELECT * FROM cartridges");
    $cartridge_result = mysql_fetch_assoc($cartridge_query);


    $explode = $cartridge_result["Compatible"];
    $explodedata = explode(", ", $explode);
    $explode_count = count($explodedata);
    $explode_count_dec = count($explodedata);
    $explode_number = "0"; // Re-creates $explodedata[0], [1], [2] etc.. using $explodedata[$explode_number] in the loop!

    echo ("<P>Select a cartridge type &mdash;</P>");

    echo "<form action='index.php?page=printeradv' method='POST'>";


      while ($explode_count_dec > "0"):

        $while_query = mysql_query("SELECT * FROM cartridges WHERE ID LIKE '$explodedata[$explode_number]'");
        $while_result = mysql_fetch_assoc($while_query);

        echo "<input type='radio' value='".$explodedata[$explode_number]."' name='cartridge' />".$while_result["Type"]." <BR /> ";

        ++$explode_number;
        --$explode_count_dec;
      endwhile;

    echo "<input type='submit' value='Select model' />";
    echo "</form>";

}
EN

回答 2

Stack Overflow用户

发布于 2012-05-14 21:42:40

你不需要使用explode(),我也不知道你为什么要使用LIKE,而实际上你并没有使用通配符。

您可以直接使用$cartridge_result['Compatible']进行搜索,如下所示:

代码语言:javascript
复制
... WHERE ID IN('.$cartridge_result['Compatible'].')'
票数 3
EN

Stack Overflow用户

发布于 2012-05-14 21:51:28

我认为你需要添加一个额外的关系表来将你的电池与设备联系起来。这是一个非常简单的表:

关系| batteryId | deviceId

这使您可以进行简单的查询,以获得所有兼容的电池或设备。这是管理这样的多对多关系的标准实践。最终的结果是,您可以运行一次查询来确定兼容性,然后在PHP中进行的处理非常少。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10584392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档