چک کردن از دیتابیس

regnom

New Member
با سلام به همه دوستان عزیز
مشکلی در رابطه با فرم و دیتابیس دارم
یک فرم میخوام که 1 شماره از بازدیدکننده بگیره بعد چک کنه که توی دیتابیس وجود داره یا نه..
اگه شماره وارد شده وجود داشت ارور بده که شماره تکراریه.
اگه وجود نداشت: 1- شماره رو توی دیتابیس وارد کنه 2- بازدیدکننده رو به یک صفحه دیگه منتقل کنه
اسم دیتابیسی که میخوام اطلاعات ذخیره بشه به صورت پیشفرض test هست
واقعا به کمکتون احتیاج دارم
ممنون از همه:rose:
 

Mr.Steres

Active Member
PHP:
$query = mysql_query("SELECT * FROM test WHERE fild_name = '{$_POST['number'}'") ;
if ( mysql_num_rows($query) ) {
	die "Error ... " ;
} else {
	mysql_query("INSERT INTO test (fild_name) VALUES ('{$_POST['number'}') ") ;
}
 

regnom

New Member
مشکل در اجرا

با تشکر از Mr.Steres

این کد کامل هست
اما وقتی اجرا میکنم به درستی کار نمیکنه..میدونید مشکل از کجاست؟


HTML:
   <form method="POST" action="form.php">
<p>
<input type="text" name="num" size="20">
<input type="submit" value="Submit" >
</p>
</form>
PHP:
 <?php
$num=$_POST['num'];
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
   die('ارتبازط با پايگاه داده برقرار نشد' . mysql_error());
}
$db_selected = mysql_select_db('test', $link);
if (!$db_selected) {
   die ('بانك اطلاعاتي انتخاب نشد' . mysql_error());
}

$query = mysql_query("SELECT * FROM db WHERE fild_name = '$_POST['num']'") ;
if ( mysql_num_rows($query) ) {
    die "Error ... " ;
} else {
    mysql_query("INSERT INTO db (fild_name) VALUES ('$_POST['num']') ") ;
}   
echo "<meta http-equiv='refresh'  content='0; URL=poll.htm'>";
}
mysql_close($link);
?>
آیا باید خودم جدول و فیلد رو بسازم؟ یا میشه دستور ساخت جدول و فیلد رو هم اضافه کنم؟
چطوری؟!؟!؟!؟!؟! :-?
اگه یکی از دوستان فایل .sql رو کدشو بزارن که ایمپورت کنم واقعا ممنون میشم
:rose:
 
آخرین ویرایش:

Mr.Steres

Active Member
خوب معلومه وقتی دیتابیس و جداول نباشه هیچ کدی کار نمی کنه . باید اول دیتابیس رو اوکی کنی ...
 

regnom

New Member
مشکل در اجرا

واسه من اجرا نمیشه...یعنی وقتی فرم رو باز میکنم و عدد رو وارد میکنم باید چک کنه که نمیکنه و مستقیم وصل صفحه poll.html میشه...نه چک میکنه نه ثبت میکنه
این هم کد کامل:

HTML:
<HTML>
<BODY>
<form method="POST" action="form.php">
<p>
<input type="text" name="num" size="20">
<input type="submit" value="Submit" >
</p>
</form>
</BODY>
</HTML>


PHP:
<?php
$num=$_POST['num'];
$link = mysql_connect('localhost', 'root', '');
if (!$link) {
   die('ارتبازط با پايگاه داده برقرار نشد' . mysql_error());
}
$db_selected = mysql_select_db('db', $link);
if (!$db_selected) {
   die ('بانك اطلاعاتي انتخاب نشد' . mysql_error());
}
$sql="SELECT `id` FROM `tabel` WHERE `num`='$num'";
$result = mysql_query($sql);
$rows=mysql_num_rows($result);
if ($rows>='1') {
echo "<script>alert('شماره تکراري است')</script>";

} else {
$sql="INSERT INTO `tabel`(`num`) VALUES ('$num')";
$result = mysql_query($sql);
echo "<meta http-equiv='refresh'  content='0; URL=poll.htm'>";
}
mysql_close($link);
?>

PHP:
CREATE TABLE `data` (
  `id` int(11) NOT NULL auto_increment,
  `num` int(11) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

تشکر از همه ی دوستان:rose:
 

Masoud1365

مدیر انجمن
خب برای اتصال به دیتا بیس اسمش رو هم باید بنویسی یعنی کد
PHP:
$link = mysql_connect('localhost', 'root', '');
باید بشه :
PHP:
$link = mysql_connect('localhost', 'root', '','db_name');
و به جای db_name اسم دیتا بیست رو قرار بده .
 

Mr.Steres

Active Member
خب برای اتصال به دیتا بیس اسمش رو هم باید بنویسی یعنی کد
PHP:
$link = mysql_connect('localhost', 'root', '');
باید بشه :
PHP:
$link = mysql_connect('localhost', 'root', '','db_name');
و به جای db_name اسم دیتا بیست رو قرار بده .

با mysql_select_db انجام شده ...

خوب احتمالا شرط اول اجرا نشده که داره به کد else می رسه دیگه ...
 

Mr.Steres

Active Member
خودم برات نوشتم و 3 تا رکورد توش وارد کردم . در صورتی که ای دی تکراری باشه ارور می ده و در صورت تکراری نبودن وارد جدول می کنه ...

SQL :

PHP:
-- MySQL dump 10.13  Distrib 5.1.34, for Win32 (ia32)
--
-- Host: localhost    Database: majid_online
-- ------------------------------------------------------
-- Server version	5.1.34-community

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;

--
-- Current Database: `majid_online`
--

CREATE DATABASE /*!32312 IF NOT EXISTS*/ `majid_online` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `majid_online`;

--
-- Table structure for table `mr_steres`
--

DROP TABLE IF EXISTS `mr_steres`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `mr_steres` (
  `id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*!40101 SET character_set_client = @saved_cs_client */;

--
-- Dumping data for table `mr_steres`
--

LOCK TABLES `mr_steres` WRITE;
/*!40000 ALTER TABLE `mr_steres` DISABLE KEYS */;
INSERT INTO `mr_steres` VALUES (1,'alireza'),(2,'saman'),(3,'mahdie');
/*!40000 ALTER TABLE `mr_steres` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

-- Dump completed on 2009-12-28 13:42:10

فایل فرم و ...

PHP:
<?php

// Coded By Mr_Steres 5:17 PM

mysql_connect("127.0.0.1","root","");
mysql_select_db("majid_online");

if ( isset( $_POST['submit'] ) ) {
	$query = mysql_query("SELECT id FROM mr_steres WHERE id = '{$_POST['id']}' ");
	
	if ( mysql_num_rows($query) ) {
		echo "Error ...";
	} else {
		mysql_query("INSERT INTO mr_steres (name) VALUES('{$_POST['name']}') ");
		echo "Data Inserted";
	}
}

?>
<form action="" method="post" >
	Enter Id : <input type="text" name="id" />&nbsp;Enter Name : <input type="text" name="name" /><input type="submit" value="submit" name="submit" />
</form>
 

regnom

New Member
خودم برات نوشتم و 3 تا رکورد توش وارد کردم . در صورتی که ای دی تکراری باشه ارور می ده و در صورت تکراری نبودن وارد جدول می کنه ...


خیلی ممنون
واقعا عالی بود
هم کمکم کردی و هم علاقمند به یادگیری دیتابیس
با این که تازه عضو این فروم شدم اما خیلی خوب شروع شد...
ممنون
:rose:
 

elahe368

New Member
تعریف سطح دسترسی

سلام دوستان
چه طوری میتونم سطوح دسترسی به مطالب سایت رو تعیین کنم، آیا باید توی دیتا بیسم مشخص کنم؟چطوری؟
در واقع میخوام سه سطح دسترسی تعریف کنم که هر کاربر با توجه به سطح دسترسی تعریف شده برای او به یک سری از مطالب سایت دسترسی داشته باشه. خیلی فوریه لطفا هر کسی میتونه راهنماییم کنه.:?:
ممنون
 

ziXet

مدیر انجمن PHP/MYSQL
سلام دوستان
چه طوری میتونم سطوح دسترسی به مطالب سایت رو تعیین کنم، آیا باید توی دیتا بیسم مشخص کنم؟چطوری؟
در واقع میخوام سه سطح دسترسی تعریف کنم که هر کاربر با توجه به سطح دسترسی تعریف شده برای او به یک سری از مطالب سایت دسترسی داشته باشه. خیلی فوریه لطفا هر کسی میتونه راهنماییم کنه.:?:
ممنون
بله بهترین راه استفاده از db هست
 

k2-4u

Well-Known Member
سلام دوستان
چه طوری میتونم سطوح دسترسی به مطالب سایت رو تعیین کنم، آیا باید توی دیتا بیسم مشخص کنم؟چطوری؟
در واقع میخوام سه سطح دسترسی تعریف کنم که هر کاربر با توجه به سطح دسترسی تعریف شده برای او به یک سری از مطالب سایت دسترسی داشته باشه. خیلی فوریه لطفا هر کسی میتونه راهنماییم کنه.:?:
ممنون

سلام دوست عزیز اول از همه به مجید آنلاین خوش اومدی و دوم
لطفا قوانین سایت رو مطاله کنید
http://forum.majidonline.com/showthread.php?t=4159
و سوم لطفا
سوالات جدید تون رو تاپیک جداگانه مطرح کنید

بسیار ممنون
:rose:
قانون شماره 11) لطفاً در هنگام طرح سوالات خود آنها را به صورت جداگانه مطرح فرمایید. بدین معنی که در صورتی که سوالهای گوناگونی دارید ، آنها را در چندین ارسال مطرح نمایید و از مطرح کردن تمامی سوالات در یک ارسال خودداری فرمایید .
 

جدیدترین ارسال ها

بالا