Я новичок в 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> </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_selectname берется из базы данных и в этом случае будет ванильным, поэтому итоговая таблица заканчивается чтением
while($row = mysql_fetch_array($resultbline))
{$message .="<tr><td>"
. $row['prod_name']
. "</td><td> </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) вместо того, чтобы рассматривать его как переменную.
Мне что-то не хватает. {([или другой код где-нибудь?
Извините за такую тщательность, но я не знаю, как еще это объяснить.
Заранее спасибо
2 ответа
Это потому, что вы объединяете $row['prod_selectname']
как строку. Перед тем, как повторить эхо для каждой переменной, вам нужно дать ей динамическое имя, например:
$var_name = $row['prod_selectname'] . "0";
Когда вы откроете переменную, это будет примерно так:
"<td>" . echo $$var_name . "</td>";
Попробуй это:
<?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> </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 опубликовал это первым ... Так что отдайте ему должное. ;)
Похожие вопросы
Новые вопросы
php
PHP — это широко используемый язык сценариев общего назначения с открытым исходным кодом, мультипарадигмальный, динамически типизированный и интерпретируемый, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.
$row['prod_selectname']
как строку.$row['prod_selectname']
всегда «ванильное», просто сделайте:' . $vanilla0 . '
вместо'$' . $row['prod_selectname'] . '0'
или используйте ответ, предоставленный machineaddict. Это должно работать с $$.