PDA

View Full Version : بیرون اوردن دادها به صورت افقی



behzad.pc
پنج شنبه 17 تیر 1389, 22:35 عصر
سلام


یک سوال داشتم از دوستان عزیز

من می خوام وقتی دادها (مقدار) رو از دیتابس بیرون بیارم به صورت پویا و افقی نمایش بده در جدول بجای اینکه به صورت عمودی
نام|مقدار 1 |مقدار 2| مقدار 3|.........

نام | امید | بهزاد | ..............
ش.ش | 1 | 2 | ........

امیـرحسین
جمعه 18 تیر 1389, 00:19 صبح
این کار رو میتونید هم با آرایه ها انجام بدید و هم با کوئری به ازای هر ستون. مثلا این جدولمون هست:
name age gender
------------------------------------------------
ali 25 male
reza 18 male
nasim 23 female
amirhossein 16 male

روش آرایه:
$data = array();
$select = mysql_query('SELECT * FROM table');
while($row = mysql_fetch_assoc($select))
foreach($row as $column => $value)
$data[$column][] = $value;

روش کوئری براساس نام ستون:
$data = array();

$select = mysql_query('SELECT name FROM table');
while($rows['name'][] = mysql_fetch_assoc($select)) {}

$select = mysql_query('SELECT age FROM table');
while($rows['age'][] = mysql_fetch_assoc($select)) {}

$select = mysql_query('SELECT gender FROM table');
while($rows['gender'][] = mysql_fetch_assoc($select)) {}

خروجی:
echo print_r($data, true);
echo 'Name: ' . join(', ', $data['name']);
echo 'Age: ' . join(', ', $data['age']);
echo 'Gender: ' . join(', ', $data['gender']);
/*
Array(
[name] = Array (ali, reza, nasim, amirhossein)
[age] = Array (25, 18, 23, 16)
[gender] = Array (male, male, female, male)
)


Name: ali, reza, nasim, amirhossein
Age: 25, 18, 23, 16
gender: male, male, female, male
*/

روش اول برای وقتی که تعداد ستونها زیاد هستند و تعداد سطرها خیلی زیاد نیستند بهتر و سریعتره و روش دوم در حالت کلی کنده مگر اینکه تعداد ستون زیاد نباشه چون داریم به ازای هر ستون یک کوئری جداگانه اجرا می کنیم.

برای چنین کارهایی راههای ابتکاری زیادی وجود داره.

behzad.pc
جمعه 18 تیر 1389, 21:01 عصر
سلام
دوست عزیز شما روش دیگری نداری چون هر کاری می کنم از کد شما استفاده کنم هی ارور میده
ممنون می شم

صابر طهماسبی
جمعه 18 تیر 1389, 22:11 عصر
سلام
بهتره کدتون رو بذارید شاید بتونم خدمتی کنم:لبخندساده:

امیـرحسین
شنبه 19 تیر 1389, 00:55 صبح
قطعا ارور میگیرید چون این مثال براساس جدول و داده های فرضی من بودند.
کد و ارورتون رو اینجا بذارید.

behzad.pc
شنبه 19 تیر 1389, 12:32 عصر
<?php

$name=@$_POST["name"];
$shsh=@$_POST["shsh"];
$name_f=@$_POST["name_f"];


if (!trim($name))
{

echo" <script language='JavaScript' type='text/javascript'>";

echo " alert('لطفا در داخل فيلد نام رو مقدار گذاري کنيد')";

echo" </script> ";

exit;

}

if (!trim($shsh))
{

echo" <script language='JavaScript' type='text/javascript'>" ;

echo " alert('شماره شناسنامه رو وارد کنيد')";

echo" </script> ";

exit;

}

if (!trim($name_f))

{

echo" <script language='JavaScript' type='text/javascript'>";

echo" alert('نام پدر رو وارد کنيد')";

echo" </script> ";exit;

}


if (!mysql_connect("127.0.0.1","root"))
{
exit();
}


if (!mysql_select_db("php1"))
{
echo "no dtdbase";exit;
}


$select="SELECT * FROM t1 WHERE shsh='$shsh'";

$queri=mysql_query($select);

if (mysql_num_rows($queri)>0)
{
echo "رمز رو عوض کنيد";exit;
}


$insert="INSERT INTO t1 (name,shsh,name_f)
VALUES('$name','$shsh','$name_f')";


if (!mysql_query($insert))

{

echo" <script language='JavaScript' type='text/javascript'>" ;
echo " alert('اضافه نشد به بانک اطلاعاتي دوباره تکرار کنيد')";
echo" </script> "; exit;

}


$selkt="SELECT * FROM t1";

$qwe=mysql_query($selkt);


echo"<table align='center' border='1'>";

while ($obg=mysql_fetch_assoc($qwe))
{
while (list($fild,$values)=each($obg))
{
echo"<tr> ";
echo "<td>";


echo $fild ;


echo "</td>";
echo "<td>";
echo $values ;
echo "</td>";
echo"</tr> ";

}

}

echo"</table> ";
*/


?>



البته کد خودم درست است فقط می خوام دادها بصورت افقی نوشته شود در جدول همان طور که در پیام اول توضیع دادم

خیلی ممنونم

behzad.pc
سه شنبه 22 تیر 1389, 22:37 عصر
سلام
کسی نمیتونه مشکل ما رو حل کنه

rezahastam
چهارشنبه 23 تیر 1389, 03:24 صبح
چه جالب بدون پسورد هم میشه تو لوکال به دیتابیس کانکت شد!

برای در آوردن مقادیر به شکلی که فرمودید میتونید از دوتا حلقه استفاده کنید:



$all="SELECT * FROM `table_name`";
$result = mysql_query($all) or die(mysql_error());
$total= mysql_num_rows($result);
$total_cells = تعداد فیلد ها;

for ($j=0; $j <> $total_cells; $j++) {

for ($i=0; $i <> $total; $i++) {

print(@mysql_result($result,$i,$j));

}
}



زیاد دقت نکردم ، اما خودتون کد رو تحلیل کنید متوجه میشید