使用SELECT和switch处理PHP和mysql问题

使用SELECT和switch处理PHP和mysql问题,php,mysqli,switch-statement,Php,Mysqli,Switch Statement,您好,我正在尝试根据目录结构选择表,但查询工作不正常。宠物是主文件夹,里面有狗、猫、鱼、马等文件夹 我根据目录结构选择表格,比如如果页面位于Pets>Dogs然后是table Dogs\u DB下,如果相同的代码或页面位于Pets>Cats然后是table Cats\u DB下 我使用echo进行检查,输出在代码末尾 <?php include('../../connectuser.php'); echo $ab=$_SERVER['PHP_SELF']; $show=explod

您好,我正在尝试根据目录结构选择表,但查询工作不正常。宠物是主文件夹,里面有狗、猫、鱼、马等文件夹

我根据目录结构选择表格,比如如果页面位于Pets>Dogs然后是table Dogs\u DB下,如果相同的代码或页面位于Pets>Cats然后是table Cats\u DB下 我使用echo进行检查,输出在代码末尾

 <?php
include('../../connectuser.php');
echo $ab=$_SERVER['PHP_SELF'];
$show=explode ("/",$ab);
echo $show[0]."<br />";
echo $show[1]."<br />";
echo $show[2]."<br />";
echo $pagename= $show[1].$show[2];
echo "<br />";
switch ( $pagename ) {

 case 'PetsDogs':  
 $tbl_name = 'dogs_DB';
 break;

 case 'PetsCats':  
 $tbl_name = 'cats_DB';
 break;

 case 'PetsFishes':  
 $tbl_name = 'fishes_DB';
 break;

 case 'PetsHorses':  
 $tbl_name = 'horses_DB';
 break;
 }
 echo $tbl_name;
 echo "<br />";
 echo $sel = "SELECT * FROM $tbl_name" or die('error in query');
 $fetch = mysqli_query( $dbc, $sel );

 while ( $row = mysqli_fetch_array( $fetch ) ) {

 echo $title;
 $title = $row['title'];
 }
 echo "<br />";

  echo $title."hiii";
 ?>

将页面置于“宠物>狗”文件夹下时输出 /宠物/狗/get_links.php

宠物

宠物狗

一,


hiii

在循环结束时似乎为空,
而($row=mysqli\u fetch\u array($fetch))
似乎将$row['title']的查询行设置为空字符串。如果为空,则最后一个回显将不会输出任何内容。尝试使用var_dump()获取有关变量的更多信息。

这两行不是应该相反吗

echo $title;
$title = $row['title'];
因此:

while($row=mysqli\u fetch\u数组($fetch)){
$title=$row['title'];
echo$标题;
}
回声“
”; echo$title.“hiii”;
启动一个变量,如

$pagename = $show[1].$show[2];
不是

while循环中的$title变量也是如此

echo $title;
$title = $row['title'];
取而代之

$title = $row['title'];
echo $title;
由于看起来您希望在循环外部使用$title变量,因此还需要在循环外部声明它

$title = "";
while ( $row = mysqli_fetch_array( $fetch ) ) {
 $title = $row['title'];
 echo $title;     
}
echo "<br />";
echo $title."hiii";
$title=”“;
while($row=mysqli\u fetch\u数组($fetch)){
$title=$row['title'];
echo$标题;
}
回声“
”; echo$title.“hiii”;
是的,应该是这样,但echo仅用于测试,$title为空,即使它是table。如果添加var_dump($row),会发生什么;$title=$row['title']之前;while循环之前的ok add if($fetch==null){echo mysqli_error();}$fetch=mysqli_query($dbc,$sel);变量转储($fetch);var_dump的输出为null如果$fetch为null,则可能有两种情况:1)数据库中没有任何条目2)查询执行期间发生错误。可以使用mysqli_error()函数检查它,该函数将返回最后一个错误。不,我不想在外部使用,out one仅用于检查目的echo$pagename=$show[1]。$show[2];$pagename=$show[1]。$show[2];没什么区别
$title = $row['title'];
echo $title;
$title = "";
while ( $row = mysqli_fetch_array( $fetch ) ) {
 $title = $row['title'];
 echo $title;     
}
echo "<br />";
echo $title."hiii";