按名称计算结果

时间:2014-02-27 15:38:26

标签: php mysql

我真的不知道怎么称呼这个但是无论如何......

我需要这个来显示插槽0中的每个小精灵,但是如果相同的小精灵出现两次,我希望它在图像旁边说2,而不是将另一个图像添加到显示器。对不起,我不是最好的解释事情。

这就是我所拥有的,我知道这是一团糟。

<?php
$result = mysql_query("SELECT * FROM user_pokemon WHERE belongsto='". $_SESSION{'username'}."'AND (slot='0')");
while($row = mysql_fetch_array($result))
{   
$sql2 = "SELECT * FROM pokemon WHERE name='".$row['pokemon']."'";
$result2 = mysql_query($sql2) or die(mysql_error());
$battle_get2 = mysql_fetch_array($result2);
?>
<div style="width: 20%; float: left;">
<?php
echo '<img src="pokemon/'.$row['type'] .''.$battle_get2['pic'].'" border=0>' ; 

$idd= mysql_real_escape_string($row['id']);
$iddd = strip_tags($idd);

?>

这就是我最终让它发挥作用的方式,谢谢你的帮助:)。

<?php
$result = mysql_query("SELECT *, COUNT(*) number FROM user_pokemon WHERE belongsto='". $_SESSION{'username'}."'AND (slot='0') GROUP BY pokemon");
while($row = mysql_fetch_array($result))
{   

$sql2 = "SELECT * FROM pokemon WHERE name='".$row['pokemon']."'";
$result2 = mysql_query($sql2) or die(mysql_error());
$battle_get2 = mysql_fetch_array($result2);

?>
<div style="width: 20%; float: left;">
<?php
echo '<img src="pokemon/'.$row['type'] .''.$battle_get2['pic'].'" border=0>' ; 
if($row["number"] > 1) echo $row["number"] . " Pokemons";
$idd= mysql_real_escape_string($row['id']);
$iddd = strip_tags($idd);

?>

1 个答案:

答案 0 :(得分:2)

您应该按pokemon更改您的查询和分组,并另外选择COUNT(*)。此外,您可以在第一个查询中使用内部联接,因此您不必执行其他查询。

SELECT *, COUNT(*) number FROM user_pokemon up INNER JOIN pokemon p ON(up.pokemon = p.name) WHERE belongsto='". $_SESSION{'username'}."'AND (slot='0') GROUP BY up.id

整个PHP:

<?php
$result = mysql_query("SELECT *, COUNT(*) number FROM user_pokemon up INNER JOIN pokemon p ON(up.pokemon = p.name) WHERE belongsto='". $_SESSION{'username'}."'AND (slot='0') GROUP BY p.id");
while($row = mysql_fetch_array($result))
{   
?>
<div style="width: 20%; float: left;">
<?php
echo '<img src="pokemon/'.$row['type'] .''.$row['pic'].'" border=0>' ; 
if($row["number"] > 1) echo $row["number"] . " Pokemons";
$idd= mysql_real_escape_string($row['id']);
$iddd = strip_tags($idd);
?>