PDA

View Full Version : سوال: مشکل در select



wordnet
پنج شنبه 27 بهمن 1390, 22:01 عصر
سلام

دوستان من طبق اموزش زیر دیتابس ساختم و کد اجرا کرده اما متاسفانه جداول که نمایش داده میشه خالی هست!
http://www.phpeasystep.com/mysql/6.html

کدی که اجرا میشه


<?php

$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="700"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Retrieve data from database
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);

// Start looping rows in mysql database.
while($rows=mysql_fetch_array($result)){
?>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td width="100%"><? echo $rows['id']; ?></td>
<td width="30%"><? echo $rows['name']; ?></td>
<td width="30%"><? echo $rows['lastname']; ?></td>
<td width="30%"><? echo $rows['email']; ?></td>
</tr>
</table>

<?php
}
mysql_close();
?>




لطفا راهنمایی کنید

MMSHFE
پنج شنبه 27 بهمن 1390, 22:35 عصر
دیتابیس بنام 700 رو ساختین؟ توش جدول test_mysql رو ایجاد کردین؟ این جدول فیلدهای id و name و lastname و email رو داره؟ توی این جدول چیزی ثبت کردین؟ فقط وقتی که جواب همه این سؤالات مثبت باشه، بای انتظار نمایش اطلاعات رو داشته باشیم. اما اگه پاسخ سؤالات فوق مثبت باشه و هنوز چیزی دریافت نمیکنید، بعد از دستور mysql_query دستور زیر رو بنویسید (خط 16) :


echo mysql_error();

و بفرمایید چه پیغامی ظاهر میشه تا ببینیم مشکل از کجاست.
موفق باشید.

wordnet
پنج شنبه 27 بهمن 1390, 22:53 عصر
MMSHFE بسیار بسیار از پاسختون متشکرم

جواب کلیه سوالات مثبت است دیتابس من اینه:


CREATE TABLE `test_mysql` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM AUTO_INCREMENT=7 ; --
-- Dumping data for table `test_mysql`
--
INSERT INTO `test_mysql` VALUES (1, 'Billly', 'Blueton', 'bb5@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (2, 'Jame', 'Campbell', 'jame@somewhere.com');
INSERT INTO `test_mysql` VALUES (3, 'Mark', 'Jackson', 'mark@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (4, 'Linda', 'Travor', 'lin65@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (5, 'Joey', 'Ford', 'fordloi@somewhere.com');
INSERT INTO `test_mysql` VALUES (6, 'Sidney', 'Gibson', 'gibson@phpeasystep.com');



اینم عکس
http://upimage.ir/images/gkvj7mtcyu7eyk2rcja.gif

دستورات هم اینطور به گفته شما تغییر دادم


<?php

$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="700"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Retrieve data from database
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
echo mysql_error();
// Start looping rows in mysql database.
while($rows=mysql_fetch_array($result)){
?>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td width="100%"><? echo $rows['id']; ?></td>
<td width="30%"><? echo $rows['name']; ?></td>
<td width="30%"><? echo $rows['lastname']; ?></td>
<td width="30%"><? echo $rows['email']; ?></td>
</tr>
</table>

<?php
}
mysql_close();
?>


و نتیجه شد عکس زیر:
http://upimage.ir/images/tts3qgquvtd743wnfi1.gif

از کمکتون بسیار بسیار ممنونم

MMSHFE
پنج شنبه 27 بهمن 1390, 22:57 عصر
آهان! چیزی که مسلمه تعداد سطرهای جدول داره نشون میده که 6 رکورد خونده میشه. گمونم مشکل اینه که اندازه خونه مربوط به id رو بجای 10٪ روی 100٪ گذاشتین! ضمناً بهتره تگ شروع table (فقط خود جدول و نه tr و... رو) به قبل از while و تگ بستن table رو به بعد از while منتقل کنید تا برای هر موضوع، یک جدول جدا ایجاد نشه. کد پیشنهادی من:


<?php

$host='localhost'; // Host name
$username='root'; // Mysql username
$password=''; // Mysql password
$db_name='700'; // Database name
$tbl_name='test_mysql'; // Table name

// Connect to server and select database.
mysql_connect($host, $username, $password)or die("Cannot connect");
mysql_select_db($db_name)or die("Cannot select DB");

// Retrieve data from database
$sql="SELECT * FROM `{$tbl_name}`";
$result=mysql_query($sql);
// Start looping rows in mysql database.
echo '<table border="1px" cellpadding="3px" cellspacing="0px" width="400px">'.PHP_EOL;
while($row = mysql_fetch_assoc($result)) {
?>
<tr>
<td width="10%"><?php echo $row['id']; ?></td>
<td width="30%"><?php echo $row['name']; ?></td>
<td width="30%"><?php echo $row['lastname']; ?></td>
<td width="30%"><?php echo $row['email']; ?></td>
</tr>
<?php
}
mysql_free_result($result);
mysql_close();
?>
</table>

موفق باشید.

wordnet
پنج شنبه 27 بهمن 1390, 23:05 عصر
انجام دادم این شد:


<?php

$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="700"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Retrieve data from database
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
echo mysql_error();
// Start looping rows in mysql database.
?>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<?
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td width="10%"><? echo $rows['id']; ?></td>
<td width="30%"><? echo $rows['name']; ?></td>
<td width="30%"><? echo $rows['lastname']; ?></td>
<td width="30%"><? echo $rows['email']; ?></td>
</tr>
</table>

<?php
}
mysql_close();
?>


و ارور:
Parse error: parse error in C:\wamp\www\a500\member.php on line 32

داده شد

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

بسیار متشکر

MMSHFE
پنج شنبه 27 بهمن 1390, 23:10 عصر
این کد رو تست کنید:


<?php

$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="700"; // Database name
$tbl_name="test_mysql"; // Table name

// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// Retrieve data from database
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
echo mysql_error();
// Start looping rows in mysql database.
?>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td width="10%"><? echo $rows['id']; ?></td>
<td width="30%"><? echo $rows['name']; ?></td>
<td width="30%"><? echo $rows['lastname']; ?></td>
<td width="30%"><? echo $rows['email']; ?></td>
</tr>
</table>

<?php
}
mysql_close();
?>

مشکل توی خط 20 بود (تگ شروع PHP)
موفق باشید.

wordnet
پنج شنبه 27 بهمن 1390, 23:17 عصر
الان این شکلی شد:
http://upimage.ir/images/t00inpqcswtw7kc6na1k.gif

اقا پیشنهاد قبلیم بهتر نیست؟یه کد ندارید اماده من الگو بگیرم؟

MMSHFE
پنج شنبه 27 بهمن 1390, 23:30 عصر
دوست عزیز، توی خطوط 24 تا 27 هم لطفاً تگهای شروع PHP رو درست کنید. اون نمونه کدی که گذاشتم آماده بود دیگه. چرا از همون استفاده نمیکنید؟

wordnet
پنج شنبه 27 بهمن 1390, 23:40 عصر
شما که کد اماده ای قرار ندادید؟منظورم کدی جز کدهای خودم است این کد من مشکل داره درست نشد!:افسرده:

MMSHFE
پنج شنبه 27 بهمن 1390, 23:49 عصر
ساختار دیتابیس بنام 700 :

CREATE TABLE `test_mysql` (
`id` int(4) NOT NULL auto_increment,
`name` varchar(65) NOT NULL default '',
`lastname` varchar(65) NOT NULL default '',
`email` varchar(65) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=7 ;
--
-- Dumping data for table `test_mysql`
--
INSERT INTO `test_mysql` VALUES (1, 'Billly', 'Blueton', 'bb5@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (2, 'Jame', 'Campbell', 'jame@somewhere.com');
INSERT INTO `test_mysql` VALUES (3, 'Mark', 'Jackson', 'mark@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (4, 'Linda', 'Travor', 'lin65@phpeasystep.com');
INSERT INTO `test_mysql` VALUES (5, 'Joey', 'Ford', 'fordloi@somewhere.com');
INSERT INTO `test_mysql` VALUES (6, 'Sidney', 'Gibson', 'gibson@phpeasystep.com');

کد نمونه برای استفاده:


<!doctype html>
<html>
<head>
<title>Database DEMO</title>
<meta charset="utf-8"/>
</head>
<body>
<?php
mysql_connect('localhost', 'root', '') or die('Connection error');
mysql_select_db('700') or die('Database error');
mysql_query('SET NAMES \'utf8\'');
$data = mysql_query('SELECT * FROM `test_mysql` ORDER BY `id`');
if($data && mysql_num_rows($data) > 0) {
echo '<table border="1px">'.PHP_EOL;
while($item = mysql_fetch_assoc($data)) {
echo '<tr>'.PHP_EOL;
echo '<td>'.$item['id'].'</td>'.PHP_EOL;
echo '<td>'.$item['name'].'</td>'.PHP_EOL;
echo '<td>'.$item['lastname'].'</td>'.PHP_EOL;
echo '<td>'.$item['email'].'</td>'.PHP_EOL;
echo '</tr>'.PHP_EOL;
}
mysql_free_result($data);
echo '</table>'.PHP_EOL;
}
else {
echo '<p>Data not found.</p>'.PHP_EOL;
echo '<p>'.mysql_error().'</p>'.PHP_EOL;
}
?>
</body>
</html>

این هم نمونه خروجی این کد:
82801
موفق باشید.

wordnet
جمعه 28 بهمن 1390, 17:49 عصر
بسیار بسیار ممنون مشکلم حلش شد فقط جهت یادگیری اگر زحمتی نیست کدهای زیر رو برام توضیح مبتدیانه بدید


خط 12 بخش ORDER BY `id`' یعنی چی؟
بعد این ها هم یعنی چی PHP_EOL;

ممنون

MMSHFE
جمعه 28 بهمن 1390, 23:24 عصر
`ORDER BY `id یعنی اینکه رکوردها رو براساس فیلد id مرتب کن.
PHP_EOL هم یک ثابت در PHP و بیانگر کارکتر End Of Line هست. جدیداً علاقمند شدم از این ثابت بجای "n\" استفاده کنم چون همونطور که میدونید توی لینوکس کارکتر "n\" و توی ویندوز کارکتر "r\n\" مشخص کننده پایان خط هست ولی با استفاده از این ثابت، دیگه نگران این نیستم که کد قراره روی چه سیستمی اجرا بشه چون خودش برحسب اون سیستم عامل، کارکتر مناسب رو برای پایان خط میگذاره. درواقع باعث میشه آخر دستور echo یک Enter زده بشه و اطلاعات بعدی در سطر بعد توی کد خروجی نوشته بشن. موفق باشید.

wordnet
شنبه 29 بهمن 1390, 12:42 عصر
سلام

یه سوال من میخوام فیلد پسوردم رو هم نشون بده یه همچین چیزی ساختم و درست اجرا شد


echo '<td>'.$item['pass'].'</td>'.PHP_EOL;



ولی یه مورد هست من پسورد رو توی بانک به صورت md5 ریختم حالا توی چاپ اینجا چطور md5 رو برگردونم؟لطفا برام توی کد بالا قرار بدید

تشکر

MMSHFE
شنبه 29 بهمن 1390, 19:14 عصر
نمیشه برگردوند. موفق باشید.