1
$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 使其中一个结果更难出现,但现在它不显示混合后口袋妖怪的结果的口袋妖怪,我相信我在混合口袋妖怪时做错了,但不知道为什么?

有人看到我在这里做错了吗?

4

1 回答 1

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'];
于 2013-04-07T08:17:39.757 回答