【发布时间】:2018-01-22 04:08:06
【问题描述】:
我有一个 while 循环,它在三个不同的页面上的工作方式完全相同。为了更容易改变它,我把它放在它自己的 php 文件 gmldLoop 中。但是,在这样做并包括我希望它在文件上运行的 gmldLoop 之后,g,它不起作用。我不确定为什么会这样。代码完全复制并粘贴在两个文件中,所以我知道这不是错字。
在 g.php 上工作的代码:
$query = "SELECT * FROM guidelines ORDER BY sortingLetter ASC, age ASC, category ASC";
$data= mysqli_query($db_conn, $query);
while ($row = mysqli_fetch_array($data)) {
$id = $row['id'];
$age = $row['age'];
$cat = $row['category'];
$title = $row['title'];
$desc = $row['description'];
$ageRange = $row['ageRange'];
$sortingLetter = $row['sortingLetter'];
?>
<section class="content
<?php
switch($ageRange){
case 1:
echo "one";
break;
case 12:
echo "one";
break;
case 123456:
echo "all";
break;
case 2:
echo "two";
break;
case 23:
echo "two three";
break;
case 23456:
echo "two three four five six";
break;
case 3:
echo "three";
break;
case 34:
echo "three four";
break;
case 4:
echo "four";
break;
case 45:
echo "four five";
break;
case 5:
echo "five";
break;
case 56:
echo "five six";
break;
case 6:
echo "six";
break;
case 0:
echo "all";
break;
}
?>"
>
<h2 class="heading noborder">
<div class="title textfloatL">
<small><strong><?php echo $title; ?></strong></small>
</div>
</h2>
<br><br>
<div class="sqldata">
<div class="desc">
<?php echo $desc; ?>
</div>
<div class="agesdiv incap textfloatR">
<p class="inup">
<small><?php if (!$age) {
echo 'All Ages';
} else {
echo $age;
} ?></small>
</p>
|
<p class="incap">
<small><?php echo $cat; ?></small>
</p>
</div>
<br>
</div>
</section>
<?php
}
?>
来自 gmldLoop 的代码:
$data= mysqli_query($db_conn, $query);
while ($row = mysqli_fetch_array($data)) {
$id = $row['id'];
$age = $row['age'];
$cat = $row['category'];
$title = $row['title'];
$desc = $row['description'];
$ageRange = $row['ageRange'];
$sortingLetter = $row['sortingLetter'];
?>
<section class="content
<?php
switch($ageRange){
case 1:
echo "one";
break;
case 12:
echo "one";
break;
case 123456:
echo "all";
break;
case 2:
echo "two";
break;
case 23:
echo "two three";
break;
case 23456:
echo "two three four five six";
break;
case 3:
echo "three";
break;
case 34:
echo "three four";
break;
case 4:
echo "four";
break;
case 45:
echo "four five";
break;
case 5:
echo "five";
break;
case 56:
echo "five six";
break;
case 6:
echo "six";
break;
case 0:
echo "all";
break;
}
?>"
>
<h2 class="heading noborder">
<div class="title textfloatL">
<small><strong><?php echo $title; ?></strong></small>
</div>
</h2>
<br><br>
<div class="sqldata">
<div class="desc">
<?php echo $desc; ?>
</div>
<div class="agesdiv incap textfloatR">
<p class="inup">
<small><?php if (!$age) {
echo 'All Ages';
} else {
echo $age;
} ?></small>
</p>
|
<p class="incap">
<small><?php echo $cat; ?></small>
</p>
</div>
<br>
</div>
</section>
<?php
}
?>
如果我使用包含“gmldLoop.php”,则 g.php 中的代码:
<?php
$query = "SELECT * FROM guidelines ORDER BY sortingLetter ASC, age ASC, category ASC";
include $_SERVER["DOCUMENT_ROOT"] . '/inc/pageStructure/gmldLoop.php';
?>
【问题讨论】:
-
现在这个上下文中是否存在db_conn等sql变量?似乎错误日志将包含您对此的答案
-
error_log 中没有任何内容,这是我查看的第一个地方。是的,db_conn 是在页面顶部定义的。
-
尝试添加 var_dump(mysqli_fetch_array($data));死();到 gmldLoop。这可能会为原因提供线索
-
什么都没有显示,你可以在 www.mommy-info.com/all-about-baby/guidelines 看到
-
我不确定发生了什么,但它现在可以正常工作了。
标签: php html mysql while-loop