15 лучших товаров, для каждого из них нужен номер, начиная с 1 - PullRequest
1 голос
/ 26 января 2012

Я создаю новый веб-сайт, я не хочу ссылаться на него напрямую, поэтому я поставлю пробелы между ними: тестовое задание . светящиеся палочки . организация У меня есть список из 15 самых популярных продуктов в правой части страницы (ЧТО ГОРЯЧЕГО), я хотел бы показать номер для каждого, первый из которых 1, а последний 15. 15.

Я php noob, но, несмотря на чтение об использовании range и foreach на сайте руководства php, я изо всех сил пытаюсь показать цифры. Мне было легко показать один и тот же диапазон чисел для каждого блока продукта, например, 1,2,3 ... 15, показывающий 15 раз, но, очевидно, это не то, что я пытаюсь сделать.

Мне, вероятно, нужно дать больше информации, чем здесь, поэтому я пропущу код, с которым я работаю над php:

<div id="whatshot_smallblock">
<a href='/<?=str_replace(" ","-",$productname)?>.html'><img src='http://www.glow-sticks.org/images/products/<?=$productimage?>' alt='<?=$productname?>' width='66' height='66' hspace="2" vspace="2" border='0' class="radius" />
</a>
<div id="whatshot_smallblock_Txt">  
<a href='/<?=str_replace(" ","-",$productname)?>.html'><?=$productname?></a><br><div id="pink_color"><span class="content_2"><?=$minprice_dis?></span><?=$_SESSION['currsymbol']?><?=$minprice?></div></div>
<div id="bigblacknumbers"></div></div>

и в моем php-файле objectmanager я вижу код, относящийся к разделу whatshot:

//what's hot
function whatshotids() {
    if( !isset( $this->dblink ) )
    dbconnect();

    //$sql = "SELECT COUNT(pid) AS repetitions, pid FROM gs_orderlines GROUP BY pid ORDER BY repetitions DESC LIMIT 15";
    $timenow = time();
    $checktime = ($timenow - 1814400); // 3 weeks
    $sql = "SELECT COUNT(pid) AS repetitions, gs_orderlines.pid FROM gs_orderlines INNER JOIN gs_orders ON gs_orders.oid =
            gs_orderlines.oid WHERE gs_orders.datetime >= $checktime GROUP BY gs_orderlines.pid ORDER BY repetitions DESC LIMIT 15";

    $result = mysql_query( $sql, $this->dblink )
    or die( "Invalid query Line 1018" );
    $i = 0;
    $whids = array();
    while( $row = mysql_fetch_object( $result ) ) {
        ////
        $sql2 = "SELECT * from gs_inventory WHERE pid = ".$row->pid. " AND display_product='1' AND stock>0 AND canbackstock!='yes'";
        $result2 = mysql_query( $sql2, $this->dblink ); 
        if($row2 = mysql_fetch_object( $result2 )){ 
            $whids[$row->pid] = $row->repetitions;
            $i = $i + 1;
        }
    ...
    }
...
}

Надеюсь, этого достаточно или слишком много информации.

Большое спасибо!

Ответы [ 3 ]

1 голос
/ 26 января 2012

С кодом, который вы включили, трудно увидеть, как вы выводите свой HTML ... 2 фрагмента кода выглядят очень отсоединенными ...

Чтобы сделать то, что вы хотите, вы можете просто использовать инкрементный счетчикв вашем цикле while:

$num = 1;
while( $row = mysql_fetch_object( $result ) ) {
  echo "Product Number = " . $num;
  $num++; // increment
  // do what every else you need
}

Проблема в том, что вы не выводите код на своем PHP ... если вы обновите свой вопрос, это может помочь

1 голос
/ 27 января 2012

Казалось, что единственное, что мне нужно было сделать, это ввести:

<?$counter++; echo $counter;?>

И он только начал считать с первой итерации.

1 голос
/ 26 января 2012

А как же:

<?php
$i=1;
foreach($products as $product) { ?>
<div id="whatshot_smallblock">
<?php echo $i; ?><a href='/<?=str_replace(" ","-",$productname)?>.html'><img src='http://www.glow-sticks.org/images/products/<?=$productimage?>' alt='<?=$productname?>' width='66' height='66' hspace="2" vspace="2" border='0' class="radius" />
</a>
<div id="whatshot_smallblock_Txt">  
<a href='/<?=str_replace(" ","-",$productname)?>.html'><?=$productname?></a><br><div id="pink_color"><span class="content_2"><?=$minprice_dis?></span><?=$_SESSION['currsymbol']?>    <?=$minprice?></div></div>
<div id="bigblacknumbers"></div></div>
<?php 
$i++;
} ?>

Так что, в основном, просто просматривайте ваши продукты и выводите $ i (число, которое получает +1 на каждой итерации) ....

...