0

すでに作成されているデータベースを使用していて、アクセスできますが、データベースを変更する権限がまったくありません。

クエリを使用しています

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

3つの列(、、、および)を呼び出し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、テーブルを作成する前に、このクエリを他のクエリに組み込むにはどうすればよいですか?

4

2 に答える 2

1

テーブルを印刷するときに、問題のある文字列を削除できます。

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

(削除を文字列の先頭の文字のみに制限したい場合は、preg_replaceを参照してください)

于 2013-02-22T23:42:57.237 に答える
1
$lst_search = array("%23", "%40", "%20", "q=");
$query = str_replace($lst_search, "", $row["query"]);

次に、テーブルを作成するとき$queryに代わりに使用します。$row["query"]

于 2013-02-22T23:39:08.073 に答える