SQL'den veri çekmek

  • Konuyu başlatan STEM
  • Başlangıç Tarihi
  • Mesaj 5
  • Görüntüleme 439

STEM

Decapat
Katılım
5 Haziran 2022
Mesajlar
107
Çözümler
1
Daha fazla  
Cinsiyet
Erkek
Veri çok büyük o yüzden örnegin localhost/api.php?id=xxx yazıldıgında gelmesini istiyorum nasıl yaparım?
PHP:
<?php

$con = mysqli_connect("localhost","root","","kullanıcı");

if($con)
{
    $sql = "select * from kullanıcı";
    $result =mysqli_query($con,$sql);
    if($result){
        header("Content-Type: JSON");
        $i=0;
        while($row = mysqli_fetch_assoc($result)){

            $response[$i]['ID']= $row ['ID'];
            $response[$i]['NO']= $row ['NO'];
            $i++;


        }
        echo json_encode($response,JSON_PRETTY_PRINT);
    }

   
}

?>
 
Kod:
<?php

// Veritabanı bağlantısı
$con = mysqli_connect("localhost", "root", "", "kullanıcı");

// Bağlantı kontrolü
if (!$con) {
    die("Veritabanı bağlantı hatası: " . mysqli_connect_error());
}

// HTTP isteğinden id parametresini alma
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;

// SQL sorgusu
$sql = "SELECT * FROM kullanıcı WHERE ID = ?";

// Sorguyu hazırlama ve parametre bağlama
$stmt = mysqli_prepare($con, $sql);
mysqli_stmt_bind_param($stmt, "i", $id);

// Sorguyu çalıştırma
mysqli_stmt_execute($stmt);

// Sonuçları al
$result = mysqli_stmt_get_result($stmt);

// Veri varsa JSON olarak dön
if ($row = mysqli_fetch_assoc($result)) {
    header("Content-Type: application/json");
    echo json_encode($row, JSON_PRETTY_PRINT);
} else {
    // Eğer sonuç yoksa, hata mesajı
    echo json_encode(["error" => "Kayıt bulunamadı"]);
}

// Bağlantıyı kapat
mysqli_close($con);

?>

bu şekilde sonuç bulunursa json formatında döndürüyor
 
Kod:
<?php

// Veritabanı bağlantısı.
$con = mysqli_connect("localhost", "root", "", "kullanıcı");

// Bağlantı kontrolü.
if (!$con) {
 die("Veritabanı bağlantı hatası: " . mysqli_connect_error());
}

// HTTP isteğinden id parametresini alma.
$id = isset($_GET['id']) ? intval($_GET['id']) : 0;

// SQL sorgusu.
$sql = "SELECT * FROM kullanıcı WHERE ID = ?";

// Sorguyu hazırlama ve parametre bağlama.
$stmt = mysqli_prepare($con, $sql);
mysqli_stmt_bind_param($stmt, "i", $id);

// Sorguyu çalıştırma.
mysqli_stmt_execute($stmt);

// Sonuçları al.
$result = mysqli_stmt_get_result($stmt);

// Veri varsa JSON olarak dön.
if ($row = mysqli_fetch_assoc($result)) {
 header("Content-Type: application/json");
 echo json_encode($row, JSON_PRETTY_PRINT);
} else {
 // Eğer sonuç yoksa, hata mesajı.
 echo json_encode(["error" => "Kayıt bulunamadı"]);
}

// Bağlantıyı kapat.
mysqli_close($con);

?>

Bu şekilde sonuç bulunursa JSON formatında döndürüyor.

Hocam örnek bir çalıştırma kodu yapar mısınız sonuç bulunamadı atıyor.
 
Eğer parametre olarak integer vermiyorsanız yukarıdaki kod bloğu çalışmaz.

$id = isset($_GET['id']) ? intval($_GET['id']) : 0;

bu kısmı

$id = $_GET['id'];

olarak değiştirerek deneyin
 
Eğer parametre olarak integer vermiyorsanız yukarıdaki kod bloğu çalışmaz.

$Id = isset($_get['id'])? İntval($_get['id']): 0;

Bu kısmı.

$Id = $_get['id'];

Olarak değiştirerek deneyin.

Benim kodum data çekebiliyor ama dedigim gibi yapmak istiyorum onu nasıl yaparım?
 
Burada benim size hazır kod bloğu vermem hiç bir şeyi değiştirmez.

URL den parametre olarak bir değişken almak ve o değişkenin değerine göre veritabanına sorgu atmaya çalışıyorsunuz.

Şu an çalışan kod bloğunu, URL parametresinden değer alacak şekilde güncelleyerek denemeler yapın.

Örn: $id = $_GET['id'];

Bu satır site.com/?id=1 şeklinde bir istek attığımda 1 değerini $id değişkenine atar.
Sonrasında id değişkenini veritabanı sorgusunun içinde kullanmalısınız.
 

Technopat Haberler

Yeni konular

Geri
Yukarı