PDA

View Full Version : سوال: مشکل با ثبت داده ها



speeed
چهارشنبه 03 اسفند 1390, 10:04 صبح
سلام دوستان
من یه صفحه سرچ دارم که شامل یه کمبو باکس هست که دو تا انتخاب داره حقیقی و حقوقی و یه اینپت داره که کد ملی هست و بر اساس اون جستجو انجام میشه.
این کد صفحه منه


<html>
<head></head>
<body>
<table width="600" border="1" dir="rtl">
<tr>
<td>user</td>
<td>pass</td>
<td>comment</td>
</tr>
<?php
$table = $_POST['no'] == 'saab' ? 'haghighi' : 'hogoghi';
include(../../config.php);
$con = mysql_connect($hostname,$user,$password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("$dbname", $con);

$tcode = explode(' ', $_POST['tcode']);
$sql = 'SELECT * FROM $table WHERE (`name` LIKE \'%';
foreach($$tcode as $tcode) {
$sql .= $tcode.'%';
}
$sql .= '\')');
while($row = mysql_fetch_assoc($sql))
{
?>
<tr>
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['family'] ?></td>
<td><?php echo $row['code'] ?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>

خوب حالا من یه مشکل دارم اونم اینه که اگر حقیقی انتخاب کرد table$ من میشه حقیقی و اگر حقوقی میشه حقوقی موقع خواندن توی جدول قرار دادن نام جداولم یکی نیست.یعنی مثلا حقیقی چند تا فیلد مختلف داره حقوقی هم همین طور.
حالا چطوری باید این کارو بکنم؟

MMSHFE
چهارشنبه 03 اسفند 1390, 12:25 عصر
میشه دقیقتر توضیح بدین؟ مثلاً ساختار جداول حقیق و حقوقی و کد فرم جستجو رو بگذارین و دقیقاً بگین میخواین چه نتیجه ای بگیرین؟

speeed
چهارشنبه 03 اسفند 1390, 13:46 عصر
ببینید من الان میخوام وقتی سرچ میکنم بر اساس کد ملی رو میزنم برام کل مشخصات طرف بیاد.
توی صفحه سرچ من یک کمبو باکس هست که انتخاب میکنه حقیقی و حقوقی حالا اگر حقوقی بود باید تو جدول حقوقی بگرده و کد ملی را پیدا کنه و اگر حقیقی بود باید بره توی اون جدول
کد فرم سرچ که بالا قرار دادم
اینم از جدول های من

mysql_query("CREATE TABLE haghighi(
`name` varchar(32) NOT NULL default '',
`family` varchar(32) NOT NULL default '',
`code` varchar(32) NOT NULL default '',
`fathername` varchar(32) NOT NULL default '',
`codemeli` varchar(32) NOT NULL default '',
`databrit` varchar(32) NOT NULL default '',
`placebrit` varchar(32) NOT NULL default '',
`salso` varchar(32) NOT NULL default '',
`mahal` varchar(32) NOT NULL default '',
`tell` varchar(32) NOT NULL default '',
`mob` varchar(32) NOT NULL default '',
`email` varchar(32) NOT NULL default '',
`addres` varchar(32) NOT NULL default '',
`codeposti` varchar(32) NOT NULL default '',
PRIMARY KEY (`codemeli`))");
mysql_query("CREATE TABLE hogoghi(
`name` varchar(32) NOT NULL default '',
`numsabet` varchar(32) NOT NULL default '',
`addres` varchar(32) NOT NULL default '',
`codebime` varchar(32) NOT NULL default '',
`nameekhtesari` varchar(32) NOT NULL default '',
`saltasis` varchar(32) NOT NULL default '',
`codemeli` varchar(32) NOT NULL default '',
`email` varchar(32) NOT NULL default '',
`tell` varchar(32) NOT NULL default '',
`fox` varchar(32) NOT NULL default '',
PRIMARY KEY (`codemeli`))");

Reza1607
چهارشنبه 03 اسفند 1390, 19:33 عصر
اين خط

$sql = 'SELECT * FROM $table WHERE (`name` LIKE \'%';
رو به اين صورت اصلاح كنيد

$sql = 'SELECT * FROM '.$table.' WHERE (`name` LIKE \'%';

speeed
چهارشنبه 03 اسفند 1390, 20:11 عصر
این کد نصفه و نیمه ما هست کسی هست بتونه راهنمایی بکنه


<html>
<head></head>
<body>

<?php
$table = $_POST['no'] == 'saab' ? 'haghighi' : 'hogoghi';
$tcode = explode(' ', $_POST['tcode']);
include("../../config.php");
$con = mysql_connect($hostname,$user,$password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("$dbname", $con);




switch($table)
{
case 'haghighi':
$sql = 'SELECT * FROM `haghighi` WHERE (`name` LIKE \'%';
foreach($$tcode as $tcode)
{
$sql .= $tcode.'%';
}

while($row = mysql_fetch_assoc($sql))
{
?>
<table width="600" border="1" dir="rtl">
<tr>
<td>نام</td>
<td>نام خانوادکي</td>
<td>نام پدر</td>
<td>کدملي</td>
<td>تاريخ تولد</td>
<td>محل تولد</td>
<td>سال صدور</td>
<td>محل صدور</td>
<td>تلفن</td>
<td>موبايل</td>
<td>ايميل</td>
<td>آدرس</td>
<td>کدپستي</td>
</tr>
<tr>
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['family'] ?></td>
<td><?php echo $row['fathername'] ?></td>
<td><?php echo $row['codemeli'] ?></td>
<td><?php echo $row['databrit'] ?></td>
<td><?php echo $row['placebrit'] ?></td>
<td><?php echo $row['salso'] ?></td>
<td><?php echo $row['mahal'] ?></td>
<td><?php echo $row['tell'] ?></td>
<td><?php echo $row['mob'] ?></td>
<td><?php echo $row['email'] ?></td>
<td><?php echo $row['addres'] ?></td>
<td><?php echo $row['codeposti'] ?></td>

</tr>
</table>
</body>
</html>

Reza1607
چهارشنبه 03 اسفند 1390, 20:24 عصر
دوست عزيز چند نكته درباره كد شما
اول اين كه شما بالاخره مي خواين جستجو رو براساس كد ملي انجام بدين يا نام؟
اگه بر اساس كدملي هست چرا تو كوئري كه نوشته ايد در قسمت شرط فيلد نام رو اوردين
دوم اين كه هدر جدولتون به تعداد ركورد ها تكرار ميشه
سوم هم اين كه بقيه كد رو نذاشته ايد يا ...

speeed
چهارشنبه 03 اسفند 1390, 20:59 عصر
اخ ببخشید اره بر اساس کد ملی هست.
نه همه کد اینه من هنگ کردم:گریه:

Reza1607
چهارشنبه 03 اسفند 1390, 21:04 عصر
اين كد رو تست كنيد

<html>
<head></head>
<body>

<?php
$table = $_POST['no'] == 'saab' ? 'haghighi' : 'hogoghi';
$code = $_POST['tcode'];
include("../../config.php");
$con = mysql_connect($hostname,$user,$password) or die('Could not Connect : '.mysql_error());
mysql_select_db("$dbname", $con);

$sql = "SELECT * FROM `$table` WHERE (`code` ='$code')";

$result=mysqL-query($sql) or die('Could not run query : '.mysql_error());
?>
<table width="600" border="1" dir="rtl">
<tr>
<td>نام</td>
<td>نام خانوادکي</td>
<td>نام پدر</td>
<td>کدملي</td>
<td>تاريخ تولد</td>
<td>محل تولد</td>
<td>سال صدور</td>
<td>محل صدور</td>
<td>تلفن</td>
<td>موبايل</td>
<td>ايميل</td>
<td>آدرس</td>
<td>کدپستي</td>
</tr>
<?php
while($row = mysql_fetch_assoc($result))
{
?>
<tr>
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['family'] ?></td>
<td><?php echo $row['fathername'] ?></td>
<td><?php echo $row['codemeli'] ?></td>
<td><?php echo $row['databrit'] ?></td>
<td><?php echo $row['placebrit'] ?></td>
<td><?php echo $row['salso'] ?></td>
<td><?php echo $row['mahal'] ?></td>
<td><?php echo $row['tell'] ?></td>
<td><?php echo $row['mob'] ?></td>
<td><?php echo $row['email'] ?></td>
<td><?php echo $row['addres'] ?></td>
<td><?php echo $row['codeposti'] ?></td>
</tr>
<?php
}//end of while
mysql_close();
?>
</table>
</body>
</html>


كد رو اصلاح كردم ببينيد درست شد

speeed
چهارشنبه 03 اسفند 1390, 21:22 عصر
این ارور رو داد
Could not run query : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''%12345%' at line 1