2014-01-26 75 views
1

正如你可以从下面的代码中看到的,对于PHP来说,这是非常新的东西,所以请原谅这个新手问题,但是我一直在整个下午都在苦苦挣扎,只是不知道究竟是什么问题。未显示PHP变量内容

基本上Ive得到为TEAM1,TEAM2和地点3个下拉菜单。 当用户选择团队和地点的isset功能被触发,我从游戏中提取出来的结果我的数据库中。

正如你可以在代码中看到下面我用3个echo语句来测试是否从下拉菜单中正确的价值观已被抓获。当我打开网页回声报表确认正确的结果从下拉菜单拍摄,我去和查询与我上面呼应变量数据库。

的问题

在while循环,我想呼应从查询的结果,但没有得到显示。我试图做一个的var_dump看到变量的内容,但没有得到显示。我究竟做错了什么?

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']; 
     } 

如果有人能指出我在正确的方向,将不胜感激。

+0

mysql查询返回任何结果或任何错误?我假设你在代码的其他部分正确地连接到数据库。对? –

+0

你var_dump($ _ REQUEST)? – AboQutiesh

+0

@AggelosSynadakis我没有得到任何错误,我可以确认我成功地连接到DB – Marilee

回答

1

我怀疑你收到的SQL语法错误的原因有两个,至少 首先,当你想使用字符串中的变量值,则必须使用双引号拥抱

$sql="select * from mytable where col1='$my_var'"; 

而第二种情况:SQL期望字符串值用上面指出的虚线引号代替。在你的情况下,你使用“”引号。

还有一个建议。当调试PHP应用程序可能是有用的在PHP脚本的开头插入

error_reporing(E_ALL); 

的地方,使扩展输出

+0

感谢你,因为固定它,虐待记住,在我原来的问题的未来 – Marilee

+0

面团不属于,你也许可以给我一些建议,在3个forloops方面清理我的代码即时通讯使用。显然这不是从3个Dropbox中获取值的最有效方式,任何想法我可以使用1 forloop而不是3来做什么? – Marilee

0

你把你的SQL查询放在单引号中,变量在那里不起作用。试试这个:

<?php 
$var = "stuff"; 
echo '$var'; 
echo "$var"; 
?> 

你可以做的,而不是对concatenate字符串是这样的:

$result = mysql_query('SELECT * 
         FROM `results` 
         WHERE `hometeam` = "'.$team1.'" && `awayteam` = "'.$team2.'"') 
-1

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']; 
} 
+1

你错了数组我的男人,而($行= mysql_fetch_array($结果))将不会导致无限循环,甚至PHP的自己使用它 – AboQutiesh

+1

@AboQutiesh我看到了。编辑它。遗憾习惯mysqli的预处理语句 –

0

我的朋友你的代码就好了,你只需要检查你的submiting的收存箱用表格首先检查你的html,当你var_dump($_REQUEST)它应该是一个数组,包含你试图收集的所有值

1

你在双引号和单引号之间混合。而变量不应该用双引号四舍五入。

$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']; 
    } 
+0

谢谢修复它 – Marilee