0

MySQLデータベースに次のようなテーブルがあります。

Table: VAAW
Columns:
ID  int(11) PK AI
Voornaam    varchar(45) 
Achternaam  varchar(45) 
Adres   varchar(45) 
Woonplaats  varchar(45) 

私は次のphpコードでこのテーブルを使用しています:

$strSQL     = "SELECT * FROM NAW.VAAW";
$objQuery   = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
$Voornaam   = $objResult["Voornaam"];
$Achternaam = $objResult["Achternaam"];
$Adres      = $objResult["Adres"];
$Woonplaats = $objResult["Woonplaats"];

$string     = $_POST['naam'];

$vaaw       = array("(voornaam)", "(achternaam)", "(woonplaats)", "(adres)");
$vervang    = array("$Voornaam", "$Achternaam", "$Woonplaats","$Adres");

echo str_replace($vaaw, $vervang, $string);
echo '<br>';
}

私がこれを使用する目的:
テキストボックスにいくつかのtekstを追加できるフォームがあり、送信すると結果がエコーされます。たとえば、列「Voornaam」に行「Jack」が含まれていて、フォームにテキストボックスに「Hey(voornaam)」と入力すると、「HeyJack」と出力されます。

この質問の仕方がよくわからないので、例を挙げましょう。何らかの理由でデータベースの列名を変更したい場合は、列名の変更に応じてこのソースコードを変更する必要があります。

例:

列名「voornaam」を「Vnaam」に変更した場合も変更する必要があります

$Voornaam  = $objResult["Voornaam"];

$Voornaam  = $objResult["Vnaam"];

ですから、私の質問は、1列目、2列目などの標準をコードに追加して、列名を変更するたびにソースコードを変更する必要がないようにする方法があるかどうかです。たぶんこれを行うためのクエリ関数がありますか?この質問はやや漠然としていることは承知していますが、コメントでお気軽に質問していただけない場合は、ご理解いただければ幸いです。私にはこれを行う方法がわからないので、どんな助けでも素晴らしいでしょう!

注: mysql_*を使用するべきではないことはわかっています。後でPDOに切り替えます。ですから、それについては二度と言及しないでください。

4

2 に答える 2

4

使用すると、とキーprint_r($objResult)の両方で結果が得られることがわかります。numericalstrings

だから、$Voornaam = $objResult["Vnaam"]あなたの代わりに使うことができます$Voornaam = $objResult[0]

于 2013-03-27T09:36:35.347 に答える
1

次のようなインデックスで列を呼び出すことができます。

$Voornaam  = $objResult[0]; //if the first column of the table is "voornaam"

ただし、列の順序を知っている必要があります...

このmysql_fetch_array関数は、MYSQL_ASSOC、MYSQL_NUMなどの2番目のパラメータを持つことができます。MYSQL_BOTHのデフォルトはMYSQL_BOTHであり、各列の配列、列名のキー、および列インデックスの別のキーを返します。

于 2013-03-27T09:36:24.920 に答える