0

爆発から出てくる配列の各部分でクエリを実行する必要があります。
今のところ、爆発から各単語をエコーアウトするだけですが、爆発内の各単語に対して次のようなクエリを実行する必要があります。

(select * from words where word = $split_phrase[$i])

実行する必要がある個別のクエリをどのように処理するのか疑問に思っています。何らかの方法で for ループと組み合わせることができますか?

他の投稿を確認しましたが、これに直接対処するものはないようです。

コード サンプル:2 つのテーブル フレーズの単語があります。

<?

/*  Table: phrases   */

$ID = 'ID'
$TARGET = 'TLP'

/*  Table: words   */

$ID_Split = 'ID';
$Word_Split = 'Word';
$WBW_Split = 'WBW';

?>


<table width="800">
<tr>
<th>Display Word</th>
</tr>

<?
/* I pass in a variable from another page which is inserted into the query */

    $phrase_query = mysql_query("SELECT * FROM phrases WHERE id=" . $_GET['id']);



/* Loop through the search results and explode the string on the column variable $Target */


    while($rows=mysql_fetch_assoc($phrase_query)) {

        $split_phrase = explode(" ", $rows[$TARGET]);



/* Loop through the string and list each word from the explode array / 
the html table in the echos is started outside the PHP tags */

    for($i = 0; $i < count($split_phrase); $i++)        {

        echo "<tr>";
        echo "<td>" .$split_phrase[$i] . "</td>";
        echo "</tr>";
                                                        }

?>

</table>
4

1 に答える 1

1

言葉を爆発させる

$words = explode(" ", $rows[$TARGET]);

エスケープして引用符を追加 (php >= 5.3)

array_walk($words, function(&$word) {$word = '"' . mysql_real_escape_string($word) . '"';});

IN条件付きでクエリを実行

mysql_query('SELECT * FROM words WHERE word IN ('. join(', ', $words) .')');

また、mysql の代わりに PDO または mysqli を使用することをお勧めします。これは非推奨です。

于 2011-11-14T14:26:19.830 に答える