减少一些MYSQL结果。

时间:2012-01-09 15:46:55

标签: php mysql json

我需要一些帮助,从我的数据库返回的路径中删除一行。

" ImagePath"的结果在数据库中返回/ share / images / Gif / XXX / XXXXXX /(XX是实际返回的填充物)

我需要切断" / share / images /"从ImagePath的结果,所以我会得到/ Gif / XXX / XXXXXX /

原因是数据库的这个实例是单向的>从具有不同图像位置的另一台服务器更新,所以我不想通过并从数据库中删除这些行,因为下次更新它会恢复到另一条路径我只是想从结果中删除这些行。

<?php

        define('INCLUDE_CHECK',1);
        require "connect.php";
        require_once("class.php");

        mb_internal_encoding("UTF-8");

         // $product_id = intval($_GET['product']); //no default
            $UPC = intval($_GET['upc']); //no default


        $result = mysql_query("SELECT ImagePath, AlphaName, brand_name, FullName, ingredients FROM Images, Products WHERE ImageType='gif' AND images.ProductID = products.ProductID AND ViewCode='CF' AND products.UPC = '$UPC'");
        $count=mysql_affected_rows();

        $objJSON=new mysql2json(); 
        print(trim($objJSON->getJSON($result,$count)));


            /* disconnect from the db */
            @mysql_close($link);

        ?>

2 个答案:

答案 0 :(得分:3)

你总是可以做substring

select substring(imagepath, 14) as ImagePath...

replace,如果您的ImagePath值不完全相同:

select replace(imagepath, '/share/images/', '') as ImagePath...

答案 1 :(得分:0)

如果您想使用PHP,请使用str_replace()

$image = str_replace('/share/images/', '', $db_row['imagepath']);

如果你想在MySQL中使用REPLACE()(我的推荐)。

SELECT REPLACE(imagepath, '/share/images/', '') AS imagepath FROM table;

注意:虽然随着时间的推移会自行解决,但在代码中执行此操作并不直观。您应该直接更新您的记录。特别是如果您的数据是从较旧的服务器配置迁移的。修复源头。否则你正在打补丁。