0

我正在创建一个带有 php.ini 的动态 js 文件。但是我在循环mysql之后打印最后一个回显时遇到问题,这是源代码:

header('Content-Type: text/javascript; charset=UTF-8');
@require_once"bd.php";
@require_once"Funciones/funciones.php";

echo '$(function(){
            var position=0;
            var p_control=274; 
            var num=2;
            $(".controls .left").click(function(){getafter(p_control);})
            $(".controls .right").click(function(){getnext(p_control);})
            img=$("#sliderC ul");
            function getnext(number){
                width_img=$("#sliderC ul li").width();
                if(number<1230){
                    img.animate({marginLeft: "-"+number},500);
                    p_control=number+274;
                }else if(number>$("#sliderC ul li").size()){
                    img.animate({marginLeft:0},500);
                    p_control=270;
                }
            }
            function getafter(number){//540
                width_img=$("#sliderC ul li").width();//127
                if(number>270){
                    img.animate({marginLeft:0},500);
                }


            }
        })

$(function(){
    $(".title").on("mouseenter",function(){
        msn=$(this).attr("title");//$(this).removeAttr("title");
        posicion = $(this).offset();        

        $("body").append("<div class=\'title-attr\' style=\'display:none;\'>"+msn+"<span></span></div>");

        width_o=$(".title").outerWidth();//div - objeto seleccionado
        width_t=$(".title-attr").outerWidth();//div del title

        if(width_o < width_t){
            left=(width_t-width_o)/2;
            $(".title-attr").css("left",posicion.left-left);
            $(".title-attr").css("top",posicion.top-30);
            $(".title-attr").css("display","block");
        }else if(width_o > width_t){
            left=(width_o-width_t)/2;
            $(".title-attr").css("left",posicion.left+left);
            $(".title-attr").css("top",posicion.top-30);
            $(".title-attr").css("display","block");
        }
        $(".title-attr span").css("left",(width_t-9)/2);
    })
    $(".title").on("mouseleave",function(){
        $(".title-attr").remove();

    })
})
$(function(){
    $(".relaci").click(function(){
        $(".poster").remove(".poster");
        design=$("#design");
        position=design.position();left=design.outerWidth();
        design.append("';

        echo '<div class=\"poster\" style=\"top:"+(position.top+20)+"px;left:"+position.left+"px;\"><ul>';
            $x=@mysql_query("SELECT * FROM movies ORDER by id desc  LIMIT 3");
            while($i=mysql_fetch_array($x) or die(mysql_error())){
                echo "<li>name movie: ".$i['name']."</li>";
            }
        echo '</ul></div>");
        $(".poster").fadeIn();
    })
    $(".info").click(function(){
        $(".poster").fadeOut();
        $(".poster").remove(".poster");
    })      
})';

问题是最后一个'eco',不要在输出中打印(mysql循环后回显)

4

2 回答 2

1

删除这个位:or die(mysql_error())

mysql_fetch_arrayfalse一旦没有更多行可获取,将返回。这是正常的,不是错误。一旦它返回 false,PHP 就会评估该or部分,这会告诉它在打印最后一行后立即退出,这就是您看不到最后一个回显的原因。

于 2013-10-15T07:53:25.470 回答
0

代替

while($i=mysql_fetch_array($x) or die(mysql_error()))

while($i=mysql_fetch_array($x))
于 2013-10-15T09:23:13.957 回答