Php 对于每个不回显数据的循环(mysql\u fetch\u assoc问题?)
你好,早上好 我仍在学习PHP,出于某种原因,我的脚本不会在我的foreach循环中发布任何数据。知道为什么吗?emailRow回音良好,但我将删除以下代码: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
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>