переменные внутри формы отправки почты php


Я новичок в php/mysql, так что полегче со мной:)

Я сделал очень простую форму заказа php для нашей работы, в которой много выпадающих списков. Это отправит результаты по электронной почте с использованием sendmail на php.

Теперь я пытаюсь сделать его динамичным, используя базу данных sql.

У меня есть форма, настроенная с использованием sql и php, но моя проблема заключается в отправке динамически генерируемых данных.

У меня есть все переменные, доступные с помощью этой строки

extract($_POST['orderdetails'], EXTR_SKIP);

В переменные заканчиваются как $vanilla00, $vanilla06, $vanilla11 и т.д...

Итак, теперь у меня есть этот код для создания таблицы с использованием этих переменных

while($row = mysql_fetch_array($resultbline))

{$message   .="<tr><td>" 
. $row['prod_name'] 
. "</td><td>&nbsp;</td><td></td>
<td>$" . $row['prod_selectname'] . "0</td>
<td>$" . $row['prod_selectname'] . "6</td>
<td>$" . $row['prod_selectname'] . "11</td>
<td>$" . $row['prod_selectname'] . "18</td>
<td>$" . $row['prod_selectname'] . "t</td>
<td>$" . $row['prod_selectname'] . "24</td>
<td>$" . $row['prod_selectname'] . "36</td>" ;
} 

Имя prod_select берется из базы данных и в данном случае будет ванильным, поэтому в конечном итоге в таблице будет указано

while($row = mysql_fetch_array($resultbline))

{$message   .="<tr><td>" 
. $row['prod_name'] 
. "</td><td>&nbsp;</td><td></td>
<td>$vanilla0</td>
<td>$vanilla6</td>
<td>$vanilla11</td>
<td>$vanilla18</td>
<td>$vanillat</td>
<td>$vanilla24</td>
<td>$vanilla36</td>" ;
}

Проблема в том, что полученное электронное письмо показывает имя переменной (т.Е. vanilla18) вместо того, чтобы рассматривать его как переменную.

Я что-то пропустил. {([или где-то другой код?

Извините, что будьте так внимательны, но я не знаю, как еще это объяснить.

Заранее благодарю

Author: MerseyRay, 2014-08-06

2 answers

Это потому, что вы объединяете $row['prod_selectname'] как строку. Прежде чем вы повторите каждую переменную, вам нужно назвать ее динамически, вот так:

$var_name = $row['prod_selectname'] . "0";

Когда вы повторяете переменную, это будет выглядеть так:

"<td>" . echo $$var_name . "</td>";
 2
Author: machineaddict, 2014-08-06 13:03:06

Попробуйте это:

<?php



while ($row = mysql_fetch_array($resultbline))
{

    $var1 = $row['prod_selectname'] . "0";
    $var2 = $row['prod_selectname'] . "6";
    $var3 = $row['prod_selectname'] . "11";
    $var4 = $row['prod_selectname'] . "18";
    $var5 = $row['prod_selectname'] . "t";
    $var6 = $row['prod_selectname'] . "24";
    $var7 = $row['prod_selectname'] . "36";

    $message .="<tr><td>"
            . $row['prod_name']
            . "</td><td>&nbsp;</td><td></td>
            <td>" . $$var1 . "</td>
            <td>" . $$var2 . "</td>
            <td>" . $$var3 . "</td>
            <td>" . $$var4 . "</td>
            <td>" . $$var5 . "</td>
            <td>" . $$var6 . "</td>
            <td>" . $$var7 . "</td>
";
} 

Но machineaddict опубликовал это первым... Так что отдайте ему должное. ;)

 1
Author: Jo Smo, 2014-08-06 13:48:58