从数组逗号分隔和其他获取数据

时间:2013-06-03 12:26:43

标签: php arrays str-replace

我正在为我的邮件程序制作一个str_replace函数,但我无法使用它。我目前正在使用此代码替换单词:

$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);
}

这个问题是,如果我更改列名或添加/删除列,那么我将不得不将我的代码更改为。我想知道是否有一种方法可以显示数组中的数据,看起来就像这行现在一样:

$vaaw       = array("(voornaam)", "(achternaam)", "(woonplaats)", "(adres)");

类似于:

$vaaw       = array("(1st value)", "(2nd value)", "(3rd value)", "(and so on)");

我得到的列名是:

select column_name from information_schema.columns where table_name='Klant'

长话短说,有没有办法得到这个查询的结果:

select column_name from information_schema.columns where table_name='Klant'

看起来像这样:

$vaaw       = array("(value1)", "(value2)", "(value3)", "(and so on)");

$vervang    = array("$objResult["value1"]", "$objResult["value2"]", "$objResult["value3"]","$objResult["and so on"]");

我无法在我看过的任何其他网站/论坛上找到任何内容,所以如果有人知道是否有某种功能,那就太棒了!

2 个答案:

答案 0 :(得分:1)

我不确定我完全理解你想要完成的事情。但请看看这个,看看这是否是您正在寻找的http://php.net/manual/en/function.mysql-field-name.php

<?php
/* The users table consists of three fields:
 *   user_id
 *   username
 *   password.
 */
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Could not connect to MySQL server: ' . mysql_error());
}
$dbname = 'mydb';
$db_selected = mysql_select_db($dbname, $link);
if (!$db_selected) {
    die("Could not set $dbname: " . mysql_error());
}
$res = mysql_query('select * from users', $link);

echo mysql_field_name($res, 0) . "\n";
echo mysql_field_name($res, 2);
?>

The above example will output:

user_id
password

您可以使用mysqli_field_count和mysql_field_name的组合来动态填充数组。基本上,您确定字段数,然后使用for循环,使用索引动态地将项目附加到数组。

数组(mysql_field_name($ res,0),mysql_field_name($ res,1));

答案 1 :(得分:1)

探测器dit:

<?php
// Grab your mysql result in your $objectResult array as you did in your code, then do the following:

$body = 'Geachte (Voornaam) (Achternaam), welkom bij blablabla... ' . PHP_EOL;

foreach($objectResult as $key => $value) {
  $body = str_replcae('(' . $key . ')', $value, $body);
}

// The output would be something like: "Geachte Jan Janssen, welkom bij blablabla"
?>

基本上,这将是搜索与您的数据库列名对应的键名,并将其替换为相应的值。

电子邮件系统的理想选择,简单明了;)