mysql中的多行获取

时间:2013-07-29 18:30:39

标签: php

我有一个精选的PHP脚本,其中部分是:

  while($row = mysqli_fetch_array($result))
  {         
  echo "<option>" . $row['firstname'] . $row['lastname'] . "</option>
  }                 
echo "</select>";                       
echo "</div>";

问题是行,我希望它们出现在&#34; John Doe&#34;它现在的样式是&#34; John Doe&#34;

我尝试将其更改为:。 $row['firstname'] . "&nbsp;" . $row['lastname'] .但是这会在以后的程序中引起问题,因为John Doe因为某些原因将其读作John Doe而不会读取该名称。 (额外空间)

8 个答案:

答案 0 :(得分:1)

您可以输出文字空间:

echo "<option>" . $row['firstname'] . " " . $row['lastname'] . "</option>"

另请注意,您可以为value=""设置<option>属性,以便显示任何输出:

echo "<option value=\" . $row['firstname'] . " " . $row['lastname'] . \">Something Different</option>"

答案 1 :(得分:1)

$row['firstname'] . " " . $row['lastname']...出了什么问题? (这是一个修辞问题。你应该怎么做)。

答案 2 :(得分:1)

如果firstname字段可能为空,您可能需要进行一些修剪,以确保不在姓氏上插入前导空格。

   echo "<option>" . trim(trim($row['firstname']) .' '. $row['lastname']) . "</option>";

答案 3 :(得分:0)

echo "<option>" . $row['firstname']." ".$row['lastname'] . "</option>

答案 4 :(得分:0)

echo "<option>$row[firstname] $row[lastname]</option>";

应该适合你。 (注意引号的位置。)

此外,为了以后的识别,您可以在选项中添加“值”标记吗?

答案 5 :(得分:0)

您的代码存在的问题是$row['lastname']会直接附加到$row['firstname']。要解决这个问题,只需在两者之间放置一个空格:

echo "<option>".$row['firstname']." ".$row['lastname']."</option>";

答案 6 :(得分:0)

您需要稍后在程序中修复它并首先回显您想要的空间。

在字符串中搜索双空格并用一个空格替换它们:

$str ='John  Doe'
$str = str_replace("  ", " ", $str);

答案 7 :(得分:0)

或者,在您的MySql查询中,您可以执行类似的操作。

$sql = "SELECT CONCAT(`firstname`, ' ', `lastname`) AS `fullname` FROM `TABLENAME`";

你的PHP循环看起来像这样

 while($row = mysqli_fetch_array($result))
 {         
     echo "<option>" . trim($row['fullname']) . "</option>"; //just incase, we trim it
 }