尝试回显MYSQL表时出现问题

时间:2013-08-29 17:06:38

标签: php mysql

这是我的代码:

<?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代替?答:我正在使用include功能(我不知道它的真实姓名)并且工作正常。

顺便说一下,doConnect();函数运行正常。到目前为止,我已尝试使用全局变量,但它仍然无效。谢谢你的关注!

4 个答案:

答案 0 :(得分:3)

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

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 = $pnewLine['text'];
   }
   echo $pnX;   //if this is array then it won't printed.
   print_r($pnX);   //try this to print instead

}

答案 1 :(得分:1)

首次使用mysql_使用mysqli_pdo

我认为您需要foreach

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

最后,停止使用mysql_使用mysqli_pdo

答案 2 :(得分:0)

试试这个:

$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个结果,则循环没有意义。

答案 3 :(得分:0)

看看这个:

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
}

你发现了差异吗?