Arama butonu
Bu konudaki kullanıcılar: 1 misafir
4
Cevap
130
Tıklama
0
Öne Çıkarma
PHP Foreach ile ilgili yardim talebi
G
6 yıl
Yüzbaşı
Konu Sahibi

Merhaba,

PHP konusunda acemiyim, asagidaki kodlama ile ilgili yardimci olabilir misiniz?

Satirlara bilgileri dagitamadim, sadece zit anlamlilara bilgiyi verebiliyorum, kodu nasil duzenlemeliyim? Yardiminiz icin tesekkur ederim.


echo "<tr><td colspan='2'><strong>Eş Anlamlı : </strong>";
echo "<tr><td colspan='2'><strong>Eş Sesli : </strong>";
echo "<tr><td colspan='2'><strong>Zıt Anlamlı : </strong>";

$sql = "SELECT * FROM sozluk WHERE id IN ({$sozluk['synonyme']}) AND onay ='e' GROUP BY id";
$sql = "SELECT * FROM sozluk WHERE id IN ({$sozluk['homonyme']}) AND onay ='e' GROUP BY id";
$sql = "SELECT * FROM sozluk WHERE id IN ({$sozluk['contraire']}) AND onay ='e' GROUP BY id";

$stmt = $db->prepare($sql);
$stmt->execute();
$kelimeler = $stmt->fetchAll();

foreach ($kelimeler as $row) {

echo "<a href='kelime/?kelime={$row['word']}'>{$row['word']}</a> | ";
}



T
6 yıl
Yarbay

$sql değişkenine 3 defa deger atadığın için en son atandığı degerde kalıyor o yüzden sadece karşıt anlamlılar geliyor. $sql'e 'synonime' ve 'homonyme' gibi her deger atamadan sonra $stmt = $db->prepare($sql); sonrasını tekrarlamalısın. Daha zarif çözüm için $stmt = $db->prepare($sql) ... kısmını fonksiyon olarak düzenleyip, $sql 'in değişen değerlerini argüman verip çağırabilirsin.



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
G
6 yıl
Yüzbaşı
Konu Sahibi

Merhaba,

Cevap icin tesekkur ederim. Sanirim yapamadim, sonuc goruntulemede bir etki olmadi.

<?php
if ($stmt->rowCount() > 0) {
$sozluk = $stmt->fetch();
echo "<tr><td><strong>Kelime : </strong></td><td>{$sozluk['word']}</td></tr>";
if ($sozluk['wtype'] == 'fiil') {
$seo = 'fiil/' . sef($sozluk['word']) . '/';
echo "<tr><td><strong>Kelime Tipi : </strong></td><td>{$sozluk['wtype']}
<a href='$seo'> fiil çekimi için tıklayın.</a> </td></tr>";
} else {
echo "<tr><td><strong>Kelime Tipi : </strong></td><td>{$sozluk['wtype']}</td></tr>";
}
echo "<tr><td><strong>Kelime Pron : </strong></td><td>{$sozluk['wpron']}</td></tr>";
echo "<tr><td><strong>Fransızca Açıklaması : </strong></td><td>{$sozluk['fr_def']}</td></tr>";
echo "<tr><td><strong>Türkçe Açıklaması : </strong></td><td>{$sozluk['tr_def']}</td></tr>";
echo "<tr><td><strong>Örnek : </strong></td><td>{$sozluk['example']}</td></tr>";
echo "<tr><td><strong>İfade : </strong></td><td>{$sozluk['expression']}</td></tr>";
echo "<tr><td colspan='2'><strong>Eş Anlamlı : </strong>";
echo "<tr><td colspan='2'><strong>Eş Sesli : </strong>";
echo "<tr><td colspan='2'><strong>Zıt Anlamlı : </strong>";

$sql = "SELECT * FROM sozluk WHERE id IN ({$sozluk['synonyme']}) AND onay ='e' GROUP BY id";

$stmt = $db->prepare($sql);
$stmt->execute();
$kelimeler = $stmt->fetchAll();

$sql = "SELECT * FROM sozluk WHERE id IN ({$sozluk['homonyme']}) AND onay ='e' GROUP BY id";

$stmt = $db->prepare($sql);
$stmt->execute();
$kelimeler = $stmt->fetchAll();

$sql = "SELECT * FROM sozluk WHERE id IN ({$sozluk['contraire']}) AND onay ='e' GROUP BY id";

$stmt = $db->prepare($sql);
$stmt->execute();
$kelimeler = $stmt->fetchAll();

foreach ($kelimeler as $row) {

echo "<a href='kelime/?kelime={$row['word']}'>{$row['word']}</a> | ";
}


echo "</td></tr>";

} else {

echo "<h2>Aradığınız kelime sözlükte bulunamamıştır.</h2>";

}





< Bu mesaj bu kişi tarafından değiştirildi Guest-1CB9793EF -- 21 Ekim 2018; 18:50:57 >


Bu mesajda bahsedilenler: @revivo72
T
6 yıl
Yarbay

Kodu yerinde çalıştırmadan birşey diyemem. Satırlar arasına echo 'deneme 1'; echo 'deneme 2' gibi debug amaçlı satırlar koyarak hatanın oluştuğu yeri bularak devam edebilirsin. Uzaktan daha fazla birşey diyemem...



< Bu ileti mini sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
G
6 yıl
Yüzbaşı
Konu Sahibi

Tesekkur ederim.




Bu mesajda bahsedilenler: @revivo72
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.