Обновление в 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 );

?>

Вот ссылка на скриншот консоли MySQL

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

0

Решение

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

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

Должно быть

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

Другие решения

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

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

$empno = $_GET['empno'];

Поместите это в начало вашего файла.

0

Спасибо за ответы, ребята … Эндрю Р и Мухаммед … Вот код, который работает:

 <?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 );

?>
0
По вопросам рекламы [email protected]