PDA

View Full Version : سوال: ایجاد گزارش



rash44
یک شنبه 26 آذر 1391, 12:43 عصر
سلام
10 تا رکورد در دیتابیس وجود دارد
اگر بخوام گزارش به این صورت نمایش داده بشه باید کد رو به چه صورتی بنویسم
( 10 تا رکورد در یک جدول با 5 ردیف و 2 ستون نمایش داده بشه )

96769

Unique
یک شنبه 26 آذر 1391, 16:32 عصر
شما با استفاده از div و float کردن هر دسته 5 تایی میتونید این کار را انجام بدین اینطوری :

style ها :


<style type="text/css">
.tbl{
border:solid 1px #999;
border-right:none;
border-bottom:none;
float:right;
}

.tblcol div{
border:solid 1px #999;
padding:5px;
font-family:tahoma;
font-size:11px;
text-align:center;
font-weight:bold;
margin:0px;
border-top:none;
border-left:none;
}
</style>

تگ های html :


<div class="tbl">
<div style='float:right' class="tblcol">
<div>رکورد 1</div>
<div>رکورد 2</div>
<div>رکورد 3</div>
<div>رکورد 4</div>
<div>رکورد 5</div>
</div>
<div style='float:right' class="tblcol">
<div>رکورد 6</div>
<div>رکورد 7</div>
<div>رکورد 8</div>
<div>رکورد 9</div>
<div>رکورد 10</div>
</div>
<div style='clear:right'></div>
</div>
<div style='clear:right'></div>

Tarragon
یک شنبه 26 آذر 1391, 16:40 عصر
داداش بجز این اگر منظورتون درselect از دیتابیس هست بهترین کار اینه یه while تشکیل بدید و یه متغیر خاص قرار بردید و هر دفعه اونو یی دونه بالا ببرید. بعد چک کنید تعداد کل سطر ها رو اگر کوچک تر مساوی نصف بود style رو بزارید روی سمت راست اگر از نصف بیشتر بود style رو بزارید روی سمت چپ.

rash44
یک شنبه 26 آذر 1391, 18:18 عصر
داداش بجز این اگر منظورتون درselect از دیتابیس هست بهترین کار اینه یه while تشکیل بدید و یه متغیر خاص قرار بردید و هر دفعه اونو یی دونه بالا ببرید. بعد چک کنید تعداد کل سطر ها رو اگر کوچک تر مساوی نصف بود style رو بزارید روی سمت راست اگر از نصف بیشتر بود style رو بزارید روی سمت چپ.

ممنون از راهنمایی

فقط این تکه رو متوجه نشدم :


رو بزارید روی سمت راست اگر از نصف بیشتر بود style رو بزارید روی سمت چپ

Tarragon
یک شنبه 26 آذر 1391, 20:18 عصر
یعنی سمت راست صفحه بیاد و تکه دوم سمت چپ صفحه که با CSS مشخص می شه.

Unique
دوشنبه 27 آذر 1391, 01:27 صبح
البته شما نوشتین رکورد که احتمالا منظورتون فیلدی از رکورد جاری بوده که توی while هست ولی بعید میدونم غیر از روشی که گفتم روش دیگه ای اونم با table برای این نوع نمایش باشهمگه اینکه همه اطلاعات را بریزین توی یک ارایه یک بعدی و توی فیلد های جدول قرار بدین !

rash44
سه شنبه 28 آذر 1391, 09:57 صبح
داداش بجز این اگر منظورتون درselect از دیتابیس هست بهترین کار اینه یه while تشکیل بدید و یه متغیر خاص قرار بردید و هر دفعه اونو یی دونه بالا ببرید. بعد چک کنید تعداد کل سطر ها رو اگر کوچک تر مساوی نصف بود style رو بزارید روی سمت راست اگر از نصف بیشتر بود style رو بزارید روی سمت چپ.

لطفا کد رو اصلاح کنید
ممنون


<?php
$i=0; while($line=mysql_fetch_assoc($result)) { $i++;
if ($i <= mysql_num_rows($result)) { ?>
Table
<?php } else if ($i >= mysql_num_rows($result)) { ?>
Table
<?php } ?>

rash44
شنبه 02 دی 1391, 09:39 صبح
لطفا راهنمایی کنید

Reza1607
شنبه 02 دی 1391, 10:03 صبح
سلام
اين css

<style>
.main{width:700px;border:1px solid red}
.right,.left{width:49%;border:1px solid #999}
.right{float:right;}
.left{float:left;}
.clear{clear:both}
</style>


و اين هم كدش



$result=mysql_query('select * from tbl');
$i=0;
echo '<div class="main">';
while($row=mysql_fetch_assoc($result)){
echo '<div class="'.($i%2?'right':'left').'">';
echo '<strong>ID : </strong><span class="value">'.$row['id'].'</span><br />';
echo '<strong>Name : </strong><span class="value">'.$row['name'].'</span><br />';
echo '<strong>Family : </strong><span class="value">'.$row['family'].'</span><br />';
echo '</div>';
}
echo '</div><br class="clear" />';


من براي مشخص بودن مرز ها براي تمام div ها بوردر گذاشتم

MMSHFE
شنبه 02 دی 1391, 17:33 عصر
دوستان ایشون با table میخوان. چرا اینقدر بحث رو پیچیده کردین و به CSS و... کشوندین؟


<?php
mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('dbname') or die('Database error');
mysql_query('SET NAMES \'utf8\'');
mysql_set_charset('utf8');
$result = mysql_query('SELECT * FROM `table` ORDER BY `id`');
if($result && mysql_num_rows($result) > 0) {
$rows = array();
while($row = mysql_fetch_assoc($result)) {
$rows[] = $row;
}
mysql_free_result($result);
$count = count($rows);
$cols = 6;
$part = ceil($count / $cols);
echo '<table border="1px">' . PHP_EOL;
for($i = 0; $i < $part; $i++) {
echo '<tr>';
for($j = 0; $j < $cols; $j++) {
echo '<td>' . (isset($rows[$i + $part * $j]) ? $rows[$i + $part * $j]['id'] : '&nbsp;') . '</td>';
}
echo '</tr>' . PHP_EOL;
}
echo '</table>' . PHP_EOL;
}
?>

توی کد فوق، کافیه cols$ رو تغییر بدین تا تعداد ستونهای جدول تنظیم بشه. تعداد سطرها بطور خودکار محاسبه میشه و برای خونه هایی هم که خالی میمونه، ;nbsp& درج میشه. یکم به کد دقت کنید، منطقش رو متوجه میشین. اما اگه نهایتاً ابهامی بود، بفرمایید تا توضیح بدم.
موفق باشید.