尝试回显MYSQL表时出现问题


Issue while trying to echo a MYSQL table

这是我的代码:

<?php
function doConnect()
{
   $trueServer = "X";
   $trueDb = "X";
   $trueUser = "X";
   $truePassword = "X";
    mysql_connect($trueServer, $trueUser, $truePassword) or trigger_error(mysql_error());
   mysql_select_db($trueDb) or trigger_error(mysql_error());
} 
$currentlang = $_SESSION['lang'];
function my()
{
   global $pnew;
   global $pnewLine;
   global $pnX;
   global $currentlang;
   doConnect();
   $pnew = mysql_query("SELECT * FROM tutorials WHERE cat='ppn' AND lang='".$currentlang."' ORDER BY id DESC");
   while($pnewLine = mysql_fetch_array($pnew))
   {
      $pnX = $line['text'];
   }
   echo $pnX;
}
my();
?>

我试图选择一个表行并回显它,如果我在没有my();函数的情况下使用它,它的工作原理就像一个符咒,相反,它就是不回显。

现在你问我:为什么不删除这些函数,转而使用纯PHP?A: 我正在使用include函数(我不知道它的真名),它运行得很好

顺便说一下,doConnect();功能运行良好。到目前为止,我已经尝试使用全局变量,但它仍然不起作用。感谢您的关注!

请检查您的函数。在这里,你不是从while循环的数组中检索数据

函数my(){全球$pnew;全局$pnewLine;全局$pnX;全局$currentlang;doConnect();$pnew=mysql_query("SELECT*FROM tutorials WHERE cat='ppn'AND lang='".$currentlang."'ORDER BY id DESC");while($pnewLine=mysql_fetch_array($pnew)){$pnX=$pnewLine['text'];}echo$pnX//如果这是数组,则不会打印。print_r($pnX)//改为尝试打印}

第一次停止使用mysql_时使用mysqli_pdo

我想你需要foreach

foreach($pnx as $pn)
{
    echo $pn;
}

最后,停止使用mysql_使用mysqli_pdo

试试这个:

$pnew = mysql_query("SELECT * FROM tutorials WHERE cat='ppn' AND lang='".$currentlang."' ORDER BY id DESC");
if ($pnew) {
  list($pnX) = mysql_fetch_row($pnew);
  echo $pnX;
}

如果您只期望1个结果,那么循环就没有意义了。

看看这个:

while($pnewLine = mysql_fetch_array($pnew))

这实际上意味着

while(the variable $pnewLine receives the value of mysql_fetch_array($pnew))
{
    // Always executed
}

同时

while($pnewLine = mysql_fetch_array($pnew))

实际上是指

while(the variable $pnewLine is equal to the value of mysql_fetch_array($pnew))
{
    // Not always executed
}

你发现区别了吗?