PDA

View Full Version : پیشرفته تر کردن این برنامه



dj_baba
یک شنبه 23 دی 1386, 00:57 صبح
این یک برنامه برای نمایش تمام اطلاعات یک پایگاه هستش
من در این مورد به کمک احتیاج احتیاج دارم که بشه این کد یا Query جوری پیشرفته کرد به مثلا به اسم یا ناشر یا تاریخ انتشار جستجو کرد
طوری که اگر تاریخ انتشار و نام وارد شد جستجو حالت پیشرفته داشته باشه





<?php
If(!($msqlconc = mssql_connect("127.0.0.1", "sa", "")))
{
print("could not connect to MS-SQL Server database");
} else {
mssql_select_db("library", $msqlconc);
$query = "SELECT * FROM book";
$runquery = mssql_query($query, $msqlconc);
$numfields = mssql_num_fields($runquery);
print("<TABLE BORDER=1>\n");
print("<TR><TD><b>Name</b><TD><TD><b>publisher</b><TD></TR>");
while($db_row = mssql_fetch_array($runquery))
{
echo "<TR><TD>".$db_row['name']."<TD>";
echo "<TD>".$db_row['publisher']."<TD></TR>";
}
echo "</TABLE>";
mssql_close($msqlconc);
}
?>

reza_rad
یک شنبه 23 دی 1386, 15:17 عصر
بشه این کد یا Query جوری پیشرفته کرد به مثلا به اسم یا ناشر یا تاریخ انتشار جستجو کرد
در مورد Where clause توی ساختار Select مطالعه کنید:
Selecting rows: the where clause (http://manuals.sybase.com/onlinebooks/group-as/asg1250e/sqlug/@Generic__BookTextView/6070;pt=6070#X)

dj_baba
یک شنبه 23 دی 1386, 16:54 عصر
مرسی ولی من query بلدم تنها مشکلم اینه که نمی دونم باید چطوری تعریف کنم 2 textbox اطلاعات رو فرستادن چطوری بگرده تویه php یهنی چطوری وارد query کنم ایمن 2تا ورودی رو

dj_baba
یک شنبه 23 دی 1386, 23:59 عصر
<form>
<input name="a">
<input name="b">
<input name="c">
<input name="go" type="submit">
</form>



<?php
if(isset($_GET['go'])){
$tq=$query='SELECT * FROM TABLE WHERE (';
if(!empty($_GET['a']))
$query.='AF='.$_GET['a'].')OR(';
if(!empty($_GET['b']))
$query.='BF='.$_GET['b'].')OR(';
if(!empty($_GET['c']))
$query.='CF='.$_GET['c'].')OR(';
$e=($tq==$query)?false:true;
if($e)
$query=substr($query,0,strlen($query)-3);
else
die('No input');
echo $query;
}
?>



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

moohssenn
دوشنبه 24 دی 1386, 01:00 صبح
if(isset($_GET['go'])){

همان طور که در بخش فرمتون مشاهده میکنید دکمه سابمیت به این نام است ( go ) پس این شرط بررسی میکنه که آیا این دکمه زده شده است یا خیر .


if(!empty($_GET['a']))

فیلدی نیز با نام a در فرمتان وجود دارد که مقدار اون ارسال شده است فقط تعجبم اینه که چرا از $_GET استفاده شده باید از $_POST استفاده بشه چون نوع action فرم مشخص نشده پس باید POST باشه !!!!


$query.='AF='.$_GET['a'].')OR(';
$query.='CF='.$_GET['c'].')OR(';


خوب توی این بخشم که مشخصه اگه در فیلد a یا c ( که تکس باکس هستند ) مقداری وارد شده باشه برای جستجو اونو در شرط اس کیو ال به کار میبره و قبل از اجرای sql مربوطه اونو بهش اضافه کرده . AF یا CF باید نام فیلد باشه .

musiox
دوشنبه 24 دی 1386, 01:35 صبح
برای اتصال دو رشته توی PHP اینطوری عمل میکنیم

$str3=$str1.$str2;
اینم

$str1.=$str;
یعنی

$str1=$str1.$str2;
اگه method فرمت post باشه . بعد از ارسال اطلاعات , توی کدات بوسیله متغیر $_POST که یه آرایه است به مقادیر فیلدات از طریق اسمشون دسترسی داری . اینو امتحان کن :


<?php
print_r($_POST);
?>


<form method="post">
<input name="a">
<input name="b">
<input name="c">
<input type="submit">
</form>


برای متغیر $_GET هم همین داستان هست.