日期:2014-05-17  浏览次数:20583 次

php一个基础问题 想请教下大家。
PHP code

$conn=mysql_connect("localhost","root","123456");

if(!$conn){
  die('could not connect:'.mysql_error());
}
else{
  echo '链接正常<br />';
}


mysql_select_db("zuitu_db",$conn);
$sql="select * from category order by id desc"; // $sql="select * from 'category'";这样写有错吗?
$res=mysql_query($sql);

$i=1;
$strTemp='';
/*
  下面这个while循环,为何读不出数据?
*/
while($row=mysql_fetch_array($res)){
  if($i==1)
  {
      $strTemp=$row["name"];
  }
  else
  {
      $strTemp+='<br />'.$row["name"];
  }
  // ($i==1)?$strTemp=$row["name"]:strTemp+='<br />'.$row["name"]; 这样写有误吗?
  $i+=1;
}
echo $strTemp;
//以上内容 请大家帮忙指正,多谢!



------解决方案--------------------
strTemp+='<br />'.$row["name"];
变量必须加 $, 你这样写会被认为是语法错误,因为strTemp只能被理解为常量,而常量只能通过define()函数来赋值。
另外PHP的字符串连接符不是 + ,是 . 
$strTemp .= '<br />'.$row["name"];

题外话,建议你在 每个mysql_query()后面加一个判断,如果数据库查询有错,也能及时找到根源
------解决方案--------------------
$sql="select * from 'category'";这样写有错吗?
$sql="select * from `category`";

($i==1)?$strTemp=$row["name"]:strTemp+='<br />'.$row["name"]; //这样写有误吗?
($i==1)?$strTemp=$row["name"]:$strTemp.='<br />'.$row["name"];
$strTemp = ($i==1)?$row["name"]:$strTemp.'<br />'.$row["name"];
------解决方案--------------------
*
下面这个while循环,为何读不出数据?
*/
while($row=mysql_fetch_array($res)){
if($i==1)
{
$strTemp=$row["name"];
}
else
{
$strTemp.='<br />'.$row["name"];
}
------解决方案--------------------
同意三楼的方法, $strTemp+='<br />'.$row["name"]; 这句用了+号,php会把$strTemp作为int型数据进行处理,而不是字符串
------解决方案--------------------
探讨
$sql="select * from 'category'";这样写有错吗?
$sql="select * from `category`";

($i==1)?$strTemp=$row["name"]:strTemp+='<br />'.$row["name"]; //这样写有误吗?
($i==1)?$strTemp=$row["name"]:$strTemp.='<br />'.$……