MySQL veritabanı kullanan bir sitede çalışıyorum ve PHP ile kodlama yapılıyor. Giriş alanları olan bir yükleme sayfam var. Bu sayfada bir mysqli_query seçimi ile seçenekleri koymak bir açılan giriş alanı listesi var. Aynı sayfada başka bir form var. Burada kullanıcı, açılan giriş alanına da eklenecek MySQL veritabanına yeni bir öğe ekleyebilir.mysql kullanarak açılan mysql giriş sayfalarını yenileyerek aynı sayfaya yeni öğe ekleyen PHP
Benim fikrim MySQL öğelerini bir işleve seçen kodu koymak ve yeni bir öğe eklendikten sonra onu çağırmaktı, ancak işlev içinde tanımlanmamış göründüğü gibi işlev içinde bağlantı parametrelerinde sorun yaşıyorum. Belki de bağlantıyı başka bir işleve sokmalı mıyım?
Başka bir şey, sayfayı yenilemeden yukarıda yazılı olanı (açılır listeden yeni seçeneği görmek) elde etmek istiyorum. Bunu başarmak için AJAX'a ihtiyacım var mı? Şimdi, listeye yeni bir öğe eklemek için gönder düğmesine basıldığında sayfa otomatik olarak yenileniyor.
Herhangi bir yardım için teşekkür ederiz. Teşekkür ederim! sayfasında benim kod parçalarını Sorumlu
şunlardır:
//making the list for the drop down input field
include "./shortscript/connect_to_mysqli.php";
$sql = mysqli_query($dblink, "SELECT DISTINCT * FROM items") or die(mysql_error());
$count = mysqli_num_rows($sql);
$item_list = '<option value=""></option>';
if($count > 0) {
while ($row = mysqli_fetch_array($sql)){
$item_list .= '<option value="'.$row['item_id'].'">'.$row['brand']
.' '.$row['model'].' '.$row['category'].'</option>';
}
}
mysqli_close($dblink);
//test input function
function test_input($link, $data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
$data = mysqli_real_escape_string($link, $data);
return $data;
}
//adding new item on the other form
if(isset($_POST['submit_new item'])) {
include "./shortscript/connect_to_mysqli.php";
$brand = test_input($dblink, $_POST['brand']);
$model = test_input($dblink, $_POST['model']);
$category = test_input($dblink, $_POST['category']);
if($sqlAddCamera =
mysqli_query($dblink, "INSERT INTO items (brand, model, "
. "category) VALUES"
. "('$brand', '$model', '$category')")
or die(mysql_error()));
}
Ve connect_to_mysqli.php dosyası arar (bu akım çalışma gerekli çözüm olmadan versiyonudur) gibi:
<?php
//msqli connection
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'xy';
$dblink = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname)
or die(mysql_error());
mysqli_set_charset($dblink, 'utf8');
?>
'DISTINCT *' anlamsız bir kavramdır. – Strawberry
'' İşlev içinde tanımlanmamış görünüyorlar ''- Hangi işlevde hangi parametreler var? Bu işlevi nereye çağırıyorsunuz ve parametreleri nasıl sağlıyorsunuz? Spesifik olun, bunu sizin için ayıklayamayız. “Bunu başarmak için AJAX'a ihtiyacım var mı?” - Verileri sayfayı yenilemeden sunucudan almak isterseniz, evet. – David
Bu sayfa db'ye yeni bir öğe eklediğinde, bu sayfayı kendisine yönlendirebilirsiniz. * AJAX kullanmak istemiyorsanız. –