Почему в мою таблицу все еще вставляются повторяющиеся данные, даже если я проверяю, существуют ли данные? PHP - MYSQL - PullRequest
0 голосов
/ 03 мая 2019

Проблема : я вставляю данные в свою таблицу logs, но важно помнить, что мне нужно остановить дублирование имени в моей таблице.

вот моя таблица, как выглядит

table: logs

-------------------
id  | name | amount
-------------------
1   | John |  500
2   | John |  500
-------------------

Проблема с этой таблицей в том, что она дублирует данные, и мне нужно остановить дублирование имени

Решение : Избегайте дублирования данных

Здесь в моем коде я звоню, если имя существует, тогда данные не будут вставлены, иначе они будут удалены, см. Мой код ниже

    $connection = mysqli_connect("localhost","servername","");
        $db = mysqli_select_db($connection, 'dbname');

      $qrQuery = "SELECT * FROM scratch_cards WHERE code='$qrid' ";
      $qrQuery_run = mysqli_query($connection,$qrQuery);


        if (isset($_POST['qrname'])) {

         $txtQrvalue = $qrRow['amount'];

          while($qrRow = mysqli_fetch_array($qrQuery_run)){

           //Check if the data exists
            $exist = $num['firstname'];

            if ($exist == 0) {

            //DELETE THE INSERT QR INFO
            $qrQuery5 = "DELETE FROM qrlogs WHERE id = $id";
            $qrQuery_run5 = mysqli_query($connection,$qrQuery5);
             echo 'Data already exists';

            }else{

            //INSERT THE INFO WHEN THE NAME IS NOT DUPLICATE
            $qrQuery4 = "INSERT INTO qrlogs (cabin_crew,time_scan,qr_amount) VALUES ('".$num['firstname']."',NOW(),'$txtQrvalue')";
            $qrQuery_run4 = mysqli_query($connection,$qrQuery4);

            }
     }

}

1 Ответ

0 голосов
/ 03 мая 2019

Это связано с проблемой в вашем коде - но в вашем коде нет никаких причин, по которым могут возникать дубликаты, - однако - отправьте больше кода, если проблема по-прежнему

if ($exist == 0) {

//DELETE THE INSERT QR INFO
$qrQuery5 = "DELETE FROM qrlogs WHERE id = $id";
// .. TAKE OUT .. $qrQuery_run5 = mysqli_query($connection,$qrQuery5);
 echo 'Data already exists';

}else{

//INSERT THE INFO WHEN THE NAME IS NOT DUPLICATE
$qrQuery4 = "INSERT INTO qrlogs (cabin_crew,time_scan,qr_amount) VALUES ('".$num['firstname']."',NOW(),'$txtQrvalue')";
$qrQuery_run4 = mysqli_query($connection,$qrQuery4);

}

Ваш тест на уникальностьследующее

$exist = $num['firstname'];

Это выглядит не очень убедительно - но без большего количества вашего кода невозможно сказать, в чем проблема

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