Php If语句未按预期工作
我正在用php制作一个电子邮件脚本。发生的情况是进行mysql查询,其输出存储在以下字符串中:Php If语句未按预期工作,php,mysql,if-statement,Php,Mysql,If Statement,我正在用php制作一个电子邮件脚本。发生的情况是进行mysql查询,其输出存储在以下字符串中: $personal1 = $userinfo->salutation; $personal2 = $userinfo->surname; $business = $userinfo->businessname; 接下来我有一个if语句,检查姓氏是否为空,如果为空,则用企业名称替换称呼+姓氏。我遇到的问题是,电子邮件不断以亲爱的、商业名称发送,即使姓氏字段不是空的,但我不确定以下代码
$personal1 = $userinfo->salutation;
$personal2 = $userinfo->surname;
$business = $userinfo->businessname;
接下来我有一个if语句,检查姓氏是否为空,如果为空,则用企业名称替换称呼+姓氏。我遇到的问题是,电子邮件不断以亲爱的、商业名称发送,即使姓氏字段不是空的,但我不确定以下代码的错误是什么
if ($personal2=="") {
$name = $business; }
else {
$name = $personal1 . ' ' . $personal2;};
编辑>>>>>>>>>>>
如果我回显得到的字符串内容:
personal1 = Mr
personal2 = Johnson
business = Hat Trick Media
编辑2>>>>>>>>>
这是一些代码,然后将其传递给邮件程序
<?php
$cf_uid = $_GET['token'];
$query = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addupdatelead WHERE cf_uid = '$cf_uid'") or die(mysql_error());
$userinfo = mysql_fetch_object($query);
$personal2 = $userinfo->surname;
$personal1 = $userinfo->salutation;
$business = $userinfo->businessname;
?>
<?php
$result = mysql_query("SELECT * FROM hqfjt_chronoforms_data_addemailtemplate");
while ($row = mysql_fetch_object($result)) {
echo '<tr class="table-row">';
echo '<th class="template-name">';
echo '<div class="namerow">';
$id = $row->cf_uid;
$form_id = $row->form_id;
$query = mysql_query("SELECT `$form_id` FROM email_history WHERE cf_id = '$user_id'") or die(mysql_error());
$datesent = mysql_fetch_object($query);
$date = $datesent->$form_id;
if ($personal2=="") {
$name = $business; }
else {
$name = $personal1 . ' ' . $personal2;};
您的代码是有效的语句吗?你的代码结构太糟糕了。而不是
if ($personal2=="") {
$name = $business; }
else {
$name = $personal1 . ' ' . $personal2;};
使用
你似乎有一个额外的;你不需要的
您似乎也没有关闭您发布的代码中的while循环…好的,我已经发现了问题所在,$name来自上一页的会话并覆盖了此页上的$name,我现在已将其设置为在加载此页之前销毁会话,它现在似乎已对其进行排序,感谢大家的帮助:-)原因可能有很多,原因很简单,因为您提供的信息不足以回答您的问题。您是否已转储或回显$userinfo->name以确保它包含您期望的内容?请向我们展示$personal2变量的内容示例。确保在if语句之前获得它。提供一个可复制的代码,以便我们可以测试它如何显示var_dump($personal2)的结果;我知道我的编码很糟糕,我只编码了3周,这就是为什么它有点粗略:-上面的代码中没有包含while循环的结束,但它是在原始代码中,我刚刚意识到我错过了它。与其破坏会话,不如禁用register_globals。如果会话信息影响当前页面上的变量,那么我猜register_globals仍然处于打开状态。你检查了当前脚本中的状态了吗?没有,但是当我检查phpinfo时,它会说它是关闭的。如果phpinfo说它是关闭的,那么我无法解释为什么上一页的信息会影响当前页上的变量。
if ($personal2=="") {
$name = $business;
}
else {
$name = $personal1 . ' ' . $personal2;
}