-4

我有这个代码:

    foreach ($row as $result) {
    if (empty($row[28])) {
        $string28 = '';
    } else {
        $string28 = '<div class="add_img">
                       <h1>Connexion</h1>
                       <img src="images/' . $row[28] . '.jpeg">
                     </div>';
    }
}


foreach ($row as $result) {
    if (empty($row[30])) {
        $string30 = '';
    } else {
        $string30 = '<div class="add_img">
                      <h1>Fixation</h1>
                      <img src="images/' . $row[30] . '.jpeg">
                     </div>';
    }
}

foreach ($row as $result) {
    if (empty($row[31])) {
        $string31 = '';
    } else {
        $string31 = '<div class="add_img">
                       <h1>Schéma</h1>
                       <img src="images/' . $row[31] . '.jpeg">
                     </div>';
    }
}

$applications = array($string28, $string30, $string31);
if (empty($applications)) {
    $vide = "<h1>Pas D'Application Pour Ce Produit</h1>";
}

我在这里想说的是:如果所有变量都是空的,那么告诉我这个:

Pas D'Application Pour Ce 产品

(翻译:此产品无申请)


但是当我使用 print_r 函数时,它告诉我该数组没有要处理的数据。
请我需要帮助。
并感谢所有先进的

4

3 回答 3

1

你的foreach循环是错误的。您正在使用整个数组而不是foreach循环中使用的元素。

你用过

foreach ($row as $result) {
    //你正在用$row做一些事情
}

相反,正确的用法是

foreach ($row as $result) {
    //用$result做一些事情
}

希望能帮助到你 :)

于 2013-08-10T03:24:53.360 回答
1

您没有在 foreach 循环中正确访问您的行。使用 foreach($row as $result) 时,您需要将数组元素称为 $result,而不是 row。如果您需要识别一个指定的数组键,您可以使用 foreach($row as $key => $result) 来指定它。

例如,在你的第一个循环中,你应该使用这个:

$string28 = '';  //Initialize your variable so can be used after the foreach loop exits
foreach ($row as $key => $result) {
    if($key == 28 && empty($result[$key]) {
        $string28 = '';
    } else {
        $string28 = '<div class="add_img"><h1>Connexion</h1><img src="images/'.$result[$key].'.jpeg">
    }
}

重复脚本中的其他循环。

编辑

是的,您可以设置一个 foreach 循环,该循环将遍历所有变量并为您创建变量。根据您的问题,如果您没有任何应用程序,则会显示错误消息。您可能希望做的只是根据该标准设置一个标志。你可以这样做:

$noApps = true;
$applications = array();
foreach($row as $key => $result) {
    if(isset($result[$key]) && empty($result[$key])) {
       $applications[$key] = '<div class="add_img"><h1>Connexion</h1><img src="images/'.$result[$key].'.jpeg'>;
    $noApps = false;
    }
}

if($noApps) {
    echo "<h1>Pas D'Application Pour Ce Produit</h1>";
} else {    
    print_r($applications);  //For viewing/debugging purposes
}
于 2013-08-10T03:26:52.253 回答
0

你的设计看起来很糟糕。您实际上是在重复相同的功能 3 次。您的 while 循环不起作用,因为您$row在其中使用,而不是$result变量。第二点是,$string28, $string30, $string31在您在while loops. 一旦控制退出"if"循环,这些变量就什么都不是了。要解决此问题,请尝试将它们初始化为空数据,例如$string28 =""在代码的开头。

但是,我建议您先查看代码的结构。

于 2013-08-10T03:46:26.733 回答