2015-07-21 6 views
0

Я создаю систему ввода данных. Теперь я могу добавить данные из формы. Но обновление не работает. Вместо этого я пытаюсь обновить его, добавив еще одну запись.Обновление в RedBean

Это мой add.php.

<?php 
require 'rb.php'; 
R::setup('mysql:host=localhost:3306;dbname=employee', 
     'root', ''); 
$emp = R::dispense('emp'); 
$emp->emp_no=$_GET['empno']; 
$emp->empname =$_GET['empname']; 
$emp->fathername =$_GET['fathername']; 
$emp->sex=$_GET['sex']; 
$emp->designation =$_GET['designation']; 
$emp->department =$_GET['department']; 
$emp->dob =$_GET['dob']; 
$emp->dor =$_GET['dor']; 
$emp->doa =$_GET['doa']; 
$emp->serviceStatus =$_GET['serviceStatus']; 
$emp->address =$_GET['address']; 
$emp->pymtmode =$_GET['pymtmode']; 
$emp->bank_code =$_GET['bank_code']; 
$emp->acc_no =$_GET['acc_no']; 
$emp->scale =$_GET['scale']; 
$emp->basic =$_GET['basic']; 



R::store($emp); 

?> 

Вот мой update.php. Что в этом плохого.

<?php 
require 'rb.php'; 
R::setup('mysql:host=localhost:3306;dbname=employee', 
     'root', ''); 
$emp = R::load('emp', $empno); 
$emp->emp_no=$_GET['empno']; 
$emp->empname =$_GET['empname']; 
$emp->fathername =$_GET['fathername']; 
$emp->sex=$_GET['sex']; 
$emp->designation =$_GET['designation']; 
$emp->department =$_GET['department']; 
$emp->dob =$_GET['dob']; 
$emp->dor =$_GET['dor']; 
$emp->doa =$_GET['doa']; 
$emp->serviceStatus =$_GET['serviceStatus']; 
$emp->address =$_GET['address']; 
$emp->pymtmode =$_GET['pymtmode']; 
$emp->bank_code =$_GET['bank_code']; 
$emp->acc_no =$_GET['acc_no']; 
$emp->scale =$_GET['scale']; 
$emp->basic =$_GET['basic']; 



R::store($emp); 

?> 

Вот ссылка на скриншот тузда консоль

http://i.stack.imgur.com/b9jcg.jpg

+0

больше информации будет полезно. Что сообщение об ошибке? где обновление? пожалуйста, напишите больше кода и информации, чтобы получить квалифицированную помощь. – rob

+0

Ошибка. Вместо обновления он создает несколько записей с тем же empno ... –

+0

Добавил ссылку на скриншот консоли mysql –

ответ

0

Я думаю, что вы используете $ EMPNO, прежде чем установить его, и вы не загружая существующую строку для обновления.

$emp = R::load('emp', $empno); 

Должно быть

$emp = R::load('emp', $_GET['empno']); 
+0

Не использовался ваш код. Он добавляет еще одну запись вместо обновления предыдущей записи. –

+0

Написал ссылку на скриншот консоли mysql –

+0

Я посмотрел на ваш скриншот, и неясно, каков каждый столбец, но я вижу инкрементный int (id?), Который до 64. Попробуйте использовать этот номер для загрузки данных, если вы этого не сделали. – AndrewR

0

В файле update.php, у вас есть следующие строки: $emp = R::load('emp', $empno);

Но $empno нигде не определено на файле update.php. Возьмите идентификатор записи, которую вы хотите обновить и присвоить его переменной следующим образом:

$empno = $_GET['empno'];

Положите его в начале файла.

+0

Я не очень разбираюсь в Redbean. Можете ли вы объяснить, отредактировав изменения в моем update.php –

+0

Спасибо ... Это начальное значение было тем, что было необходимо ... –

0

Спасибо за ответы, ребята ... Andrew R и Мухаммад ... Вот код, который работает:

<?php 
 
require 'rb.php'; 
 
R::setup('mysql:host=localhost:3306;dbname=employee', 
 
     'root', ''); 
 
$empno = $_GET['empno']; 
 
$emp = R::findOne('emp','emp_no=?',[$empno]); 
 
$emp->emp_no=$_GET['empno']; 
 
$emp->empname =$_GET['empname']; 
 
$emp->fathername =$_GET['fathername']; 
 
$emp->sex=$_GET['sex']; 
 
$emp->designation =$_GET['designation']; 
 
$emp->department =$_GET['department']; 
 
$emp->dob =$_GET['dob']; 
 
$emp->dor =$_GET['dor']; 
 
$emp->doa =$_GET['doa']; 
 
$emp->serviceStatus =$_GET['serviceStatus']; 
 
$emp->address =$_GET['address']; 
 
$emp->pymtmode =$_GET['pymtmode']; 
 
$emp->bank_code =$_GET['bank_code']; 
 
$emp->acc_no =$_GET['acc_no']; 
 
$emp->scale =$_GET['scale']; 
 
$emp->basic =$_GET['basic']; 
 

 

 

 
R::store($emp); 
 

 
?>

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