循环生成div并从数据库填充它们

时间:2013-05-15 18:46:10

标签: php mysql

我有一个mysql的噩梦。让我解释一下我的问题。

以下是我想要实现的目标:!http://i604.photobucket.com/albums/tt125/TheNameHobbs/client_workoutpage_example.png

我在一个填充了不同健身器材的数据库中有一个表。我需要这个循环为数据库中的每台机器创建一个div,并将图片与链接一起放入。数据库具有计算机ID以及计算机名称,图像路径和视频链接。

这就是我必须创建div:

function machine_count() {
return mysql_result(mysql_query("SELECT COUNT(`machine_id`) FROM `machines` WHERE `machine_id` = $machine_id"), 0);
}

$(document).ready(function() {
 $machinecount = machine_count();
        for (var i = 0; i < $machinecount; i++) {
            $('<div/>', {
        'id': 'div' + i,
        'class': 'some_class_name',
        'html': 'i am div with id=div' + i
        }).appendTo('.body1');
        }
        });

CSS:

.body1 {
width: 100%;
}
.some_class_name {
width: 24.5%;
float: left;
border: 1px solid black;
}

不知何故,我需要在该循环中添加一种方法来获取机器图片并链接并相应地为每个div填充它们。

有什么想法吗?

4 个答案:

答案 0 :(得分:1)

合并您的JQUERYPHP代码

    $(document).ready(function() {

    <?php

        $sql = "SELECT * FROM `machines` WHERE `machine_id` = $machine_id";
        $retval = mysql_query( $sql, $conn );
        if(! $retval )
        {
          die('Could not get data: ' . mysql_error());
        }
        while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
        {
        ?>
            $('<div/>', {
                    'id': 'div _<?php echo $row["machine_id"]; ?>',
                    'class': 'some_class_name',
                    'html': 'i am div with id=div '+ 
                            '<?php echo $row["machine_id"]; ?>'+  
                            ' <?php echo $row["machine_name"]; ?>'+
                            '<img src="PATH_TO_IMAGE/<?php echo $row["image_name"]; ?>" /> '+
                           ' <?php echo $row["video_link"]; ?>'
                }).appendTo('.body1');

    <?php   } ?>

});

答案 1 :(得分:1)

有两种方法可以使用jquery或使用PHP。如果你想在脚本下面使用php ..

 <?php
  $i=0
  $query=mysql_query("SELECT `machine_id`, `IMAGE_PATH`. `video_link` FROM `machines` WHERE `machine_id` = $machine_id")
  while($rows=mysql_fetch_array($query)){ ?>
    <div id= "<?php echo $i; ?>"  class= "some_class_name"> i am div with id=div <?php echo $i; ?>>
     <img src="<?php echo $rows[IMAGE_PATH]; ?>" alt="" />
     <a href="<?php echo $rows[video_link]; ?>">Video Link</a>
    </div>
    <?php $i++; }  ?>

答案 2 :(得分:0)

你正在混淆PHP和javascript。

试试这个:

//PHP CODE
<?php
function machine_count() {
    return mysql_result(mysql_query("SELECT COUNT(`machine_id`) FROM `machines` WHERE `machine_id` = $machine_id"), 0);
}
?>

//JAVASCRIPT CODE
$(document).ready(function() {
    $machinecount = <?php echo machine_count(); ?>
    for (var i = 0; i < $machinecount; i++) {
        $('<div/>', {
        'id': 'div' + i,
        'class': 'some_class_name',
        'html': 'i am div with id=div' + i
        }).appendTo('.body1');
    }
 });

确保您的文件具有php扩展名,并且您正在服务器上运行它。

答案 3 :(得分:-1)

我终于想出了这个解决方案:

 <script>
        $(document).ready(function() {

<?php

    $count = mysql_result(mysql_query("SELECT COUNT(*) FROM `machines`"), 0);
for ($machine_id = 0; $machine_id <= $count; $machine_id++) {
    $sql = "SELECT * FROM `machines` WHERE `machine_id` = $machine_id";
    $retval = mysql_query( $sql, $conn );
    if(! $retval )
    {
      die('Could not get data: ' . mysql_error());
    }
    while($row = mysql_fetch_array($retval, MYSQL_ASSOC))
    {
    ?>
        $('<div/>', {
                'id': 'div _<?php echo $row["machine_id"]; ?>',
                'class': 'some_class_name',
                'html': '<img src="client workout page/round_<?php echo $row["machine_id"]; ?>.jpg" style="display:block;margin:0 auto;"><br>'+ 
                        '<img src="<?php echo $row["picture"]; ?>" style="width:50%;display:block;margin:0 auto;"/> '+
                       ' <a href="<?php echo $row["link"]; ?>"><img src="client workout page/click to play video.jpg" style="width:186px;height: 14px;position:absolute;bottom:0;left:0;right:0;margin-left:auto;margin-right:auto;"></a>'
            }).appendTo('.body1');       
<?php   }
    }
 ?>

});
</script>