Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php If语句未按预期工作_Php_Mysql_If Statement - Fatal编程技术网

Php If语句未按预期工作

Php If语句未按预期工作,php,mysql,if-statement,Php,Mysql,If Statement,我正在用php制作一个电子邮件脚本。发生的情况是进行mysql查询,其输出存储在以下字符串中: $personal1 = $userinfo->salutation; $personal2 = $userinfo->surname; $business = $userinfo->businessname; 接下来我有一个if语句,检查姓氏是否为空,如果为空,则用企业名称替换称呼+姓氏。我遇到的问题是,电子邮件不断以亲爱的、商业名称发送,即使姓氏字段不是空的,但我不确定以下代码

我正在用php制作一个电子邮件脚本。发生的情况是进行mysql查询,其输出存储在以下字符串中:

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