【发布时间】:2017-10-15 12:03:33
【问题描述】:
我需要使用 PDO 方法执行“SELECT inside SELECT”,因为我需要来自第一个的数据
SELECT (`$result('nom')`)
第二个。
我没有收到任何 php 错误,但页面重定向到“404 File Not Found”,SQL 语法似乎正确。我怎么了?
这是我的代码:
<?php
include("../access.php");
session_start();
$date = "tableau_suivi_".date("d-m-Y").".csv";
$table_echo = array();
header('Content-type: text/csv');
header('Content-Disposition: attachment; filename='.$date.'');
header('Pragma: no-cache');
header('Expires: 0');
$csv_file = fopen('php://output', 'w');
fputs($df, "\xEF\xBB\xBF" );
fwrite($csv_file, "Nom ; Prenom ; RSCA 1 ; RSCA 2 ; RSCA 3\n");
$sql='SELECT * FROM membre WHERE prof = 0';
$nb = $bdd->query($sql);
while($result = $nb->fetch()){
$sql1='SELECT nom_eval FROM rsca_valides WHERE nom_etu = "'.$result('nom').'" AND numero = 1';
$nb1 = $bdd->query($sql1);
if($res1 = $nb1->fetch()){
$eval1 = $res1('nom_eval');
}
$sql2='SELECT nom_eval FROM rsca_valides WHERE nom_etu = "'.$result('nom').'" AND numero = 2';
$nb2 = $bdd->query($sql2);
if($res2 = $nb2->fetch()){
$eval2 = $res2('nom_eval');
}
$sql3='SELECT nom_eval FROM rsca_valides WHERE nom_etu = "'.$result('nom').'" AND numero = 3';
$nb3 = $bdd->query($sql3);
if($res3 = $nb3->fetch()){
$eval3 = $res3('nom_eval');
}
$line = $result['nom'].";".$result['prenom'].";".$eval1.";".$eval2.";".$eval3."\n";
fwrite($csv_file, $line);
}
fclose($csv_file);
?>
没有$sql1、$sql2 和$sql3,它运行良好。我的目标是在每一行生成一个包含 nom、prenom、$res1('nom_eval')、$res2('nom_eval') 和 $res3('nom_eval') 的 CSV 文件。
【问题讨论】:
-
SQL 语法问题!= 404 问题。您没有向我们展示导致问题的代码。
-
“顺便说一句,谢谢你的反对” - 你不应该总是认为问题中的人反对你。包括那些试图帮助你的人。再说一次;检查真正的错误。祝你项目顺利 :-) @hopesfall
-
Toé tu connais ça mon chum @JayBlanchard
-
@JayBlanchard 所以请添加您的答案,我很乐意投票并将其标记为最佳答案。再次感谢您。
-
@hopesfall 因为您似乎正在使用 PDO,如果您还没有使用 php.net/manual/en/pdo.error-handling.php,将会对您有所帮助,PHP 的错误报告 php.net/manual/en/function.error-reporting.php 也会对您有所帮助 :-)
标签: php sql select pdo while-loop