带有SQL请求的函数上的PHP表单
我的php上有这个函数:带有SQL请求的函数上的PHP表单,php,sql,forms,request,Php,Sql,Forms,Request,我的php上有这个函数: function getLastMatchs($nb) { try { $db = new PDO(DBHOST, DBUSER, DBPASS); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e) { die('connexion failed: '.$e->ge
function getLastMatchs($nb) {
try
{
$db = new PDO(DBHOST, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
die('connexion failed: '.$e->getMessage());
}
$i=0;
$get5tmatchs = $db->query('SELECT wid, lid, date, cwid, clid FROM `match`');
while ($nb<$i)
{
$data5matchs = $get5tmatchs->fetch();
echo '<tr>
<td>'.$data5matchs['wid'].'</td>';
echo '<td>'.$data5matchs['lid'].'</td>';
echo '<td>'.$data5matchs['cwid'].'</td>';
echo '<td>'.$data5matchs['clid'].'</td>';
echo '<td>'.$data5matchs['date'].'</td>
<br>
</tr>';
$i++;
}
}
函数getLastMatchs($nb){
尝试
{
$db=新的PDO(DBHOST、DBUSER、DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_异常);
}
捕获(PDO$e)
{
die('connexion failed:'。$e->getMessage());
}
$i=0;
$get5tmatchs=$db->query('match`'中选择wid、lid、date、cwid、clid);
while($nbfetch();
回声'
“.$data5matchs['wid']”;
回显'.$data5matchs['lid'].';
回显'.$data5matchs['cwid'].';
回显'.$data5matchs['clid'].';
回显'.$data5matchs['date'].'
'; $i++; } } 我的表格是:
echo '<form action="index.php" method="post">
<h3>My question......</h3>
<p>
<input type="text" name="nbmatchs" />
<input type="submit" value="ok" />
</p>
</form>';
echo getLastMatchs('nbmatchs');
echo'
我的问题。。。。。。
';
echo getLastMatchs('nbmatchs');
比赛时间我怎么办?伙计们要我的桌子?
当我现在这样做的时候,什么都没有发生。
谢谢你的帮助
PS:例如,我的磁带5,我可以看到我在功能中输入的标签的5倍。你想要完成的(据我所知)是允许访问者输入一个数字,然后在显示一些“匹配”数据后提交。访问者输入的数字起到了限制作用 1.从何处获取POST变量?您在表单下方放置了一个输入值为字符串“nbmatchs”的函数。我猜您希望提交表单并获取“nbmatchs”值,然后将其应用于SQL查询以进行筛选。您这样做的方式不起作用。您的表单元素上的action属性设置为index.php.Th在这里,我们将提交表单数据。因此,我们需要有一种方法来获取提交的POST变量。我们这样做: 永远不要信任客户端提供给您的数据。我们知道它必须是一个数字,让我们检查一下: 上面我们检查了数据客户机给出的是否真的是一个数字。如果是,我们将把这个numer分配给变量$nbmatches。如果数据客户机给出的不是一个数字(例如,某个字符串)我们将数字1分配给变量。此时,我们可能会结束脚本执行,并让访问者知道他必须输入一个数字,但如果有任何可疑之处,我们只将1分配给变量。之后,我们可以将该变量提交给函数getLastMatchs,该函数将该变量作为结果限制器分配给SQL查询。Assum假设所有代码都位于一个文件“index.php”中,则您应该具有以下代码:
<?php
function getLastMatchs($nbmatches) {
try{
$db = new PDO(DBHOST, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die('connexion failed: '.$e->getMessage());
}
try {
$select = $db->prepare('SELECT wid, lid, date, cwid, clid FROM `match` LIMIT '.$nbmatches.';');
$select->execute();
$results = $select->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $ex) {
echo "<span style='color:red'>".$ex->getMessage()."</span></p>";
}
echo '<table>';
foreach($results as $result){
$output = '<tr>';
$output .= '<td>'.$result['wid'].'</td>';
$output .= '<td>'.$result['lid'].'</td>';
$output .= '<td>'.$result['cwid'].'</td>';
$output .= '<td>'.$result['clid'].'</td>';
$output .= '<td>'.$result['date'].'</td>';
$output = '</tr>';
echo $output;
}
echo '</table>';
}
if(isset($_POST['nbmatchs'])){
$nbmatches = is_numeric(trim($_POST['nbmatchs'])) ? $_POST['nbmatchs'] : 1;
getLastMatchs($nbmatches);
}
?>
<form action="index.php" method="post">
<h3>My question......</h3>
<p>
<input type="text" name="nbmatchs" />
<input type="submit" value="ok" />
</p>
</form>
我的问题。。。。。。
让我知道这是否按您所希望的方式工作。我如何为show nb做这些人想要我的表?这意味着什么?我遇到了这个错误:调用未定义的函数isNumeric()对不起,我错了。我把PHP的函数名写错了。它应该是
isNumeric
,而不是isNumeric
。我对上面的代码进行了修复。如果你找到了问题的解决方案,请点击相应的按钮接受帖子作为答案。我有一个:未定义变量:data5matchs inOK我的mistake.修复了它。在foreach循环中,我将当前周期的变量保留为$data5matchs
。相反,它应该是foreach括号中声明的$result
。现在应该可以工作了。如果您对此有任何问题,请告诉我。
$nbmatches = is_numeric(trim($_POST['nbmatchs'])) ? $_POST['nbmatchs'] : 1;
<?php
function getLastMatchs($nbmatches) {
try{
$db = new PDO(DBHOST, DBUSER, DBPASS);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
die('connexion failed: '.$e->getMessage());
}
try {
$select = $db->prepare('SELECT wid, lid, date, cwid, clid FROM `match` LIMIT '.$nbmatches.';');
$select->execute();
$results = $select->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $ex) {
echo "<span style='color:red'>".$ex->getMessage()."</span></p>";
}
echo '<table>';
foreach($results as $result){
$output = '<tr>';
$output .= '<td>'.$result['wid'].'</td>';
$output .= '<td>'.$result['lid'].'</td>';
$output .= '<td>'.$result['cwid'].'</td>';
$output .= '<td>'.$result['clid'].'</td>';
$output .= '<td>'.$result['date'].'</td>';
$output = '</tr>';
echo $output;
}
echo '</table>';
}
if(isset($_POST['nbmatchs'])){
$nbmatches = is_numeric(trim($_POST['nbmatchs'])) ? $_POST['nbmatchs'] : 1;
getLastMatchs($nbmatches);
}
?>
<form action="index.php" method="post">
<h3>My question......</h3>
<p>
<input type="text" name="nbmatchs" />
<input type="submit" value="ok" />
</p>
</form>