【问题标题】:I need to remove some characters from a SQL field without altering database我需要在不更改数据库的情况下从 SQL 字段中删除一些字符
【发布时间】:2013-02-08 16:31:17
【问题描述】:

我正在使用一个已经创建的数据库,我可以访问,但根本没有更改数据库的权限。

我正在使用查询

select last_count, query, job_id from twitterinblack46.job where job_id in ('.$job_id_all.') order by last_count desc; 

调用三列(last_countqueryjob_id)并将它们显示在表格中。

此查询按我的意愿工作,但唯一的问题是query 列显示的数据前面有“%23”、“%40”、“%20”或“q=”所需的数据。

在显示表格之前,我需要弄清楚如何去除这些字符串。

这是用于生成表的while语句:

while($row = mysql_fetch_array($result)){
    echo"<tr>";
    echo "<td>" . $row["job_id"] . "</td>";
    echo "<td>" . $row["last_count"] . "</td>";
    echo "<td>" . $row['query'] . "</td>";
    echo "<tr>";
}

echo "</table>";

我创建了这个查询:

select replace(replace(replace(REPLACE(query,'%23', ''),'%40',''),'q=',''),'%20','') from job; 

要摆脱这些字符,它可以根据我的需要完美运行,但是如何在创建表之前将此查询合并到我的另一个 $result 中?

【问题讨论】:

  • 我不太明白你的问题。你使用什么语言?如果 php 考虑 urldecode() 提示
  • 我正在使用php访问SQL数据库。
  • 那么你为什么不使用 urldecode 之类的东西来处理你的数据呢?

标签: php mysql sql replace html-table


【解决方案1】:

您可以在打印表格时删除有问题的字符串:

echo "<td>" . str_replace(array('%23', '%40', '%20"', 'q='), '', $row['query']) . "</td>";

(如果您想将删除限制为仅删除字符串开头的字符,您可以查看preg_replace

【讨论】:

  • 如果您只想删除字符串中的第一个字符,还可以为str_replace 指定一个额外的等于1 个参数的count
  • 嘿,还有一件事,我可以使用 prey_replace 来去掉 last_count 列中数字前面的 0,还是不能与 int 一起使用?
【解决方案2】:
$lst_search = array("%23", "%40", "%20", "q=");
$query = str_replace($lst_search, "", $row["query"]);

然后在创建表时使用$query代替$row["query"]

【讨论】:

  • 这不起作用,因为我要求用户输入尽可能多的作业 ID,用逗号分隔,然后我创建这些 ID 的数组以添加到查询中。
  • @Pstivala7 我不明白。您说您只有query 列的问题。只需在您的 while 语句之前添加上面的代码并在代码中使用 $query 而不是 $row["query"]..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-01
  • 2016-04-26
  • 2019-11-20
  • 1970-01-01
  • 2018-03-14
相关资源
最近更新 更多