lostyazilim
tr.link

Php PDO veritaanindan veri okumak

17 Mesajlar 1.886 Okunma
lstbozum
tr.link

emalper emalper WM Aracı Kullanıcı
  • Üyelik 12.06.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Ogrenci
  • Konum Bursa
  • Ad Soyad A** E**
  • Mesajlar 72
  • Beğeniler 4 / 4
  • Ticaret 0, (%0)
Iyigunler arkadaslar veritabanindan veri cekmek icin yazdigim kod yanlis calisiyor. Veritabanindaki o sutuna ait tum verileri cekmek istiyorum yalniz sadece bir tanesini cekiyor acaba neden? Nerede hata yapmisim?

Bu front-end


$page_title = "User Authentication - Messages";
include_once 'partials/headers.php';
include_once 'partials/message.inc.php';
?>











Buda back-end


include_once 'resource/Database.php';
include_once 'resource/utilities.php';

$id = $_SESSION['id'];

$sqlQuery = "SELECT * FROM message WHERE uid = :id";
$statement = $db->prepare($sqlQuery);
$statement->execute(array(':id' => $id));

if ($statement->rowCount() > 0) {
// output data of each row
while ($row = $statement->fetch()) {
$test = $row["title"];
}
} else {
echo "0 results";
}

?>


 

 

wmaraci
reklam

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
fetch yerine fetchAll kullanmayı denediniz mi?
xsafa

kişi bu mesajı beğendi.


emalper emalper WM Aracı Kullanıcı
  • Üyelik 12.06.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Ogrenci
  • Konum Bursa
  • Ad Soyad A** E**
  • Mesajlar 72
  • Beğeniler 4 / 4
  • Ticaret 0, (%0)
evet yine sadece tek bir satir bilgi aliyorum bunu yazinca mesela bir satiri bir daha yazinca ikinci satiri almak istiyorum yani satir satir listelemek istiyorum ben
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
hee şimdi baktım da o şekil olmaz zaten, while döngüsünü direkt front-end e kurmanız lazım, test değişkenine muhtemelen sadece en son satırdaki veri geliyordur.
 

 


wmaraci
wmaraci

emalper emalper WM Aracı Kullanıcı
  • Üyelik 12.06.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Ogrenci
  • Konum Bursa
  • Ad Soyad A** E**
  • Mesajlar 72
  • Beğeniler 4 / 4
  • Ticaret 0, (%0)
anladim hocam peki bunu baska sekilde nasil yapabiliriz benim derdim front end ile backendi ayirmak ikisi farkli dosyalar olsun istiyorum bunu yapmamizin baska bir yolu var mi?
 

 

PinYazilim PinYazilim Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.02.2020
  • Yaş/Cinsiyet 25 / E
  • Meslek Yazılım
  • Konum Kocaeli
  • Ad Soyad K** D**
  • Mesajlar 48
  • Beğeniler 8 / 6
  • Ticaret 1, (%100)
foreach ile dener misin
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)

$test= "";
if ($statement->rowCount() > 0) {
// output data of each row
while ($row = $statement->fetch()) {
$test .= $row["title"].'
';
}
} else {
echo "0 results";
}

Bu şekilde yaparsanız belki bir şeyler çıkabilir. Veya test değişkenini array yapıp içine değerleri atarsınız ama yine front-end de bir dizi kod yazmak gerekir.
 

 


PinYazilim PinYazilim Üyeliği Durdurulmuş Banlı Kullanıcı
  • Üyelik 26.02.2020
  • Yaş/Cinsiyet 25 / E
  • Meslek Yazılım
  • Konum Kocaeli
  • Ad Soyad K** D**
  • Mesajlar 48
  • Beğeniler 8 / 6
  • Ticaret 1, (%100)
try {
$db = new PDO("mysql:host=localhost;dbname=dbname;charset=utf8", "root", "sifre");
} catch ( PDOException $e ){
print $e->getMessage();
}


$vericek = $db->query("SELECT * FROM film order by film_id desc limit 15", PDO::FETCH_ASSOC);



foreach($vericek as $row){
echo "".$row["film_baslik"]."
";
}


gerekli alanları kendinize göre düzenleyin muhtemelen çalışacaktır.
 

 

emalper emalper WM Aracı Kullanıcı
  • Üyelik 12.06.2017
  • Yaş/Cinsiyet 29 / E
  • Meslek Ogrenci
  • Konum Bursa
  • Ad Soyad A** E**
  • Mesajlar 72
  • Beğeniler 4 / 4
  • Ticaret 0, (%0)
hocam cevabiniz icin tesekkur ederim peki bunu yazdim backend olarak a.php ye koydum diyelim peki b.php bunu nasil satir satir gosterecegim?
 

 

Abdullahx Abdullahx MW Aracı Kullanıcı
  • Üyelik 03.04.2019
  • Yaş/Cinsiyet 29 / E
  • Meslek .
  • Konum Trabzon
  • Ad Soyad A** K**
  • Mesajlar 905
  • Beğeniler 393 / 395
  • Ticaret 3, (%100)
şu şekilde kullanmayı deneyin; front-end

$page_title = "User Authentication - Messages";
include_once 'partials/headers.php';
include_once 'partials/message.inc.php';
?>









şeklinde deneyin bir görmek istediğiniz sonuç o şekilde mi? Hatta back-end deki kod fazlalığında kurtulup

include_once 'resource/Database.php';
include_once 'resource/utilities.php';


function test_result($id) {

global $db;
$statement = $db->prepare("SELECT * FROM message WHERE uid = ?");
$statement->execute([$id]);

$test="";
if ($statement->rowCount() > 0) {
foreach($statement as $row) {
$test .= $row["title"].'
';
}
} else {
$test = "0 results";
}
return $test;
}

?>

şeklinde deneyin bir
 

 


wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al