1119 gün önce iki farklı tabloyu birleştirip search işlemi yapma
sorusunu cevapladı.
<?php
/*
PDO ile veritabanı bağlantısını kur
'users' tablosundaki 'id' değeriyle ve 'posts' tablosundaki 'user_id' değeri eşleşen verileri çek
search inputa girilen değeri ilişkili tabloların 'name' ve 'title' alanlarına göre ara
*/
// Veritabanı bağlantısı
try {
$db = new PDO("mysql:host=localhost;dbname=database;charset=utf8", "root", "");
} catch ( PDOException $e ){
print $e->getMessage();
}
// search inputa girilen değeri al
$search = $_GET['search'];
// Verileri çek
$statement = $db->prepare("SELECT * FROM users LEFT JOIN posts ON users.id = posts.user_id WHERE users.name LIKE ? OR posts.title LIKE ?");
$statement->execute(["%$search%", "%$search%"]);
$results = $statement->fetchAll(PDO::FETCH_ASSOC);
// Verileri ekrana yazdır
foreach ($results as $result) {
echo $result['name'] . ' - ' . $result['title'] . '<br>';
}
Ornek olarak boyle bir sey ariyorsunuz anladigim kadariyla
1119 gün önce LastInsertID çalışmaması
sorusunu cevapladı.
<?php
require_once 'db.php';
if(isset($_POST['submit'])){
$baslik = $_POST['baslik'];
$aciklama = $_POST['aciklama'];
$kategori = $_POST['kategori'];
$resim = $_FILES['resim']['name'];
$resim_tmp = $_FILES['resim']['tmp_name'];
$sql = "INSERT INTO galeri (baslik,aciklama,kategori) VALUES ('$baslik','$aciklama','$kategori')";
$query = $db->prepare($sql);
$query->execute();
$last_id = $db->lastInsertId(); // son eklenen verinin id'sini alıyoruz
foreach($resim as $key => $value){
$sql = "INSERT INTO resimler (resim,galeri_id) VALUES ('$value','$last_id')";
$query = $db->prepare($sql);
$query->execute();
}
if($query){
echo "Kayıt başarılı";
}else{
echo "Kayıt başarısız";
}
}
1119 gün önce Premium üyelik
sorusunu cevapladı.
<?php
// 1. PDO veritabanı bağlantısı
try {
$db = new PDO("mysql:host=localhost;dbname=premium", "root", "");
} catch ( PDOException $e ){
print $e->getMessage();
}
// 2. Kullanıcı bilgilerini al
$query = $db->prepare("SELECT * FROM users WHERE id = ?");
$query->execute([1]);
$user = $query->fetch(PDO::FETCH_ASSOC);
// 3. Kullanıcı premium değilse ve bitiş tarihi geçmişse premium sütununu 0 yap
if($user['premium'] == 0 && $user['premium_end'] < time()){
$query = $db->prepare("UPDATE users SET premium = 0 WHERE id = ?");
$update = $query->execute([1]);
}
// 4. Kullanıcı premium ise ve bitiş tarihi geçmişse premium sütununu 0 yap
if($user['premium'] == 1 && $user['premium_end'] < time()){
$query = $db->prepare("UPDATE users SET premium = 0 WHERE id = ?");
$update = $query->execute([1]);
}
// 5. Kullanıcı tek seferlik premium ise ve bitiş tarihi geçmişse premium sütununu 0 yap
if($user['premium'] == 2 && $user['premium_end'] < time()){
$query = $db->prepare("UPDATE users SET premium = 0 WHERE id = ?");
$update = $query->execute([1]);
}
// 6. Kullanıcı tekrar premium almak istiyorsa premium sütununu 1 yap
if($user['premium'] == 0 && $user['premium_end'] > time()){
$query = $db->prepare("UPDATE users SET premium = 1 WHERE id = ?");
$update = $query->execute([1]);
}
Kod uzerinden ornekle gostermek gerekirse basitce bu sekilde denebilir
1137 gün önce 10 Dakikada bir tıklanabilen buton
sorusunu cevapladı.
PHP Kodu:
<!--
1. PHP ile 10 dakikada bir tıklanabilen buton oluştur
2. kalan süreyi saat dakika saniye olarak bir div içerisinde göster
3. süre bittiğinde butonu tekrar tıklanabilir hale getir
-->
<?php
$lastTime = time(); // 1. butonun son tıklanma zamanını al
$lastTime = $lastTime + 600; // 1. butonun son tıklanma zamanına 10 dakika ekle
$lastTime = date("Y-m-d H:i:s", $lastTime); // 1. butonun son tıklanma zamanını tarih formatına çevir
$now = time(); // 2. şu anki zamanı al
$end = strtotime($lastTime); // 2. butonun son tıklanma zamanını tarih formatından çıkar
$diff = $end - $now; // 2. butonun son tıklanma zamanından şu anki zamanı çıkar
// $hours = floor($diff / 3600); // 2. kalan süreyi saat olarak al
$mins = floor($diff / 60 % 60); // 2. kalan süreyi dakika olarak al
$secs = floor($diff % 60); // 2. kalan süreyi saniye olarak al
// echo $hours . " saat " . $mins . " dakika " . $secs . " saniye";
// echo $mins . " dakika " . $secs . " saniye";
?>
HTML Kodu:
<div id="time"></div> <!-- 2. kalan süreyi saat dakika saniye olarak bir div içerisinde göster -->
<button id="btn">Tıkla</button> <!-- 1. butonu oluştur -->
<script>
let btn = document.getElementById("btn"); // 1. butonu seç
let time = document.getElementById("time"); // 2. kalan süreyi saat dakika saniye olarak bir div içerisinde göster
let mins = <?php echo $mins; ?>; // 2. dakika olarak al
let secs = <?php echo $secs; ?>; // 2. saniye olarak al
btn.addEventListener("click", () => { // 1. butona tıklandığında
btn.disabled = true; // 1. butonu tıklanamaz hale getir
let timer = setInterval(() => { // 2. süre bittiğinde butonu tekrar tıklanabilir hale getir
if (mins == 0 && secs == 0) {
btn.disabled = false; // 2. butonu tekrar tıklanabilir hale getir
clearInterval(timer); // 2. süre bittiğinde butonu tekrar tıklanabilir hale getir
} else {
if (secs == 0) { // 2. saniye 0 ise
mins--; // 2. dakikayı 1 azalt
secs = 59; // 2. saniyeyi 59 yap
} else {
secs--; // 2. saniyeyi 1 azalt
}
time.innerHTML = mins + " dakika " + secs + " saniye"; // 2. kalan süreyi saat dakika saniye olarak bir div içerisinde göster
}
}, 1000); // 2. süre bittiğinde butonu tekrar tıklanabilir hale getir
});
</script>
Umarım yardımı dokunur
1138 gün önce 10 Dakikada bir tıklanabilen buton
sorusunu cevapladı.
<!--
1. JS ile 10 dakikada bir tıklanabilen buton oluşturuyoruz
2. kalan süreyi saat dakika saniye olarak bir div içerisinde gösteriyoruz
3. süre bittiğinde butonu tekrar tıklanabilir hale getiriyoruz
-->
<button id="btn">Tıkla</button>
<br><br>
<div id="time"></div>
<script>
let btn = document.getElementById("btn"); // butonu seçtik
let time = document.getElementById("time"); // div'i seçtik
let timeLeft = 600; // 10 dakika = 600 saniye
let timer = null; // timer değişkeni oluşturduk
btn.addEventListener("click", () => { // butona tıklandığında
if (timer == null) { // timer boşsa
btn.disabled = true; // butonu devre dışı bırak
timer = setInterval(() => { // timer değişkenine setInterval fonksiyonunu atadık
timeLeft--; // her saniyede 1 azalttık
// let hour = Math.floor(timeLeft / 3600); // saat
let minute = Math.floor((timeLeft % 3600) / 60); // dakika
let second = timeLeft % 60; // saniye
// time.innerHTML = `Kalan Süre: ${hour} : ${minute} : ${second}`;
time.innerHTML = `Kalan Süre: ${minute} : ${second}`; // dakika saniye olarak yazdırdık
if (timeLeft == 0) { // süre bittiğinde
clearInterval(timer); // timer'ı durdurduk
timer = null; // timer değişkenini boşalttık
btn.disabled = false; // butonu tekrar tıklanabilir hale getirdik
timeLeft = 600; // süreyi tekrar 600 saniye yaptık
}
}, 1000); // her saniyede bir çalıştır
}
});
</script>
1138 gün önce Unsplash gibi yerden resim çekme php
sorusunu cevapladı.
<?php
// $_GET['q'] ile aranan değere uygun unsplash.com'dan resim getiren fonksiyon
function get_image($q)
{
$url = "https://source.unsplash.com/featured/?" . $q; // resim url'si
$ch = curl_init(); // curl başlat
curl_setopt($ch, CURLOPT_URL, $url); // url ayarla
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // çıktıyı döndür
$output = curl_exec($ch); // çıktıyı al
$info = curl_getinfo($ch); // bilgileri al
curl_close($ch); // curl kapat
return $info['url']; // resim url'sini döndür
}
// $_GET['q'] değeri yoksa varsayılan olarak "nature" gönderiyoruz
$q = isset($_GET['q']) ? $_GET['q'] : "nature";
// kullanıcıdan arama değeri alıyoruz
$searchParam = htmlspecialchars($q);
// arama değerine göre resim getiriyoruz
$image = get_image($searchParam);
// resmi ekrana yazdırıyoruz
echo '<img src="' . $image . '" alt="' . $searchParam . '" />';
1138 gün önce Butona Tıklayarak js deki String Metni Kopyalamak
sorusunu cevapladı.
<!-- html -->
<button type="button" id="copyText">Veri'yi Getir</button>
<div id="string"></div>
<!-- copyText butonuna tıklandığında, string id'li div'in içine let message içindeki veriyi yaz -->
<!-- javascript -->
<script>
let message = "Merhaba Dünya";
let copyText = document.getElementById("copyText");
let string = document.getElementById("string");
copyText.addEventListener("click", function() {
string.innerHTML = message;
});
</script>
1138 gün önce File input'dan dosya ismini text inputa gösterme post etmeden
sorusunu cevapladı.
<!-- file form oluştur -->
<form action="#" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="text" name="file_name">
<button type="submit" name="submit">Yükle</button>
</form>
<!-- js ile file input'tan dosya adını parçala ve text inputuna yaz -->
<script>
const fileInput = document.querySelector('input[type="file"]'); // file input
const textInput = document.querySelector('input[name="file_name"]'); // text input
fileInput.addEventListener('change', () => { // file input'ta değişiklik olduğunda
let fileName = fileInput.value.split('\\'); // file input'tan dosya adını parçala
fileName = fileName[fileName.length - 1]; // parçalanan dosya adını
textInput.value = fileName; // text input'a yaz
});
</script>
1138 gün önce php para birimi kontrolü
sorusunu cevapladı.
<?php
function checkPrice($price)
{
$price = (float) $price;
if ($price > 0 && $price < 9999999.99) {
return $price;
} else {
return false;
}
}
// kullanım örneği
$price = checkPrice(123.45);
if ($price) {
echo $price;
} else {
echo 'Hatalı fiyat';
}
// sonuç: 123.45
1138 gün önce Cümle İçerisinde Arama
sorusunu cevapladı.
<?php
// bir json dosyasındaki anahtarın değerine göre arama işlemi yapan sınıf
class Filter
{
// json dosyası
private $jsonFile = 'filter_arr.json';
// json dosyasındaki anahtarın değerine göre arama işlemi
public function searchAndReturnJson($search)
{
// json dosyasını oku
$json = file_get_contents($this->jsonFile);
// json dosyasını diziye çevir
$array = json_decode($json, true);
// dizi içinde arama yap
$result = $this->search($array, $search);
// sonuç varsa json olarak döndür
if ($result) {
return json_encode($result);
}
// sonuç yoksa false döndür
return false;
}
// dizi içinde arama işlemi
private function search($array, $search)
{
// dizi içinde dolaş
foreach ($array as $key => $value) {
// anahtarın değeri aranan değerse
if ($value == $search) {
// anahtarın değerini döndür
return $value;
}
// anahtarın değeri dizi ise
if (is_array($value)) {
// dizi içinde arama yap
$result = $this->search($value, $search);
// sonuç varsa
if ($result) {
// sonucu döndür
// return $result;
return true;
}
}
}
// sonuç yoksa false döndür
return false;
}
}
// kullanım örneği:
require_once 'Filter.php'; // Filter sınıfını kullanacağın sayfaya dahil et
$filter = new Filter(); // sınıfı oluştur
$response = $filter->searchAndReturnJson('******'); // arama işlemi
if ($response) { // sonuç varsa
echo $response; // sonucu ekrana yazdır
} else { // sonuç yoksa
echo 'Sonuç bulunamadı'; // mesaj yazdır
}