2 votes

Impossible d'enregistrer les valeurs d'incrémentation dans mysql

J'essaie d'enregistrer la valeur id lors de l'enregistrement des données. Je peux le faire avec l'option d'incrémentation automatique, mais pour une raison ou une autre, je ne veux pas l'utiliser dans la base de données.

Je parviens même à enregistrer le premier enregistrement, mais il répète ensuite l'identifiant précédent. Merci de m'aider à résoudre ce problème. Merci beaucoup.

Contrôleur

public function ajax_add()
{
    $this->_validate();
    $data = array(
        'VillageName'=> $this->input->post('VillageName'),
        'VillageCode'=> $this->input->post('VillageCode'),                              
        'VillageId_save'=> $this->input->post('VillageId_save'),                                
        'VillageType'=> $this->input->post('VillageType'),
        'BlockId'=> $this->input->post('BlockId'),
        'CreatedBy' => $this->input->post('CreatedBy'),
    );
    $insert = $this->village->save($data);
    echo json_encode(array("status" => TRUE));
}

public function get_lastvillageid()
{
    $data = $this->village->getLastInserted();
     echo json_encode($data[0]['VillageId']);
}

Voir

function save_vid()
{
  var id = $('#VillageId_save').val();
     $.ajax({
            type:'POST',
            dataType:'json',
            url:'Village/get_lastvillageid',
            data:{'id':id},
            success:function(response){    
                console.log("Data is : "+response);
            console.log("Data is : "+ JSON.stringify(response));
               data = JSON.parse(response);
                $("#VillageId_save").val(data);
            }
    });
}

<input type="hidden" value="<?php
    foreach ($getLastInserted as $row) {              
        echo $row['VillageId']+1;
    }?>" name="VillageId_save" id ="VillageId_save"/>

0voto

Jaydeep Mor Points 952

Avec PHP,

Obtenir le dernier identifiant inséré à l'aide de mysql et l'incrémenter de "1", puis l'insérer. S'il n'y a pas d'enregistrement, la valeur par défaut est "1".

Par exemple

/* Set DB Connection. */
$select_last_id = "select max(id) as auto_inc from table name";
$res = mysqli_query($mysqli,$select_last_id);
if(mysqli_num_rows($res)>0){
    $row = mysqli_fetch_array($res);
    $new_increment_id = intval($row['auto_inc'])+1;
}
else{
    $new_increment_id = 1;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X