Form sunulmasından sonra MYSQL gelen satır değerleri taşıyan

5 Cevap php

Başka bir formda bir oto artırılır kimliği taşımak için en iyi yolu nedir?

3 tablolar (kullanıcılar, konutlar, ve users_residences) var. Ben ikamet tabloya bir satır eklemek ve aynı anda users_residences için ikamet tabe satırın id ve kullanıcıların tablo satırın id katacak bir konut oluşturmak için bir forma yönlendirilecek, kayıt bir kullanıcı, kullanıcıların tabloya eklenecek istiyorum tablo.

Ben uri kesimleri ile oynamak olmuştur, ancak ikinci formunda kullanılmak üzere saklamak (veya çağrı) sadece eklenen kullanıcının kimliği için bir yol düşünemiyorum.

Herhalde bundan satır kimliğini bulmak sonra, kullanıcıların tabloda bir session id saklamak için oturumları kullanabilirsiniz, ama oldukça hacky görünüyor.

Ben bu yüzden başarısız olduğunu söylemek için çekinmeyin programlama oldukça yeni, ama en azından bu kavramların bazı öğrenebilirsiniz nerede yönde bana gelin.

Thanks
Al

5 Cevap

Ben kullanıcıların tablodaki oturum anahtarı ile daha kapalı söyleyebilirim; o (https üzerinden yapıyorsun varsayarak) daha güvenli bulunuyor.

Gizli bir alanda bir değeri saklamak güvenlik açısından işlemek için kolaydır. Lütfen alanları otomatik artış kullanırsanız, o bir sonraki ne olacağını tahmin etmek de çok kolay. Bir kullanıcı sadece bir sonraki kullanıcı işlemleri gibi davranırlar ve o kullanıcının bilgi alabilir. Ayrıca diğer kullanıcıların kimlikleri siteniz, vb kayıtlı kaç kullanıcı, ne hakkında bilgi veriyoruz

Bir şey ajaxy yapmayı planlıyoruz sürece Ayrıca, ben bir seçim orada çok emin değilim; Kullanıcı, teslim tıklıyorsunuz kaydetmek oluyor ise başka bir web sayfasına yönlendirileceksiniz olsun, iletilen olabilir tek bilgi veya oturumda bunları yönlendirmek url olacaktır. Siz url geçmek olabilir, ama aynı zamanda yukarıdaki sorunları olurdu.

İkinci biçimde dahil olabilir:

<input type='hidden' name='user_id' value='whatever' />

MySQL bu deyimi ile son eklenen satırın id alabilirsiniz:

select LAST_INSERT_ID();

Sonra gelecek uçlar için form veya oturumunda bu değer etrafında iletebilirsiniz.

Sen diyebilirsin

 $id = mysql_insert_id();

hemen değiştirmemesi alan için veritabanı tarafından oluşturulan son kimliği almak için insert deyimi çalıştırdıktan sonra. Deyim bir kimliği oluşturmak olmasaydı bu 0 döndürür. Bu page daha ayrıntılı olarak açıklıyor.

Daha sonra bir sonraki formda olduğunu id kullanabilirsiniz

 <input type="hidden" value="<?= $id ?>"/>

Well I think that first you should use Database transactions during the process. Second thing to do is to get the last inserted id inside the transaction with:

gibi:

$this->db->trans_start();
..(QUERIES)...
$this->db->insert_id();
..(QUERIES)...
$this->db->trans_complete();

Regards,
@pcamacho