bende şuan nodejs & php işbirliğinde proje hazırlıyorum. Yapacağın en basit şey, nodejs tarafına expres kurmak ve php ile oraya api isteğinde bulunmak.
<?php
$kategoriler = $db->query("SELECT * FROM kategori ORDER BY kategoriad ASC")->fetchAll();
<select name="kategori">
<option value="">Seçim Yapın</option>
<?php
foreach($kategoriler as $item){
echo '<option value="'.$item->kategoriID.'">'.$item->kategoriadi.'</option>';
}
?>
</select>
<?php
echo 'Çok çalışırsan bulursun...';
?>
database hatası alıyorsun, o kodların sayfanın üzerinde olduğunu varsayarsak, zaten aşağıların düzgün çalışmaması gerekir. Önce DB hatasını gidereceksin, birde sayfana jquery ekle, onunda hatasını alıyorsun.
iframe ile ilgili hiç bir işlem ile uğraşma. #sefac dediği gibi günenlik için zaten bir sürü engel var, bir başka konu da o frame içeriğine müdahalen söz konusu değil. Sen şuanki haline göre içerik planlıyorsun hoop bi bakmışsın o içerik, sayfa, link yapısı hepsi gitmiş elinde en iyi ihtimalle 404 kalmış.
$odenentutar = $_POST["odenentutar"];
$musteriID = $_POST["musteriID"];
$kalan = $odenentutar;
$borclar = $db->query(SELECT ID,borc,odenen FROM borclar WHERE musteriID='{$musteriID}' ORDER BY ID ASC)->fetchAll();
foreach($borclar as $item){
if($kalan>0){
$borcid = $item->ID
$borc = $item->borc;
if($borc<=$kalan){
$odenen = $borc;
$kalan = $kalan - $odenen;
else{
$odenen = $kalan;
$kalan = 0;
}
$update = $db->query("UPDATE borclar SET odenen='{$odenen}' WHERE ID='{$borcid}');
}else{
break;
}
}
görünmesini engelleyemezsin, ancak başka sitelerde kullanılmasını engellersin. sonuçta html içinde var olan css, js, img, video vs. herşey görünürdür. Yazacağın .htaccess ise siteadi.com/css denildiğinde o klasördeki dosyaları göstermez. Ama dosya adını zaten biliyorsa her şekilde görür içeriği.
sen sayfanın üzerinde DB bağlantısı yapıp da ardından hemen null kullanırsan sayfanın aşağılarında sorgu çalıştırmaya çalışırsan çalışmaz hata alırsın tabiki. null mutlaka kullan sonuçta kullandığın sistemin mysql ayarlarında bağlantı sayısı ve zaman aşımı süresi var. bunlar ne işe yarar dersen;
1) bağlantı sınırı (max_connection) : senin sisteminde her $db->connect olduğunda bir bağlantı açılır ve bu sınır diyelim ki sende 1000. aynı anda 1001 kişi girerse sistemin bağlantı hatası verir.
2) bağlantı zaman aşımı (connect timeout) : bu da sen eğer bağlantıyı kapatmazsan (null yapmazsan) ne kadar süre sonra aktif bağlantının kapanacağını belirler. bu süreyi azaltırsan uzun sorgularda timeout olursun, uzatırsan da kısa sorgularda boşuna bir bağlantı açık kalmış olur. sisteminde en iyiyi deneyerek bulursun.
yani bu durumda yapman gereken şey sayfanın üstünde db bağlantısı yapıp, sayfadaki tüm işler bitince yani sayfanın en altında $db = null yapman yeterli.
tablodan sadece okuma yapıyorsan MYISAM olsun, ama hem okuma hem yazma işleri aynı anda yapılıyor diyorsan INNODB olacak. Ayrıca arattığın alan mutlaka INDEX olacak. Tek sorgu ile 20 değil 100M kayıt arasında bile dediğin şey 1-2 sn de olur. 8M kayıt ve 27 sütünlu bir verideki (INNODB) sorgu sonucu 0.0298sn. Belirtmemişsin ancak, umarım döngü içinde sorgu kullanmıyorsundur.
GET ile veri gönderme, JQUERY kullanıyorsan sayfa yenilemeden istediğin veriyi POST ile sunucuya gönder, oradan gelen sonuca görede bilgi mesajı verebilirsin, bunlarla uğraşmana gerek yok.