v2.5.2
Giriş yap

Son sayıya göre veri kaydetme

resat
335 defa görüntülendi

Merhaba arkadaşlar, order_number'da rand ile farklı sayılar üretiyordum ve kayıt ettiriyordum. Fakat yapmak istediğim orders içinde son order_numberin sayısını alıp +1 olması. Rand yerine sıra ile gitmesini istiyorum kayıtların. Nasıl yapabilirim yardımcı olabilecek arkadaşlara teşekkürler.

    $order_number="MZR".rand(0,999999);
    
    $data = $db->prepare('INSERT INTO  orders SET note=?,supplier_id=?,order_number=?,price=?,username=?');
    $data->execute([$note,$_POST["supplier_id"],$order_number,$price,$username]);

Cevap yaz
Cevaplar (2)
ebykdrms
888 gün önce
$data = $db->prepare('INSERT INTO orders SET note=?,supplier_id=?,order_number=(SELECT order_number FROM orders ORDER BY order_number DESC LIMIT 1)+1, price=?, username=?');
$data->execute([$note, $_POST["supplier_id"], $price, $username]);

Şeklinde deneyebilirsiniz. Her insert işleminizde, tablonuzdaki en büyük order_number değerini select ile alıp üstüne 1 eklemiş olurusunuz.

aydinkeskin
888 gün önce
 öncesinde select sorgusu ile fetch ile son numarayı alırsın
 
    $data->execute([$note,$_POST["supplier_id"],$order_number+1,$price,$username]);
    

içerde yada dışarda +1 ini eklersin
ilk önce oluşacak numaradan sonrası bu şekilde yaparsın
ilk oluşturduktan sonra çekerken koşul atasın numarayı bulamaz ise felan diye yeni numarayı yazdır dersin boş ise.
boş olmayacağı içinde her zaman +1 gider