Omidn1996

مشکل در اتصال به پایگاه داده

24 پست در این موضوع قرار دارد

سلام دوستان

من کدهای زیر رو اجرا میکنم


<?php
$con = mysql_connect("localhost" , "root" , "");
mysql_select_db("dbtest" , $con);
mysql_query("INSERT INTO tblstudent (id , name , family , average) VALUES (20 , "ali" , "niza" , 50)");
mysql_close($con);
?>

و با ارور زیر مواجه میشم


Parse error: parse error in C:\wamp\www\index.php on line 4

نام دیتابیس و جدول و فیلدها رو هم دو سه بار چک کردم

ممنون میشم راهنمایی کنید

0

به اشتراک گذاری این پست


لینک به پست

سینتکس متن کوئری صحیح نیست


mysql_query("INSERT INTO tblstudent (id , name , family , average) VALUES (20 , "ali" , "niza" , 50)");

خود کوئری با دابل کوتیشن شروع شده و مقادیر هم با دابل کوتیشن که غلطه .

2

به اشتراک گذاری این پست


لینک به پست

سینتکس متن کوئری صحیح نیست


mysql_query("INSERT INTO tblstudent (id , name , family , average) VALUES (20 , "ali" , "niza" , 50)");

خود کوئری با دابل کوتیشن شروع شده و مقادیر هم با دابل کوتیشن که غلطه .

آهان بله دقت نکردم

دستتون درد نکنه ممنون

0

به اشتراک گذاری این پست


لینک به پست

دوستان یه مشکل دیگه هم پیدا کردم که ترجیح دادم دیگه تاپیک جدید نزنم

کد زیر رو وارد میکنم


<html>
<head>
</head>
<body>
<?php
$con = mysql_connect("localhost" , "root", "");
mysql_select_db("dbomid" , $con);
$var = mysql_query("select * from tblomid");
echo $var;
?>
</body>
</html>

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


Resource id #4

0

به اشتراک گذاری این پست


لینک به پست

دوستان یه مشکل دیگه هم پیدا کردم که ترجیح دادم دیگه تاپیک جدید نزنم

کد زیر رو وارد میکنم


<html>
<head>
</head>
<body>
<?php
$con = mysql_connect("localhost" , "root", "");
mysql_select_db("dbomid" , $con);
$var = mysql_query("select * from tblomid");
echo $var;
?>
</body>
</html>

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


Resource id #4

فقط با ارسال query ، اطلاعات نمایش داده نمیشه.

برای چند فیلد »


<html>
<head>
</head>
<body>
<?php
$con = mysql_connect("localhost" , "root", "");
mysql_select_db("dbomid" , $con);
$var = mysql_query("select * from tblomid");
while($row = mysql_fetch_array($var)) {
echo $row['نام فیلد'];
}
?>
</body>
</html>

برای یک فیلد »


<html>
<head>
</head>
<body>
<?php
$con = mysql_connect("localhost" , "root", "");
mysql_select_db("dbomid" , $con);
$var = mysql_query("select نام فیلد from tblomid");
$row = mysql_fetch_array($var);
echo $row['نام فیلد'];
?>
</body>
</html>

1

به اشتراک گذاری این پست


لینک به پست

آهان ممنون

خوب الان من از کد پایین استفاده میکنم، در بار اول مقدار فیلد اول رو نمایش میده ، در بار دوم مقدار فیلد دوم رو نمایش میده (در صورتی که نباید مقدار فیلد اول رو نشون بده باید در همون بار اول مقدار سطر اول (یعنی هر دو فیلد رو نشون بده) و در بار سوم ارور میده


<?php
$con = mysql_connect("localhost" , "root", "");
mysql_select_db("dbomid" , $con);
$var = mysql_query("select * from tblomid");
$count = mysql_num_rows($var);
$rows = mysql_fetch_row($var);
for($i=0 ; $i<$count ; $i++)
{
echo $rows[$i]."<br />";
}
?>

این هم اروری که میده ، ممنون میشم راهنمایی کنید


ali
niza
Notice: Undefined offset: 2 in C:\wamp\www\index.php on line 13

Notice: Undefined offset: 3 in C:\wamp\www\index.php on line 13

Notice: Undefined offset: 4 in C:\wamp\www\index.php on line 13

Notice: Undefined offset: 5 in C:\wamp\www\index.php on line 13

Notice: Undefined offset: 6 in C:\wamp\www\index.php on line 13

0

به اشتراک گذاری این پست


لینک به پست

شما برای بدست اوردن هر سطر باید 1 بار

$rows = mysql_fetch_row($var);

رو اجرا کنید(یعنی با استفاده از یک حلقه مثل حلقه while اول همه سطرها رو بدست بیارید)

مثل

while($row = mysql_fetch_array($var))

مقداری هم که در نهایت بوجود میاد یک ارایه 2 بعدی از سطرها و ستونهاست

کدتون به صورت زیر در میاد


<html>
<head>
</head>
<body>
<?php
$con = mysql_connect("localhost" , "root", "");
mysql_select_db("dbomid" , $con);
$var = mysql_query("select * from tblomid");
while($row = mysql_fetch_array($var)) {
echo $row['نام فیلد1'].'=='.$row['نام فیلد2'];
}
?>
</body>
</html>

در نهایت توابع mysql_ از دور خارج شدن بهتره از کلاسهای PDO یا MYSQLI که بهتر هستن استفاده کنید

لینکهای زیر به شما کمک میکنه


http://php.net/manual/en/function.mysql-fetch-array.php
http://stackoverflow.com/questions/2974011/while-row-mysql-fetch-arrayresult-how-many-loops-are-being-performed
http://www.w3schools.com/php/func_mysql_fetch_array.asp

2

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

خیلی ممنون از توضیحتون (هر چند زیاد متوجه نشدم آخه هنوز به مطلب آرایه دو بعدی نرسیدم)، اما علاوه بر این توضیحات میخواستم بدونم اشکال کدی که بالا نوشتم چیه؟ (با استفاده از حلقه for)

ویرایش شده در توسط Omidn1996
0

به اشتراک گذاری این پست


لینک به پست

ببینین شما یک سلکت به دیتابیس میزنین

نتیجه اون ممکنه چند سطر باشه

مثلا 10 سطر

تابع

mysql_fetch_array

فقط سطر جاری رو برمیگردونه

خب برای بدست اوردن 10 سطر شما باید 10 بار

mysql_fetch_array

رو فراخوانی کنید

مثلا با

$rows = array();
while($row = mysql_fetch_array($var))
{
$rows[] = $row;
}

خب حالا ما همه سطرها رو تو متغییر $rows داریم

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

$count = count($rows);
for($i=0 ; $i<$count ; $i++)
{
echo $rows[$i]['نام فیلد']."<br />";
}

2

به اشتراک گذاری این پست


لینک به پست

خیلی ممنون متوجه شدم

حالا یه مشکلی دیگه دارم که ممنون میشم کمک کنید (که ارتباطی هم با عنوان تاپیک نداره اما چون تازه دارم php یادمیگیرم ممکنه زیاد با مشکل مواجه بشم واسه همین نمیخوام هر رو یه تاپیک بزنم و انجمن شلوغ بشه، اگر عنوان تاپیک رو مدیران عوض کنند ممنون میشم)

من کد زیر رو توی ایندکس میگذارم


<?php
import_request_variables('p','p_');
if(isset($p_usname) && ($p_pass))
{
if($p_usname == admin && $p_pass == 123)
{
session_start();
$_session['username']=$p_usname ;
header("location:login.php");
}
else
{
echo "plz check ur usname and pss";
}
}
?>
<html>
<head>
</head>
<body>
<div style="line-height:60px; text-align:center; margin-top:200px;">
<form action="" method="post">
Username: <input type="text" name="usname" /><br/>
Password: <input type="password" name="pass" /><br/>
<input type="submit" value="log in" />
</form>
</div>
</body>
</html>

و کد زیر رو هم توی فایل login.php


<?php
session_start();
if(isset($_session['username']))
{
echo "wellcome to management page";
}
else
echo "plz enter the usname ant pass";
?>

که طبیعتا اگر یوزرنیم admin و پسورد 123 رو وارد کنیم، باید به login.php وارد بشیم و عبارت "wellcome to management page" رو نشون بده، اما حتی اگر یوزر و پسورد رو درست وارد کنیم عبارت "plz enter the usname ant pass" نمایش داده میشه ، یعنی یه جوری سشن کار نمیکنه

ممنون میشم راهنمایی کنید.

0

به اشتراک گذاری این پست


لینک به پست

خیلی ممنون متوجه شدم

حالا یه مشکلی دیگه دارم که ممنون میشم کمک کنید (که ارتباطی هم با عنوان تاپیک نداره اما چون تازه دارم php یادمیگیرم ممکنه زیاد با مشکل مواجه بشم واسه همین نمیخوام هر رو یه تاپیک بزنم و انجمن شلوغ بشه، اگر عنوان تاپیک رو مدیران عوض کنند ممنون میشم)

من کد زیر رو توی ایندکس میگذارم


<?php
import_request_variables('p','p_');
if(isset($p_usname) && ($p_pass))
{
if($p_usname == admin && $p_pass == 123)
{
session_start();
$_session['username']=$p_usname ;
header("location:login.php");
}
else
{
echo "plz check ur usname and pss";
}
}
?>
<html>
<head>
</head>
<body>
<div style="line-height:60px; text-align:center; margin-top:200px;">
<form action="" method="post">
Username: <input type="text" name="usname" /><br/>
Password: <input type="password" name="pass" /><br/>
<input type="submit" value="log in" />
</form>
</div>
</body>
</html>

و کد زیر رو هم توی فایل login.php


<?php
session_start();
if(isset($_session['username']))
{
echo "wellcome to management page";
}
else
echo "plz enter the usname ant pass";
?>

که طبیعتا اگر یوزرنیم admin و پسورد 123 رو وارد کنیم، باید به login.php وارد بشیم و عبارت "wellcome to management page" رو نشون بده، اما حتی اگر یوزر و پسورد رو درست وارد کنیم عبارت "plz enter the usname ant pass" نمایش داده میشه ، یعنی یه جوری سشن کار نمیکنه

ممنون میشم راهنمایی کنید.

شرط رو درست وارد نکردید :


if($p_usname == admin && $p_pass == 123)

باید به این صورت باشه :


if($p_usname == "admin" && $p_pass == "123")

1

به اشتراک گذاری این پست


لینک به پست

ممنون از راهنماییتون اما فکر نمیکنم مشکل چیزی باشه که شما گفتید

اگر مشکل از اون بود باید عبارت "plz check ur usname and pss" نمایش داده میشد ، در صورتی که الان یوزر و پسود تایید میشن و به صفحه ی login.php هدایت میشه اما اونجا سشن ها کار نمیکنه

0

به اشتراک گذاری این پست


لینک به پست

یه چیز دیگه الان دیدم.

session_start رو باید داخل ایندکس بذارید.

اونجا که وقتی کاربر لاگین میکنه ، session مقدار دهی میشه ، session هنوز start نشده

0

به اشتراک گذاری این پست


لینک به پست

توی فایل ایندکس هم که گذاشتم

اول سشن استارت شده بعد مقدار دهی میشه

0

به اشتراک گذاری این پست


لینک به پست

توی فایل ایندکس هم که گذاشتم

اول سشن استارت شده بعد مقدار دهی میشه

:huh:

درست شد ؟

0

به اشتراک گذاری این پست


لینک به پست

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

0

به اشتراک گذاری این پست


لینک به پست

یادآوری ...

0

به اشتراک گذاری این پست


لینک به پست

کسی نیست راهنمایی کنه؟

0

به اشتراک گذاری این پست


لینک به پست

از تمام توابع شما برای من خطا گرفت :huh: مخصوصا import_request_variables که نمیدونم چی هست اصلا :D و ندیدم کسی استفاده کنه.

صفحه ایندکس :


<?php
session_start();
if(isset($_POST['submit'])) {
if($_POST['usname'] == "admin" && $_POST['pass'] == 123) {
$_SESSION['username']=$_POST['usname'];
header("location: login.php");
}
else
{
echo "plz check ur usname and pss";
}
}
?>
<html>
<head>
</head>
<body>
<div style="line-height:60px; text-align:center; margin-top:200px;">
<form action="" method="post">
Username: <input type="text" name="usname" /><br/>
Password: <input type="password" name="pass" /><br/>
<input name="submit" type="submit" value="log in" />
</form>
</div>
</body>
</html>

صفحه لاگین :


<?php
session_start();
if(isset($_SESSION['username']))
{
echo "wellcome to management page";
}
else
echo "plz enter the usname ant pass";
?>

1

به اشتراک گذاری این پست


لینک به پست

ممنون

بله کد شما درست بود، و عمل کرد، اما نمیدونم برای چی کد من عمل نمیکنه، من دنبال حل مشکل کد خودم هستم، ممنون میشم راهنمایی کنید.

-----------------------------------

با تابع import_request_variables میشه به مقادیری که از طریق فرم فرستادید دسترسی پیدا کرد اگر که مقادیر رو با متد post فرستادید مقدار اول باید p باشه و اگر با متد get فرستادید مقدار اول باید g باشه و مقدار دوم هم پیشوند دسترسی به اون مقدادیر رو مشخص میکنه

مثلا شما یه تکست باکس با name ه pass دارید که با متد post فرستادید ، اگر i


import_request_variables('p' , 'p_')

رو وارد کنید میتونید با $p_pass به اون دسترسی داشته باشید و دیگه نیازی به استفاده از


$_POST['pass']

نیست (نمیدونم تونستم خوب توضیح بدم یا نه)

1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

از کد شما این خطا رو برای من میدهد.

Fatal error: Call to undefined function import_request_variables()

کد خودم تا session_start داخل هر 2 صفحه نذاشتم کار نکرد

ویرایش شده در توسط Ghasem Paran
0

به اشتراک گذاری این پست


لینک به پست

خیر من همچنین اروری نمیگیرم

خوب اگر به کد من هم توجه کنید توی هر دو صفحه session_start() وجود داره

0

به اشتراک گذاری این پست


لینک به پست

من تست کردم کد شما درست هست و پیغام

"wellcome to management page" رو نمایش داد

1

به اشتراک گذاری این پست


لینک به پست

من تست کردم کد شما درست هست و پیغام

"wellcome to management page" رو نمایش داد

کد کی درسته؟ من یا آقا قاسم؟ چون کد ایشون درسته و عمل میکنه

اما من دنبال اینم ببینم مشکل کد خودم چیه

چون الان دوباره کد خودم رو اجرا کردم و باز هم پیغام " plz enter the usname ant pass" رو نمایش داد

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری