دوستان من رو در اصلاح این کد کمک کنید

sam888

New Member
سلام

می میخوام از جدول ads فیلد id رو در یک جدول 4 ستون و 10 ردیف بچینم

اما چون به صورت رندوم انتخاب میشن تعداد از آنها تکراری وارد میشن.

مثلا اگر فیلد id شامل اعداد 1 تا 100 باشه خروجی کد من ممکنه این باشه

89-30-15-11
11-70-52-21
80-66-35-45
...

همون طور که می بینید عدد 11 بااینکه در دیتابیس من یک با تکرار شده توی خروجی دو بار اومده
من می خوام از این تکرار جلوگیری کنم


اگه ممکنه من رو در اصلاح این کد کمک کنید

PHP:
 <?php 
  include("config.php"); 

  mysql_connect($db_server, $db_username, $db_password); 
  mysql_select_db($db_name); 

  $query = "SELECT COUNT(ID) FROM ads "; 
  $result = mysql_query($query); 
  $row = mysql_fetch_array($result); 
  $adcnt = $row[0]; 

  $query = "SELECT * FROM ads "; 
  $result = mysql_query($query); 
  $i = 1; 
  while (($row = mysql_fetch_array($result))) 
    { 
    $rows[$i] = $row; 
    $i++; 
    } 

  $ids_arr     = null; 

    for ($i=1; $i<=10; $i++) 
    { 
    $ids      = null; 

    for ($j=1; $j<=4; $j++) 
      { 
      $cellno = ($i-1)*4+$j; 

        srand((double)microtime()*1000000); 
        $adno = mt_rand(1, ($adcnt)); 
        $ids[$j]     = $rows[$adno]['ID']; 
        } 

      $ids_arr[$i]     = $ids; 
    } 
    print( $ids_arr[1][1]); 
    print("-"); 
    print( $ids_arr[1][2]); 
    print("-"); 
    print( $ids_arr[1][3]); 
    print("-"); 
    print( $ids_arr[1][4]); 
    echo("<br>"); 
    print( $ids_arr[2][1]); 
    print("-"); 
    print( $ids_arr[2][2]); 
    print("-"); 
    print( $ids_arr[2][3]); 
    print("-"); 
    print( $ids_arr[2][4]); 
    echo("<br>"); 
    print( $ids_arr[3][1]); 
    print("-"); 
    print( $ids_arr[3][2]); 
    print("-"); 
    print( $ids_arr[3][3]); 
    print("-"); 
    print( $ids_arr[3][4]); 
    echo("<br>"); 
    print( $ids_arr[4][1]); 
    print("-"); 
    print( $ids_arr[4][2]); 
    print("-"); 
    print( $ids_arr[4][3]); 
    print("-"); 
    print( $ids_arr[4][4]); 
    echo("<br>"); 
    print( $ids_arr[5][1]); 
    print("-"); 
    print( $ids_arr[5][2]); 
    print("-"); 
    print( $ids_arr[5][3]); 
    print("-"); 
    print( $ids_arr[5][4]); 
    echo("<br>"); 
    print( $ids_arr[6][1]); 
    print("-"); 
    print( $ids_arr[6][2]); 
    print("-"); 
    print( $ids_arr[6][3]); 
    print("-"); 
    print( $ids_arr[6][4]); 
//... 
?>
 

P.H.P

Member
سلام
چرا اینطور نوشتی؟ :shock:

میخوای چکار کنی دقیقا؟

به این صورت اگه استفاده کنی منطقی تر هست

PHP:
<?php
include("config.php"); 

mysql_connect($db_server, $db_username, $db_password);
mysql_select_db($db_name); 

$cols = 4;
$rows = 10;

$qlimit = $cols * $rows;
$query = "SELECT * FROM ads ORDER BY RAND() LIMIT $qlimit"; 
$result = mysql_query($query); 

while($row = mysql_fetch_array($result))
{
    if ($i % $cols == 0)
    {
        echo '<br />';
    }
        echo $row['id'] . '-';

    $i += 1;
}

//... 
?>
به صورت random عمل میکنه

میتونی از for و foreach هم استفاده کنی


موفق
 

sam888

New Member
سلام

از راهنمایی شما متشکرم

مشکل من با این راهنمایی حل شد

سپاس
 

جدیدترین ارسال ها

بالا