sen kategori seçimini tekil mi yoksa multiple (çoklu seçimli) mi yaptırıyorsun onu anlamadım?
sanırım tek kategori seçsende yinede tüm kategorileri dahil edip çoklu ekliyor, doğru mu?
<select>
kodlarının olduğu kısmı name=""
alanını da paylaşır mısın?
konunu da düzenler misin? koddan önceki açıklamanı üçlü tırnağın üstüne al bir satır boşluk at. üç tırnaktan sonra php yaz alt satıra kodunu al.
daha okunaklı durur.
select count(*) from drinks as Ticecekler, select count(*) from salads as Tsalatalar
şöyle dener misin?
Sen burda implode ile kategori id'lerini birleştiriyorsun
$category_id = isset($_POST['category_id']) && is_array($_POST['category_id']) ? implode(',', $_POST['category_id']) : null;
implode' yi kaldırıp dene.
$category_id = isset($_POST['category_id']) ? $_POST['category_id'] : null;
@ynscnr55,
şu yazımın yanlış:
<?=(isset($pageTitle) ? $pageTitle : '<?php echo $ayarcek["ayar_title"];?>')?>
php kodunu başlatmışken (if-else nin kısa yazımını) else kısmında tek tırnaklı tekrar php eco yazılmaz ondan diğer sayfalarda başlığın kod olarak görünüyor.
şöyle dene:
<?= isset($pageTitle) ? $pageTitle : $ayarcek["ayar_title"];?>
Daha önce senin soruna benzer bir şeyi bende sormuştum. Ama bilgimin eksikliğinden tamamlayamadım.
Başlığı takipteyim, bende nasıl olacağını öğrenmek isterim.
Bunu bir dener misin?
SELECT DISTINCT * FROM (SELECT bayikodu FROM katilimcilar GROUP BY bayikodu);
$yazar[] yapınca adsoyadı doğru birleştirmiyor onun yerine tabloya direk "Array" yazıyordu. O yüzden işin içinden çıkamamıştım.
Bende $projeyazarları için $yazark[] yazıp implode için $yazark 'yi kullandım. bu şekilde işimi gördü.
foreach ($adi as $key => $value) {
$yazar = $value.' '.$soyadi[$key];
$yazark[] = $value.' '.$soyadi[$key];
}
$projeyazarlari = implode(', ', $yazark);
Destek için tekrar teşekkürler @munzevi.
@munzevi hocam, işin içinden çıkamadım. Kodlarım aşağıda düzeltmeniz mümkün mü?
if ($_POST) {
$i = 0;
if (!empty($_POST["adi"])) {
$adi = $_POST["adi"];
$soyadi = $_POST["soyadi"];
$yazar=array();
$yazar_sira = $_POST["yazar_sira"];
foreach ($adi as $key => $value) {
$y_adi = $value;
$y_soyadi = $soyadi[$key];
$y_sira = $yazar_sira[$key];
$yazar=$value.' '.$soyadi[$key];
$islem = ......
"INSERT INTO yazarlar",
.........
);
$i++;
};
$projeyazarlari[]= implode(', ', $yazar);
$islem = .....
"INSERT INTO proje",
..........
} else {
echo "yazar adı yok!"; };
$yazar=array();
foreach ($adi as $key => $value) {
$y_adi = $value;
$y_soyadi = $soyadi[$key];
$y_sira = $yazar_sira[$key];
$yazar=$value.' '.$soyadi[$key];
$projeyazarlari= implode(', ', $yazar);
....
$projeyazarlari için şu hata mesajını veriyor.
Hata mesajı: Expected type 'null|array'. Found 'string'.intelephense(1006)
foreach dışında alınca da Warning: implode(): Invalid arguments passed in ... hatası veriyor.
inputlarım bunlar:
<input type="text" class="form-control" name="adi[]">
<input type="text" class="form-control" name="soyadi[]">
Dizi:
["adi"]=>
array(3) {
[0]=> string(3) "Ali"
[1]=> string(4) "Veli"
[2]=> string(4) "Zeki"
}
["soyadi"]=>
array(3) {
[0]=> string(4) "Kaya"
[1]=> string(6) "Toprak"
[2]=> string(2) "Su"
}
İstediğim ek çıktılar:
$adsoyad: bunu verdiğiniz kod ile ad soyad birleştirerek istediğimi aldım.
Ali Kaya
Veli Toprak
Zeki Su.
Birde
$projeyazarı olarak: "Kaya Ali, Veli Toprak, Zeki Su"
şeklinde virgül ile birleştirilmiş halde çıktı almak istiyorum.
Yazarlar tablosu:
Yazar | adi | soyadi |
---|---|---|
Ali Kaya | Ali | Kaya |
Veli Toprak | Veli | Toprak |
Projeler tablosu:
Proje No | projeyazari |
---|---|
0012523 | Kaya Ali, Veli Toprak, Zeki Su |