Не могу увеличить ID в базе данных используя PHP - PullRequest
0 голосов
/ 11 февраля 2019

Я студент, и я врезался в стену ...

что я получил:

function new_id($table, $id_column_name)
{
require_once ("config.php");
$db=mysqli_connect($host,$usernamesql,$passwordsql,$db_name)
           or die ("could not connect");

$query="SELECT MAX($id_column_name) 
            AS max FROM $table";

$result=mysqli_query($db,$query);
$result2=mysqli_fetch_array($result);
$idnew=$result2['max']+1;
return $idnew;
}
//this function is located inside libs/lib.php

Следующий код находится внутри /signup.php

require ("libs/config.php");
//DB connection stuff

require ("libs/lib.php");
//function above

id_user = 'id'; 
id_student = 'id_student';
//these vars represent column names in users/students tables
//tried `id`, 'id', "id" quote variations, nothing seems to work 

$db=mysqli_connect($host,$usernamesql,$passwordsql,$db_name) 
           or die ("could not connect");
$idnew = new_id($tbl_users, $id_user);
$query="INSERT INTO $tbl_users (id, username, passwd, sex, married, lasttname, firstname, email, datereg, extension, phone) 
        VALUES ('$idnew', '$username', '$passwd', '$sex', '$married', '$lastname', '$first', '$email','$currentDate', '$image_type', '$phone')";
$result=mysqli_query($db,$query);

$idnew = new_id($tbl_student, $id_student);
$query="INSERT INTO $tbl_student (id_student, lastname, firstname)
        VALUES ('$idnew', '$lastname', '$firstname')";
$result=mysqli_query($db,$query);

Итак, как вы можете видеть, я пытаюсь добавить таблицу пользователей и таблицу студентов с дополнительным бонусом увеличения идентификатора для строк обеих таблиц.

Это просто добавляет к tbl_users, но этоне увеличивайте идентификатор.Я не установил его как уникальный, поэтому я получил пару строк с id = 1.Это ничего не добавляет к tbl_student, и я не могу понять, почему ...

Стоит отметить, что я вручную добавил одну строку в обе таблицы в предвидении, что функция получит MAX-идентификатор 1и +1, чтобы увеличить идентификатор до 2.

Наконец, я думаю, что-то не так с моей функцией там, но я не могу на всю жизнь выяснить, что ...

1 Ответ

0 голосов
/ 11 февраля 2019

Положите require ("config.php"); вместо require_once ("config.php");

Не нравится require_once внутри функции, которую я вижу.По какой-то причине это сработало для меня.Он даже добавляет к tbl_student, чего раньше не делал, не говоря уже о том, чтобы увеличивать любой идентификатор.

Я предполагаю (не исследовал), что внутри функции у вас могут быть циклы (если, для, в то время как), и это заставляет вас require, чтобы вы могли использовать необходимый файл внутри этих циклов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...