未显示PHP变量内容
正如你从下面的代码中看到的,我对PHP非常陌生,所以请原谅我这个新手的问题,但是我整个下午都在努力解决这个问题,只是不知道到底是什么问题 基本上,我有三个下拉菜单,分别是第一队、第二队和场地。 当用户选择球队和场地时,会触发isset功能,我会从数据库中提取比赛结果 正如您在下面的代码中所看到的,我使用3条echo语句来测试下拉菜单中的值是否正确。当我打开页面时,echo语句确认从下拉列表中捕获了正确的结果,我继续使用我上面回显的变量查询数据库 问题 在while循环中,我想回显查询的结果,但什么也不显示。我尝试进行var_转储以查看变量的内容,但没有显示任何内容。我做错了什么未显示PHP变量内容,php,mysql,Php,Mysql,正如你从下面的代码中看到的,我对PHP非常陌生,所以请原谅我这个新手的问题,但是我整个下午都在努力解决这个问题,只是不知道到底是什么问题 基本上,我有三个下拉菜单,分别是第一队、第二队和场地。 当用户选择球队和场地时,会触发isset功能,我会从数据库中提取比赛结果 正如您在下面的代码中所看到的,我使用3条echo语句来测试下拉菜单中的值是否正确。当我打开页面时,echo语句确认从下拉列表中捕获了正确的结果,我继续使用我上面回显的变量查询数据库 问题 在while循环中,我想回显查询的结果,但什
foreach($_REQUEST["team1"] as $teamone){
$team1 = $teamone;
}
foreach($_REQUEST["team2"] as $teamtwo){
$team2 = $teamtwo;
}
foreach($_REQUEST['venue'] as $venue){
$venue = $venue;
}
//These echo statments are a test to see if the correct dropdown values has been captured
echo $team1.'<br>';
echo $team2.'<br>';
echo $venue;
//Use results from dropdown menu to query database
$result = mysql_query('SELECT *
FROM `results`
WHERE `hometeam` = "$team1" && `awayteam` = "$team2"') or
die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['awayteamscore'];
echo $row['hometeamscore'];
}
foreach($\u请求[“team1”]作为$teamone){
$team1=$teamone;
}
foreach($_请求[“team2”]作为$teamtwo){
$team2=$teamtwo;
}
foreach($_请求['venture']作为$venture){
$VICENT=$VICENT;
}
//这些回波信号是一种测试,以查看是否捕获了正确的下拉值
echo$team1.“
”;
echo$team2.“
”;
地点;;
//使用下拉菜单中的结果查询数据库
$result=mysql\u查询('SELECT*
来自“结果”
其中,`hometeam`=“$team1”&&&`awayteam`=“$team2””)或
die(mysql_error());
while($row=mysql\u fetch\u数组($result)){
echo$row['awayteamscore'];
echo$行['hometeamscore'];
}
如果有人能给我指出正确的方向,我将不胜感激。您将SQL查询放在单引号中,变量在其中不起作用。试试这个:
<?php
$var = "stuff";
echo '$var';
echo "$var";
?>
您的
foreach
循环正在覆盖这些值。最好将其放入这样的数组中
$team1 = array();
foreach($_REQUEST["team1"] as $teamone){
$team1[] = $teamone;
}
如果需要将$team1
的值设置为字符串,那么这将更合适
$team1 = "";
foreach($_REQUEST["team1"] as $teamone){
$team1 .= $teamone;
}
首先解决上述问题可能会有所帮助。如果不是,那么问题可能出在数据库查询中
//Using double quotes
"SELECT * FROM `results` WHERE `hometeam` = '$team1' && `awayteam` = '$team2'"
//Using single quotes
'SELECT * FROM `results` WHERE `hometeam` = "'.$team1.'" && `awayteam` = "'.$team2.'"'
然后显示结果
while($row = mysql_fetch_array($result)){
echo $row['awayteamscore'];
echo $row['hometeamscore'];
}
我怀疑您收到sql语法错误至少有两个原因 首先,当您想在字符串中使用变量值时,必须使用双引号
$sql="select * from mytable where col1='$my_var'";
第二:SQL希望字符串值以简单的引号括起来,正如我上面所指出的。在您的情况下,使用“”引号
还有一条建议。在调试php应用程序时,通过插入
error_reporing(E_ALL);
在php脚本开始的某个地方,我的朋友,你的代码很好,你只需要检查你提交的Dropbox是否与表单一致,所以首先检查你的html,当你
var\u dump($\u请求)时
它应该是一个数组,包含您试图收集的所有值您混合了双引号和单引号。而变量不应该用双引号四舍五入
$result = mysql_query(" SELECT *
FROM `results`
WHERE `hometeam` = '$team1' && `awayteam` = '$team2' ") or
die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['awayteamscore'];
echo $row['hometeamscore'];
}
mysql查询是否返回任何结果或错误?我假设您在代码的其他部分正确地连接到数据库。对吗?您是否有var_dump($_请求)?@AggelosSynadakis我没有收到任何错误,我可以确认我已成功连接到数据库,尽管这与您的问题无关,但是如果你是PHP新手,那么你应该把时间花在PDO上,而不是
mysql\uuz
操作上。为什么你有3个forloops来访问3个不同的变量呢?你错了,伙计,($row=mysql\u fetch\u array($result))即使是PHP本身也不会导致无限循环it@AboQutiesh是的,我看到了。编辑它。很抱歉,我习惯了mysqli编写的语句谢谢你修复了它,我会记住,因为在未来,这不是我最初的问题的一部分,你可以给我一些建议,让我根据我使用的3个forloop来清理我的代码。显然,这不是从3个下拉框中获取值的最有效的方法,你知道我可以用1个forloop来代替3个吗?
$result = mysql_query(" SELECT *
FROM `results`
WHERE `hometeam` = '$team1' && `awayteam` = '$team2' ") or
die(mysql_error());
while($row = mysql_fetch_array($result)){
echo $row['awayteamscore'];
echo $row['hometeamscore'];
}