1

我有一个文件,该文件有一个下拉列表,其中包含来自数据库(movimentos)的一组值(矩阵)我想要的是当我在下拉列表中选择该值时,它会在数据库中搜索重复的行并将其显示在表中包含该值的所有数据(目前为 3 列,“matricula”、“marca”和“despesa”)

下面是我用来从下拉列表中获取值的代码,这就是我遇到的问题,我无法从下拉列表中获取值以显示表中的相应行。

 <a href='verificar.dwt.php'>Voltar atrás</a>

<div align="center"><? 

include 'configmov.dwt.php'; 

$tableName='movimentos';
$matricula = mysql_real_escape_string($_POST['matricula']);

$sql="SELECT matricula, marca, despesa FROM $tableName WHERE $matricula in (SELECT matricula FROM $tableName GROUP BY $matricula HAVING count($matricula) > 1)"; 
$result=mysql_query($sql); 
$n=1; 

echo "Os seus resultados: <p>";

echo "<table border=0>";
echo "<tr bgcolor='#CCFFCC'>";
echo "<td style='width: 100px;'>Matricula</td>";
echo "<td style='width: 100px;'>Marca</td>";
echo "<td style='width: 100px;'>Despesa</td>";
echo "</tr>";

while($row = mysql_fetch_array($result)){ 
    echo "<table border=0>";
    echo "<tr bgcolor='#CCCCCC'>";
    echo "<td style='width: 100px;'>".$row['matricula']."</td>";
    echo "<td style='width: 100px;'>".$row['marca']."</td>";
    echo "<td style='width: 100px;'>".$row['despesa']."</td>";
    echo "</tr>";

}

?>

</div>

<?php
// close connection; 
mysql_close();
?>

我在这个问题上已经有一段时间了,在来这里提出这个问题之前我做了很多研究。

4

4 回答 4

1

首先..我认为你的语法是错误的。

试试这个:

$sql = "SELECT matricula, marca, despesa FROM '$tableName' WHERE '$matricula' in (SELECT matricula FROM '$tableName' GROUP BY '$matricula' HAVING count('$matricula') > 1)"; 

在查询中,您必须将 php 变量放在引号之间。

于 2012-07-13T17:24:32.810 回答
1

matricula 是表中的一个字段,在您的帖子中...不是 php 变量..所以您必须拥有: GROUP BY matricula HAVIG count(matricula)

于 2012-07-13T17:28:42.110 回答
1

请确保您的 SQL 语法是正确的,并尝试使用此代码从返回的数据库值创建一个表以使其成为一个表

echo "<table border=0>";
echo "<tr bgcolor='#CCFFCC'>";
echo "<td style='width: 100px;'>Matricula</td>";
echo "<td style='width: 100px;'>Marca</td>";
echo "<td style='width: 100px;'>Despesa</td>";
echo "</tr>";

while($row = mysql_fetch_array($result)){ 
    echo "<tr bgcolor='#CCCCCC'>";
    echo "<td style='width: 100px;'>".$row['matricula']."</td>";
    echo "<td style='width: 100px;'>".$row['marca']."</td>";
    echo "<td style='width: 100px;'>".$row['despesa']."</td>";
    echo "</tr>";

}

echo "</table>";
于 2012-07-13T17:30:26.323 回答
0

如果您正在检查表中发布的值是否完全匹配,为什么不能使用它呢?

 $sql="SELECT matricula, marca, despesa FROM ".$tableName." WHERE matricula = '".$matricula."'"; 
于 2012-07-13T17:38:16.160 回答