Я создаю систему ввода данных.
Теперь я могу добавить данные из формы.
Но обновление не работает. Вместо того, чтобы пытаться обновить, он добавляет еще одну запись.
Это мой 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
Я думаю, что вы используете $ empno, прежде чем установить его, и вы не загружаете существующую строку для обновления.
$emp = R::load('emp', $empno);
Должно быть
$emp = R::load('emp', $_GET['empno']);
В вашем файле update.php у вас есть следующая строка:
$emp = R::load('emp', $empno);
Но $empno
нигде не определен в вашем файле update.php. Возьмите идентификатор записи, которую вы хотите обновить, и присвойте ее переменной следующим образом:
$empno = $_GET['empno'];
Поместите это в начало вашего файла.
Спасибо за ответы, ребята … Эндрю Р и Мухаммед … Вот код, который работает:
<?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 );
?>