cari

Rumah  >  Soal Jawab  >  teks badan

mysql - Masalah kemasukan berulang sentiasa berlaku dalam gelung PHP

Simpan maklumat pengguna dalam tatasusunan, dan kemudian gunakan gelung untuk memasuki pangkalan data mysql Walau bagaimanapun, kadang-kadang maklumat pengguna individu akan dimasukkan dua kali Saya tidak tahu di mana ralat logiknya.
Kod logik adalah seperti berikut

$data = array(); //用户信息数组
for($i=0;$i<count($data);$i++){
    $sql = "INSERT INTO *********";
    $result = mysql_query($sql);
    
    //以下是录入统计成功与失败的数量
    if($result){
          $success_num[]=$i;
        }else{
          $error_num[]=$i;
        }
}

//跳出循环,弹出结果给用户,并跳转到首页

$con = "成功上传".count($success_num)."条!-  失败:".count($error_num)."条";
echo "<script> alert('$con');parent.location.href='index.php'; </script>";

Apa yang pelik pada masa ini ialah maklumat yang dimasukkan oleh pengguna individu sentiasa dilaksanakan dua kali (sebagai contoh, tatasusunan yang diserahkan hanya mempunyai 5 elemen, tetapi 10 rekod dijana apabila dimasukkan ke dalam pangkalan data)

90% penyertaan adalah perkara biasa, hanya beberapa pengguna yang akan berlaku, sila beri sedikit panduan

PHP中文网PHP中文网2784 hari yang lalu618

membalas semua(4)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-05-24 11:32:40

    Ini berlaku apabila anda menggunakan location.href untuk melompat Sebilangan penyemak imbas mungkin menghantar semula borang dua kali sebaik sahaja ia dimuat semula
    Ada beberapa penyelesaian yang saya akan berikan kepada anda.

    1. ajax no refresh

    2. Apabila bahagian hadapan menyerahkan, bahagian belakang menjana token dan menyimpannya ke sesi Apabila menyerahkan kepada bahagian belakang, bandingkan dua token

      .
    3. Pengesahan pangkalan data

    4. Halaman belakang menggunakan 301 atau 302 untuk melompat

    5. balas
      0
  • 巴扎黑

    巴扎黑2017-05-24 11:32:40

    Saya tidak melihat sebarang masalah khas secara logik Saya hanya boleh mengatakan bahawa mungkin bahagian hadapan anda menghantar dua permintaan, dan secara amnya, apabila memasukkan data, ia secara amnya dinilai sama ada pengguna wujud dalam pangkalan data, tetapi anda melakukannya. tidak membuat penghakiman ini, yang juga menyebabkan maklumat itu muncul Sepuluh rekod

    balas
    0
  • 为情所困

    为情所困2017-05-24 11:32:40

    Apa yang anda patut fikirkan ialah:

    insert into table (fields...) values(values),(values),(values);

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-24 11:32:40

    Sebelum memasukkan, nilaikan nilai pangkalan data, sekurang-kurangnya dengan indeks yang unik.

    Sekiranya ralat input individu, ia bergantung pada data dalam $data anda.

    balas
    0
  • Batalbalas