1

私はMySql DBを持っており、テーブル「Klant」には列名があります:

ID
Naam
Email
Soort
Status

このクエリで列名を取得します。

$strSQL = "select column_name from information_schema.columns where table_name='Klant'";  

そして、この単純なクエリでテーブルからデータを選択しています:

$strSQL1    = "SELECT * FROM NAW.Klant";

私がしたいのは、テキストを検索し、str_replace を使用して column_names を DB のデータに置き換えたいということです。例えば:

入力するHello Naam, your email adress is Emailと、表示したいと思いますHello Robert your email adress is robert@gmail.com。そして、それをループに入れて、すべての行に対して実行します。私は現在これを使用しています:

$ID         = $row['Klant_ID'];
$Naam       = $row['Naam'];
$Email      = $row['Email'];
$Soort      = $row['Soort'];
$Naam       = $row['Status'];
$vaaw       = array("[ID]","[Naam]", "[Email]", "[Soort]", "[Status]");
$vervang    = array("$ID","$Naam", "$Email", "$Soort", "$Status");

echo str_replace($vaaw, $vervang, $message); 

これをもう使用したくない理由は、列を変更/追加/削除する必要がある場合でもコードが機能するためです。(列を変更するのが悪い考えであることはわかっていますが、決してわかりません。) また、このコードは他のテーブル/DB と連携します。

これを機能させるために多くのことを試しましたが、これを行う方法がわからず、ほぼ2日間悩まされています. 誰かがこれを行う関数または方法を知っていれば、それは非常に役に立ちます!

4

2 に答える 2

1

HamZaがコメントでリンクしたスクリプトを使用して解決しました。彼はそれを答えとして投稿していないので、他の人を助けることができると思うので、私は自分でやります。

問題を解決したコードは次のとおりです。

$connection = mysql_connect('localhost', 'root', 'pw') or die('couldn\'t connect to the database.<br>'. mysql_error());
mysql_select_db("NAW");
$strSQL1    = "SELECT * FROM Klant";
$result = mysql_query($strSQL1, $connection) or die('Something went wrong with the query.<br>'. mysql_error());
while($row = mysql_fetch_assoc($result)){
    $text = $_POST['naam'];
    foreach($row as $k => $v){
        $text = str_replace('['.$k.']', $v, $text);
    }
    echo $text;
    echo "<br>";
}
于 2013-06-05T11:07:15.020 に答える