رفتن به مطلب

پست های پیشنهاد شده

سلام

توی خط 107 این کد این ارور رو میده

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource on line 107

<?php

class mysqldb {

/*

FILL IN YOUR DATABASE DETAILS BEFORE RUNNING THE EXAMPLE

*/

var $hostname = "localhost";

var $username = "user";

var $password = "pass";

var $database = "db";

function db_connect() {

$result = mysql_connect($this->hostname,$this->username,$this->password);

if (!$result) {

echo 'Connection to database server at: '.$this->hostname.' failed.';

return false;

}

return $result;

}

function select_db() {

$this->db_connect();

if (!mysql_select_db($this->database)) {

echo 'Selection of database: '.$this->database.' failed.';

return false;

}

}

function query($query) {

$result = mysql_query($query) or die("Query failed: $query<br><br>" . mysql_error());

return $result;

mysql_free_result($result);

}

function fetch_array($result) {

return mysql_fetch_array($result);

}

function num_rows($result) {

return mysql_num_rows($result);

}

function last_insert_id() {

return mysql_insert_id();

}

function kill() {

mysql_close();

}

}

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

<title>jQuery</title>

<script type="text/javascript" src="js/jquery.js"></script>

<link rel="stylesheet" type="text/css" href="css/css.css" />

<script type="text/javascript">

var count = 0;

$(function(){

$('p#add_field').click(function(){

count += 1;

$('#container').append(

'<strong>Link #' + count + '</strong><br />'

+ '<input id="field_' + count + '" name="fields[]' + '" type="text" /><br />' );

});

});

</script>

<body>

<?php

//If form was submitted

if (isset($_POST['btnSubmit'])) {

//create instance of database class

$db = new mysqldb();

$db->select_db();

//Insert static values into users table

$sql_user = sprintf("INSERT INTO users (Username, Password) VALUES ('%s','%s')",

mysql_real_escape_string($_POST['name']),

mysql_real_escape_string($_POST['password']) );

$result_user = $db->query($sql_user);

//Check if user has actually added additional fields to prevent a php error

if ($_POST['fields']) {

//get last inserted userid

$inserted_user_id = $db->last_insert_id();

//Loop through added fields

foreach ( $_POST['fields'] as $key=>$value ) {

$table = "CREATE TABLE mysql_real_escape_string($value)

(

id INT(11) NOT NULL AUTO_INCREMENT,

PRIMARY KEY(id),

name CHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,

)";

mysql_query($table,$result);

//Insert into websites table

$sql_website = sprintf("INSERT INTO websites (Website_URL) VALUES ('%s')",

mysql_real_escape_string($value) );

$result_website = $db->query($sql_website);

$inserted_website_id = $db->last_insert_id();

//Insert into users_websites_link table

$sql_users_website = sprintf("INSERT INTO users_websites_link (UserID, WebsiteID) VALUES ('%s','%s')",

mysql_real_escape_string($inserted_user_id),

mysql_real_escape_string($inserted_website_id) );

$result_users_website = $db->query($sql_users_website);

}

} else {

//No additional fields added by user

}

echo "<h1>User Added, <strong>" . count($_POST['fields']) . "</strong> website(s) added for this user!</h1>";

//disconnect mysql connection

$db->kill();

}

?>

<?php if (!isset($_POST['btnSubmit'])) { ?>

<h1>New User Signup</h1>

<form name="test" method="post" action="">

<label for="name">Username:</label>

<input type="text" name="name" id="name" />

<div class="spacer"></div>

<label for="name">Password:</label>

<input type="text" name="password" id="password" />

<div class="spacer"></div>

<div id="container">

<p id="add_field"><a href="#"><span>» Add your favourite links.....</span></a></p>

</div>

<div class="spacer"></div>

<input id="go" name="btnSubmit" type="submit" value="Signup" class="btn" />

</form>

<?php } ?>

</body>

</html>

لطفا کمک کنید

خط 107 این کد نوشته شده


mysql_query($table,$result);

ویرایش شده توسط Morteza
کدهای بلند در longbox
لینک به ارسال

این کلاس وضعش داغونه

اما واسه اینکه کارت راه بی افته به جای mysql_query باید بزنی


$db->query($qr);

لینک به ارسال

مرسی

این کدی که گذاشتین دقیقا جایگزین کردم نشد

این کد رو هم جایگزین کردم بازم نشد


$db->query($table,$result);

اگه میشه این رو خودتون امتحان کنید و درستش رو برام بفرستین، خیلی لازمش دارم

خیلی ممنون میشم

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

من میخوام با jquery به فرمم تکتست باکس اضافه کنم و با php به درون پایگاه داده از اطلاعات تکست باکسها جدول بسازم

اون کدی که من بالا گذاشتم کارش همینه ولی به جای اینکه جدول بسازه اطلاعات رو توی جدول های از پیش تعیین شده وارد میکنه

لینک به ارسال

syntaxات مشکل داره عمو .


$table = "CREATE TABLE mysql_real_escape_string($value)
(
id INT(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
name CHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
)";

صحیح


$table = "CREATE TABLE " . mysql_real_escape_string($value) ."
(
id INT(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
name CHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
)";

میشه توضیح بدین دقیقا میخواین چیکار کنین؟

این کاری که شما انجام میدید خیلی خطرناکه .

دستی دستی داری باگ sql injaction ایجاد میکنی توی سایتت .

فقط خودت ازش استفاده کن .

لینک به ارسال

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

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

در ضمن از این قابلیت فقط خودم میخوام استفاده کنم و به کاربر مربوط نمیشه

حالا اگه شما راه حل دیگه رو میدونین بهم بگین

اون کد بالا رو هم جایگذین کردم بازم نشد

ویرایش شده توسط reza_t
لینک به ارسال

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

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


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>jQuery</title>
<script type="text/javascript" src="adding form/js/jquery.js"></script>
<link rel="stylesheet" type="text/css" href="adding form/css/css.css" />
<script type="text/javascript">
var count = 0;
$(function(){
$('p#add_field').click(function(){
count += 1;
$('#container').append(
'<strong>جدول #' + count + '</strong><br />'
+ '<input id="field_' + count + '" name="fields[]' + '" type="text" /><br />' );
});
});
</script>
<body>
<?php
if (isset($_POST['btnSubmit'])) {
$result = mysql_connect("localhost","user","pass") or die(mysql_error());
mysql_select_db("db") or die(mysql_error());
if ($_POST['fields']) {
foreach ( $_POST['fields'] as $value ) {
echo $value . "<br>";
$tb = "CREATE TABLE $value
(
id INT(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
name CHAR(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
)";
mysql_query($tb,$result);
}
}
echo "<h1>جدول ساخته شد</h1>";
mysql_close();
}
?>
<?php if (!isset($_POST['btnSubmit'])) { ?>
<h1>ساخت جدول جدید</h1>
<form name="test" method="post" action="">
<div id="container">
<p id="add_field"><a href="#"><span>» اضافه کردن جدول جدید....</span></a></p>
</div>
<div class="spacer"></div>
<input id="go" name="btnSubmit" type="submit" value="ساختن" class="btn" />
</form>
<?php } ?>
</body>
</html>

لطفا کمک کنید

لینک به ارسال

کد قبلیتون که خیلی بهم ریخته و قاطی شده بود و حقیقتش من اصلا رغبت نکردم کد رو بررسی کنم!

شما باید کلاس ها رو در فایل جدا، اینکلودها در فایل جدا و بخش نمایش رو جدا می کردید.

اینجوری پیدا کردن مشکل هم راحتتر میشد.

در مورد کد دوم. شما $tb رو هم بزارید چاپ بشه بعد اون کوئری خروجی رو توی mysql اجرا کنید ببینید جدولی میسازه یا خیر.

لینک به ارسال

$tb رو چاپ کردم و به خوبی چاپش کرد

کار دومی که گفتین رو متوجه نشدم

کدوم کوئری خروجی؟

لینک به ارسال

شما دقیقا بگید چی میخواید تا بشه یه راه حل منطقی گفت .

بهترین سناریو اینه

دو تا جدول بسازید

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

یکیش برای مشخصات هر فرم .

با کلید بهم مرتبط کنید .

دیگه مشکلی مثل اینکه یکی 100 تا فیلد بخواد ، یکی 10 تا فیلد پیدا نمیکنید .

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...