2014-02-11 4 views
0

формы сценария:Обновление данных в PHP с использованием первичного/внешнего ключа

<?php 
// Inialize session 
//session_start(); 
// Check, if username session is NOT set then this page will jump to login page 
/*if (!isset($_SESSION['email'])) { 
header('Location: form.html'); 
}*/ 
//connecting to the database 
define('DB_HOST', 'localhost'); 
define('DB_NAME', 'online'); 
define('DB_USER','root'); 
define('DB_PASSWORD',''); 

$con=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD) or die("Failed to connect to MySQL: " . mysql_error()); 
$db=mysql_select_db(DB_NAME,$con) or die("Failed to connect to MySQL: " . mysql_error()); 
//inserting Record to the database 
$name = $_POST['name']; 
$fname = $_POST['fname']; 
$cnic = $_POST['cnic']; 
$cellno = $_POST['cellno']; 
$nationality = $_POST['nationality']; 
$gender = $_POST['gender']; 
$dob = $_POST['dob']; 
$religion = $_POST['religion']; 
$city=$_POST['city']; 
$email = $_POST['email']; 
$adress = $_POST['adress']; 

if(!empty ($_POST['name']) && ($_POST['fname']) && ($_POST['cnic']) && ($_POST['cellno']) && ($_POST['nationality']) && (($_POST['gender']==='male')||($_POST['gender']==='female')) && ($_POST['dob']) && ($_POST['religion']) && (($_POST['city']==='Karachi')||($_POST['city']==='Isalamabad')||($_POST['city']==='Lahore')||($_POST['city']==='Rawalpindi')) && ($_POST['adress'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text 
{ 
$query = "INSERT INTO basicinfo(name,fname,cnic,cellno,nationality,gender,dob,religion,city,adress)VALUES('$name','$fname','$cnic','$cellno','$nationality','$gender','$dob','$religion','$city','$adress')"; 
$update = "UPDATE basicinfo SET name='$name',fname='$fname',cnic='$cnic',cellno='$cellno',nationality='$nationality',gender='$gender',dob='$dob',religion='$religion',city='$city',adress='$adress' WHERE bid="; 

$result = mysql_query($query); 
$updateResult=mysql_query($update); 
if($result && updateResult) 
    { 
     echo "Successfully updated database"; 
     header('Location: academicinfo.html'); 
    } 
    else 
    { 
    die('Error: '.mysql_error($con)); 
    } 
    mysql_close($con); 
    } 
    else{ 
    header('Location: basicinfo.html'); 
    } 
if (isset ($_POST['neext'])) 
{ 
header ('location:academicinfo.html'); 
} 

?> 

Это мой PHP код, который я хочу, чтобы обновить данные, но я не знаю, что писать в where статье, потому что в базе данных MySQL bid колонке это автоматический прирост, и это внешний ключ, пожалуйста, помогите мне в этом.

+3

uhm, просто из любопытства, есть причина, по которой вы «обновите» строку, которую вы только что добавили недавно. Запрос insert добавляет новую строку, и обновление просто изменяет недавно созданную строку с одинаковыми данными. Это выглядит как устаревшая задача. – KarelG

+0

'mysql_insert_id()'. Однако: ** больше не использовать функции _deprecated_ 'mysql_ *' ** – Wrikken

+0

'... WHERE bid ="; 'вам нужно добавить что-то там – jcho360

ответ

1

Довольно просто используйте это для вашего условия. Это добавит еще один выбор в ваш запрос, но это не так сильно, поскольку он встроен. Это таблица, на которую вы выбираете?

 

$update = "UPDATE basicinfo SET name='$name',fname='$fname',cnic='$cnic',cellno='$cellno',nationality='$nationality',gender='$gender',dob='$dob',religion='$religion',city='$city',adress='$adress' WHERE bid= (SELECT bid FROM basicinfo ORDER BY bid ASC LIMIT 1)"; 
 
+0

Я попробовал запрос но это дает ошибку Ошибка: вы не можете указать целевую таблицу 'basicinfo' для обновления в предложении FROM – Junaid

+0

$ update = "UPDATE basicinfo SET name = '$ name', fname = '$ fname', cnic = '$ cnic' , cellno = '$ cellno', nationality = '$ nationality', gender = '$ gender', dob = '$ dob', religion = '$ religion', city = '$ city', адрес = '$ address' WHERE bid = (SELECT uid FROM users ORDER BY uid ASC LIMIT 1) "; этот запрос был изменен, где uid является первичным ключом из таблицы пользователей, он обновляет таблицу basicinfo, но не может перейти на следующую страницу и дает ошибку – Junaid

+0

Какой вид ошибки вы получаете? Я предполагаю, что я использовал фреймворки так долго, этот тип проблемы больше не возникает? Можете ли вы вставить ошибку детали в? – wallerjake

Смежные вопросы