【问题标题】:PHP : Fetching data and storing into variablesPHP:获取数据并存储到变量中
【发布时间】:2014-06-16 06:12:11
【问题描述】:

我想从数据库中获取数据并希望存储到一个数组中,在将数据存储到数组后我想访问数组的特定索引。 我是一名 java 开发人员,需要在 php 中执行此操作(我不太了解)。 基本上,表中有 250 个字符串,我想将这 250 个字符串提取到数组中,并希望访问某个特定的行。 例如:

 <?php 
 $con=mysqli_connect("example.com","peter","abc123","my_db");
 // Check connection
 if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$result = mysqli_query($con,"SELECT * FROM Persons");

echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
</tr>";

while($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
}

echo "</table>";

**$uname100 = $row[100]; // this is not getting assigned to $uname100 variable**
**echo $row[100]; // here this is not printing** 
**echo $uname100; // not even this printing**
mysqli_close($con); 
?>

请检查代码中的粗体部分并帮助我。我是 php 新手,所以请不要对此感到恐慌。

也想做这样的事情:

$ctr=0;
while($row = mysqli_fetch_array($result)) {
  echo "<tr>";
  echo "<td>" . $row['FirstName'] . "</td>";
  echo "<td>" . $row['LastName'] . "</td>";
  echo "</tr>";
$uname[$ctr++] = $row['FirstName']; // AND USING THIS OUTSIDE LOOP
}

echo $uname[90];

【问题讨论】:

  • print_r($row); 放在while 之后,看看你的数组是否包含你定义的index 键?同时更新问题

标签: php arrays database


【解决方案1】:

使用数组构造

$counter=0;
$data = array();

while($row = mysqli_fetch_array($result)) {
   echo "<tr>";
   echo "<td>" . $row['FirstName'] . "</td>";
   echo "<td>" . $row['LastName'] . "</td>";
   echo "</tr>";
   $data[] = $row['FirstName'];
   $counter++;
}
print_r($data);

【讨论】:

  • 你可以在哪里使用$counter?只针对对方吗?
  • 我只想打印特定的索引,所以 print_r($data) 将不起作用.. 我想将所有数据放入一个数组中,然后我必须使用例如数组 echo $data[ 的第 5 个索引5];
【解决方案2】:

第一个解决方案

$counter=0;
while($row = mysqli_fetch_array($result)) {

echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "</tr>";
$counter++;
$varName='uname'.$counter;
$$varName=$row['FirstName'];
}

echo echo $uname100;

【讨论】:

  • 为什么要发布无意义的解决方案
【解决方案3】:

您不能在 while 循环之外访问变量 $row[100]。 同样 $row 将不包含索引 100。 它将在 while 循环中仅包含 $row['FirstName'] 或 $row['LastName']

第二部分答案:

$uname = array();
$ctr=0;
while($row = mysqli_fetch_array($result)) {
  ....
  ....

  $uname[$ctr++] = $row['FirstName']; // AND USING THIS OUTSIDE LOOP
}

if(isset($uname[90])) echo $uname[90];

【讨论】:

  • 我的错误.. 试试这个: if(isset($uname[90])) echo $uname[90];
猜你喜欢
  • 2018-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-25
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
相关资源
最近更新 更多