PDA

View Full Version : سوال: ایجاد یک رکورد در MySql



SA2N.com
جمعه 02 اسفند 1387, 20:59 عصر
چطوری میتونم یه جدول و رکورد در mysql ثبت کنم ؟

کد زیر کاد نکرد :افسرده:



$db = mysql_connect ($data,$user,$pass);
$db2 = mysql_select_db ( $dbname , $db );

if ($db2 == true)
{
echo "<h3> Connected :D <h3>";
echo "<hr/>";
echo "<h>Database Name: $dbname<h><br/>";
echo "<h>User: $user<h><br/>";
echo "<h>Password : $pass <h><br/>";
break;
}
else
{
echo "Not Connect";
}
//تا اینجا درسته از این به بعد کار نمیکنه...
$query="CREATE table $Tablename(id INT PRIMARY KEY ,Firstname char(12), Lastname char(15))";
$query="INSERT into $Tablename('1', 'sasan', 'b')";

$query = "SELECT * FROM $Tablename";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
echo "You have $numrows user(s) in the database";
echo "ID number : $row[id]";
echo "firstname: $row[firstname]";
echo "Lastname: $row[lastname]";
}

mysql_close($db);

میشه یه نمونه درست اینجا بذارین لطفا
مرسی :قلب:

smhnaji
جمعه 02 اسفند 1387, 21:13 عصر
باید مشخص بشه که id چند رقمی هست.

مثلا:

$query="CREATE table $Tablename(id INT(10) PRIMARY KEY ,Firstname char(12), Lastname char(15))";

narsic
جمعه 02 اسفند 1387, 21:19 عصر
با سلام
دوست عزیز مشکل کد شما اینجا هستش


$db = mysql_connect ($data,$user,$pass);
$db2 = mysql_select_db ( $dbname , $db );

if ($db2 == true)
{
echo "<h3> Connected :D <h3>";
echo "<hr/>";
echo "<h>Database Name: $dbname<h><br/>";
echo "<h>User: $user<h><br/>";
echo "<h>Password : $pass <h><br/>";
break; این دستور باید حذف شود
}
else
{
echo "Not Connect";
}
//تا اینجا درسته از این به بعد کار نمیکنه...
$query="CREATE table $Tablename(id INT PRIMARY KEY ,Firstname char(12), Lastname char(15))";
$query="INSERT into $Tablename('1', 'sasan', 'b')";

$query = "SELECT * FROM $Tablename";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
echo "You have $numrows user(s) in the database";
echo "ID number : $row[id]";
echo "firstname: $row[firstname]";
echo "Lastname: $row[lastname]";
}

mysql_close($db);
دستور Break باعث خروج اجرا کننده از کد شما میشه و به انتهای صفحه میرود و دیگر چیزی اجرا نمیشود .
این کد رو حذف کنید .
موفق باشید

SA2N.com
جمعه 02 اسفند 1387, 22:36 عصر
مرسی break رو حذف کردم ولی دوتا خطا داد :




Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/zoneh/public_html/sa2n/2.php on line 41




Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/zoneh/public_html/sa2n/2.php on line 42

SA2N.com
شنبه 03 اسفند 1387, 13:22 عصر
مشکل حل شد :لبخندساده:

کد درستش اینه :





<?php
$server="localhost"; //mamulan bayad local host bashe mage bekhayn be soorate remote be database vasl beshin ke bayad ip bashe
$user="root"; //username banke etelaati
$pass="rundle"; //password banke etelaati inja "rundle" passworde database mane!
$dbname="testdb"; //esme database ke gharare dorost beshe
$Tablename="modir"; //esme jadval ke gharare sakhte beshe
$db = mysql_connect($server, $user, $pass)or die("سرور قادر به برقراري ارتباط با بانک اطلاعاتي نميباشد!");
$query="CREATE database $dbname";
mysql_query( $query );
$db2 = mysql_select_db ( $dbname , $db );

if ($db2)
{
echo "<h3> Connected :D <h3>";
echo "<hr/>";
echo "<h>Database Name: $dbname<h><br/>";
echo "<h>User: $user<h><br/>";
echo "<h>Password : $pass <h><br/>";
}
else
{
echo "Not Connect";
}
$query="CREATE table $Tablename(id INT(5) PRIMARY KEY, Firstname VARCHAR(12) NOT NULL, Lastname VARCHAR(15) NOT NULL)";
mysql_query( $query );//ino age nanvisi aslan jadval dorost nemishe KHEYLI MOHEME
//**********************
$id=1;
$fname="Sasan";
$lname="B";
//**********************
$query="INSERT into $Tablename(id,Firstname,Lastname) values ('".$id."','".$fname."','".$lname."')";
mysql_query($query);
$query = "SELECT * FROM $Tablename";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
echo "You have $numrows user(s) in the database<br/><br/>";
while($noticia=mysql_fetch_array($result))//"noticia" in kalame be zabane portghali yani agahi dadan!!
{
echo "ID number : $noticia[id] firstname: $noticia[Firstname] Lastname: $noticia[Lastname]<br/>";
}
mysql_close($db);
?>

SA2N.com
شنبه 03 اسفند 1387, 19:20 عصر
یک فرم درست کردم که با این فرم رکورد اضافه کنم ولی نمیشه

لطفا یه نگاه کنید





<html>
<body>
<?php

$server="localhost"; //mamulan bayad local host bashe mage bekhayn be soorate remote be database vasl beshin ke bayad ip bashe
$user="نام کاربری"; //username banke etelaati
$pass="کلمه عبور"; //password banke etelaati inja "rundle" passworde database mane!
$dbname="نام بانک اطلاعاتی"; //esme database ke gharare dorost beshe
$Tablename="modir"; //esme jadval ke gharare sakhte beshe
$db = mysql_connect($server, $user, $pass)or die("CONECT NEMISHE !");
$query="CREATE database $dbname";
mysql_query( $query );
$db2 = mysql_select_db ( $dbname , $db );

if ($db2)
{
echo "<h3> Connected :D <h3>";
echo "<hr/>";
echo "<h>Database Name: $dbname<h><br/>";
echo "<h>User: $user<h><br/>";
echo "<h>Password : $pass <h><br/>";
}
else
{
echo "Not Connect";
}
$query="CREATE table $Tablename(id INT(5) PRIMARY KEY, Firstname VARCHAR(12) NOT NULL, Lastname VARCHAR(15) NOT NULL)";
mysql_query( $query );//ino age nanvisi aslan jadval dorost nemishe KHEYLI MOHEME
//**********************
$id_n="$id_f";
$fname="$fname_f";
$lname="$lname_f";
//**********************
$query="INSERT into $Tablename(id,Firstname,Lastname) values ('".$id_n."','".$fname."','".$lname."')";
mysql_query($query);
$query = "SELECT * FROM $Tablename";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
echo "<br/> You have $numrows user(s) in the database <hr/>";
while($noticia=mysql_fetch_array($result))//"noticia" in kalame be zabane portghali yani agahi dadan!!
{
echo "ID number : $noticia[id]<br/> firstname: $noticia[Firstname]<br/> Lastname: $noticia[Lastname]<br/><hr/>";
}
mysql_close($db);
?>
<form action="<?php print "$PHP_SELF" ?>" method="POST">
ID number: <input type="text" name="id_f"/><br/>
First Name: <input type="text" name="fname_f"/><br/>
Last Name: <input type="text" name="lname_f"/><br/>
<!--input type='hidden' name='action' value='send'!-->
<input type="submit" value="Send Record"/><br/>
</form>
</body>
</html>




مرسی :قلب:

smhnaji
شنبه 03 اسفند 1387, 23:48 عصر
دوست خوبم نگفتی کجا ارور می‌ده و چه اروری می‌ده.

این متغیرها (حداقل تو این کدی که برای ما گذاشتی) مقدار دهی نشدن: $id_f و $fname_f و $lname_f

به هر حال چند تا پیشنهاد:
۱. فیلد id رو AUTO_NUMBER کن که دیگه موقع INSERT INTO خودت بش عدد ندی. بعدا هم راحت‌تر می‌شی.
۲. وقتی کوئری‌های sql رو می‌نویسی، همیشه از (((`))) ها استفاده کن.

SA2N.com
یک شنبه 04 اسفند 1387, 00:59 صبح
اشکالش رو برطرف کردم :





<html>
<body>
<?php

$server="localhost"; //mamulan bayad local host bashe mage bekhayn be soorate remote be database vasl beshin ke bayad ip bashe
$user="root"; //username banke etelaati
$pass="rundle"; //password banke etelaati inja "rundle" passworde database mane!
$dbname="m"; //esme database ke gharare dorost beshe
$Tablename="modir"; //esme jadval ke gharare sakhte beshe
$db = mysql_connect($server, $user, $pass)or die("CONECT NEMISHE !");
$query="CREATE database $dbname";
mysql_query( $query );
$db2 = mysql_select_db ( $dbname , $db );

if ($db2)
{
echo "<h3> Connected :D <h3>";
echo "<hr/>";
echo "<h>Database Name: $dbname<h><br/>";
echo "<h>User: $user<h><br/>";
echo "<h>Password : $pass <h><br/>";
}
else
{
echo "Not Connect";
}
$query="CREATE table $Tablename(id INT(5) PRIMARY KEY, Firstname VARCHAR(12) NOT NULL, Lastname VARCHAR(15) NOT NULL)";
mysql_query( $query );//ino age nanvisi aslan jadval dorost nemishe KHEYLI MOHEME
//**********************
$id_n=$_POST['id_f'];
$fname=$_POST['fname_f'];
$lname=$_POST['lname_f'];
//**********************
if(strlen($id_n)==0 or strlen($fname)==0 or strlen($lname)==0)
{

echo'<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
ID number: <input type="text" name="id_f"/><br/>
First Name: <input type="text" name="fname_f"/><br/>
Last Name: <input type="text" name="lname_f"/><br/>
<input type="submit" value="Send Record"/><br/>
</form>';
}
else{
$query="INSERT into $Tablename(id,Firstname,Lastname) values ('".$id_n."','".$fname."','".$lname."')";
mysql_query($query);
$query = "SELECT * FROM $Tablename";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
echo "<br/> You have $numrows user(s) in the database <hr/>";
while($noticia=mysql_fetch_array($result))//"noticia" in kalame be zabane portghali yani agahi dadan!!
{
echo "ID number : $noticia[id]<br/> firstname: $noticia[Firstname]<br/> Lastname: $noticia[Lastname]<br/><hr/>";
}
}
mysql_close($db);
?>
</body>
</html>

SA2N.com
یک شنبه 04 اسفند 1387, 22:27 عصر
به هر حال چند تا پیشنهاد:
۱. فیلد id رو AUTO_NUMBER کن که دیگه موقع INSERT INTO خودت بش عدد ندی. بعدا هم راحت‌تر می‌شی.
۲. وقتی کوئری‌های sql رو می‌نویسی، همیشه از (((`))) ها استفاده کن.

میشه ID رو تو کد AUTO_NUMBER کنید که من دستی عدد ندم ! (من کردم نشد !)
فیلد ID رو باید هیدن کنم ؟

مرسی

Sajjad.Aghapour
یک شنبه 04 اسفند 1387, 23:13 عصر
به این صورت :


id int identity(1,1)
لزومی نداره برای int اندازه مشخص کنید.
در mysql


id int auto_increment primary key

..
کل کد شما در هر بار اجرا میش؟.یعنی در هر بار دستور create table اجرا میشه.اینجوری که به مشکل بر می خورید....(البته کد شما رو به طور کامل نگاه نکردم)

smhnaji
یک شنبه 04 اسفند 1387, 23:40 عصر
میشه ID رو تو کد AUTO_NUMBER کنید که من دستی عدد ندم ! (من کردم نشد !)
فیلد ID رو باید هیدن کنم ؟

مرسی
اگه از phpMyAdmin آدم استفاده کنه، خیلی راحت SQL ِ ش بهتر می‌شه!
IF NOT EXISTS باعث می‌شه فقط درصورتی جدول ساخته بشه که قبلا وجود نداشته.
AUTO_NUMBER هم باعث می‌شه که خودش بهش عدد بده و دیگه خود آدم دغدغه‌ی duplicate شدن یه ID رو نداشته باشه.

CREATE TABLE IF NOT EXISTS `TableName`
( `ID` INT(11) PRIMARY KEY AUTO_INCREMENT
.
.
.
)درضمن مطمئنم که شما برای برنامه‌ت از این کد استفاده نمی‌کنی. می‌دونم که اول یه بار جدول‌ها رو بوجود میاری و بعدا دیگه همیشه از اونا استفاده می‌کنی و اینجوری نیستش که هر دفعه تست کنی که آیا جدول وجود داره یا نه...

SA2N.com
سه شنبه 06 اسفند 1387, 02:16 صبح
مرسی دوستان مشکلم حل شد ...

SA2N.com
سه شنبه 06 اسفند 1387, 02:20 صبح
اینم کد نهایی:




<html>
<body>
<?php
$server="localhost"; //mamulan bayad local host bashe mage bekhayn be soorate remote be database vasl beshin ke bayad ip bashe
$user="****"; //username banke etelaati
$pass="****"; //password banke etelaati inja "rundle" passworde database mane!
$dbname="****"; //esme database ke gharare dorost beshe
$Tablename="****"; //esme jadval ke gharare sakhte beshe
$db = mysql_connect($server, $user, $pass)or die("CONECT NEMISHE !");
$query="CREATE database $dbname";
mysql_query( $query );
$db2 = mysql_select_db ( $dbname , $db );
if ($db2)
{
echo "<h3> Connected :D <h3>";
echo "<hr/>";
echo "<h>Database Name: $dbname<h><br/>";
echo "<h>User: $user<h><br/>";
echo "<h>Password : $pass <h><br/>";
}
else
{
echo "Not Connect";
}
$query="CREATE table $Tablename(id INT(5) NOT NULL PRIMARY KEY auto_increment , Firstname VARCHAR(12) NOT NULL UNIQUE, Lastname VARCHAR(15) NOT NULL UNIQUE)";
mysql_query( $query );//ino age nanvisi aslan jadval dorost nemishe KHEYLI MOHEME
//*********************************
$fname=$_POST['fname_f'];
$lname=$_POST['lname_f'];
//*********************************
echo'<form action="'.$_SERVER['PHP_SELF'].'" method="POST">
First Name: <input type="text" name="fname_f"/><br/>
Last Name: <input type="text" name="lname_f"/><br/>
<input type="submit" value="Send Record"/><br/>
</form>';
if(strlen($fname) && strlen($lname)){
$query="INSERT into $Tablename(id,Firstname,Lastname) values ('".$id_n."','".$fname."','".$lname."')";
mysql_query($query);
}
$query = "SELECT * FROM $Tablename";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
echo "<br/> You have $numrows user(s) in the database <hr/>";
while($noticia=mysql_fetch_array($result))//"noticia" in kalame be zabane portghali yani agahi dadan!!
{
echo "ID number : $noticia[id]<br/> firstname: $noticia[Firstname]<br/> Lastname: $noticia[Lastname]<br/><hr/>";
}
mysql_close($db);
?>
</body>
</html>