Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对于每个不回显数据的循环(mysql\u fetch\u assoc问题?)_Php_Sql - Fatal编程技术网

Php 对于每个不回显数据的循环(mysql\u fetch\u assoc问题?)

Php 对于每个不回显数据的循环(mysql\u fetch\u assoc问题?),php,sql,Php,Sql,你好,早上好 我仍在学习PHP,出于某种原因,我的脚本不会在我的foreach循环中发布任何数据。知道为什么吗?emailRow回音良好,但我将删除以下代码: <?php include 'includes/header.php'; $accountUser = array(); $upgradeEmail = $_GET['currEmail']; $emailQuery = "SELECT fbID, firstName, lastName FROM users WHERE e

你好,早上好

我仍在学习PHP,出于某种原因,我的脚本不会在我的foreach循环中发布任何数据。知道为什么吗?emailRow回音良好,但我将删除以下代码:

<?php 

include 'includes/header.php';


$accountUser = array();
$upgradeEmail = $_GET['currEmail'];
$emailQuery = "SELECT fbID, firstName, lastName FROM users WHERE emailOne='".$upgradeEmail."' AND authLevel=0";

<?php echo $emailRow['fbID']; ?>
<?php echo $emailRow['firstName']; ?> 
<?php echo $emailRow['lastName']; ?>

 while($emailRow = mysql_fetch_assoc($emailQuery, $conn))
 {
    $accountUser[]=$emailRow;
 }
?> 
 <table>
<?php foreach($accountUser as $emailData) { ?>


<tr><td> <?php emailData['fbID']; ?> </td><td><?php emailData['firstName']; ?></td><td><?php emailData['lastName']; ?></td></tr>

<?php } ?>
</table>

而($emailRow=mysql\u fetch\u assoc($emailQuery,$conn))
{
$accountUser[]=$emailRow;
}
?> 

您已经在
$emailQuery
中构造了SQL查询,但从未执行过。调用
mysql\u query()
,并将其结果资源传递给
mysql\u fetch\u assoc()

还请确保通过在
$upgradeEmail
上调用
mysql\u real\u escape\u string()
来保护您的数据库不受SQL注入的影响,因为您从
$\u GET.

$upgradeEmail = mysql_real_escape_string($_GET['currEmail']);
您有一个语法错误。不能在现有php标记中打开新的php标记。您必须先关闭已打开的标记

就让查询工作而言

首先,您必须在打印或回显数据之前获取数据

while($emailRow = mysql_fetch_assoc($emailQuery, $conn))
{
$accountUser[]=$emailRow;
}
然后你可以写陈述

echo $emailRow['fbID']; etc. code.
其次,您没有触发查询,只是编写了查询语句。使用
mysql\u query
启动它

您的代码应该是这样的

  <?php include 'includes/header.php';

  $accountUser = array();
  $upgradeEmail = $_GET['currEmail'];
  $emailQuery = mysql_query("SELECT fbID, firstName, lastName FROM users WHERE emailOne='".$upgradeEmail."' AND authLevel=0") or die (mysql_error());
  while($emailRow = mysql_fetch_assoc($emailQuery, $conn))
   {
      $accountUser[]=$emailRow;
   }

  echo $emailRow['fbID'];
  echo $emailRow['firstName']; 
  echo $emailRow['lastName']; 
  print '<table>';
  foreach($accountUser as $emailData) {
  print '<tr><td>'$.emailData['fbID'].'</td><td>'.$emailData['firstName'].'</td><td>'.$emailData['lastName'].'</td></tr>';
  }
  print '</table';
   ?>

您实际上并没有回显任何内容。
以及不运行查询。
还有一些其他的方法,比通常的uglyPHP更干净

函数

function sqlArr($sql){
  $ret = array();
  $res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
  if ($res) {
    while($row = mysql_fetch_array($res)){
      $ret[] = $row;
    }
  }
  return $ret;
}
密码

$email = mysql_real_escape_string($_GET['currEmail']);
$data  = sqlArr("SELECT * FROM users WHERE emailOne='$email' AND authLevel=0");
include 'template.php';
模板

<? include 'includes/header.php' ?>
<table>
<? foreach($data as $row) { ?>
  <tr>
     <td><?=$row['fbID']?></td>
     <td><?=$row['firstName']?></td>
     <td><?=$row['lastName']?></td>
  </tr>
<? } ?>
</table>

<? include 'includes/header.php' ?>
<table>
<? foreach($data as $row) { ?>
  <tr>
     <td><?=$row['fbID']?></td>
     <td><?=$row['firstName']?></td>
     <td><?=$row['lastName']?></td>
  </tr>
<? } ?>
</table>