$sql23 = "SELECT * FROM map1pokemon ORDER BY RAND() LIMIT 1;";
$result23 = mysql_query($sql23) or die(mysql_error());
$battle_get23 = mysql_fetch_array($result23);
$sql2 = "SELECT * FROM pokemon WHERE name='".$battle_get23['pokemon']."'";
$result2 = mysql_query($sql2) or die(mysql_error());
$battle_get2 = mysql_fetch_array($result2);
$filler = "SELECT * FROM pokemon WHERE name='Charmander'";
$filler2 = mysql_query($filler) or die(mysql_error());
$filler3 = mysql_fetch_array($filler2);
$pokemon1 = array_fill(1,10,"".$filler3."");
$pokemon2 = array_fill(1,2,"".$battle_get2."");
$pokemon3 = array_merge($pokemon1, $pokemon2);
shuffle($pokemon3);
$pokemon4 = array_shift($pokemon3);
$pic2= mysql_real_escape_string($pokemon4['pic']);
$pic = strip_tags($pic2);
echo "<center>";
echo '<img src="pokemon/'.$pic.'" border=0><p></p>' ;
顶部的查询获取有关每个口袋妖怪的信息,然后我想使用array_fill和array_merge使其中一个结果更难显示,但是现在它没有显示口袋妖怪的结果在口袋妖怪混合之后,我相信我正在混淆口袋妖怪的错误,但不知道为什么?
有谁看到我在这里做错了什么?
答案 0 :(得分:2)
这条线似乎毫无用处:
$pic2= mysql_real_escape_string($pokemon4['pic']);
然后,您没有显示您想要的内容是合乎逻辑的,因为您没有存储您想要的内容。我们来看看您的代码:
$filler = "SELECT * FROM pokemon WHERE name='Charmander'"; $filler2 = mysql_query($filler) or die(mysql_error()); $filler3 = mysql_fetch_array($filler2);
$filter3
显然是一个包含所有表列的数组。
$pokemon1 = array_fill(1,10,"".$filler3."");
什么?你用数组串联一个数组?不要使用这个简洁的技巧,它不会给你带来好的结果。 $pokemon1 = array_fill(1,10,$filler3);
没问题。有点贪心但还不错。
你可以做的一件事是使用随机发生器,它将更容易使用,更少贪婪和更快。
$rand = rand(12);
if($rand <=10){
$result = $filler3;
}else{
$result = $battle;
}
echo $result['name'];