array_fill带有单词结果

时间:2013-04-07 07:59:27

标签: php mysql

$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使其中一个结果更难显示,但是现在它没有显示口袋妖怪的结果在口袋妖怪混合之后,我相信我正在混淆口袋妖怪的错误,但不知道为什么?

有谁看到我在这里做错了什么?

1 个答案:

答案 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'];