php sorunu

Kodla Büyü

kaeii

Seçkin Üye
Seçkin Üye
Mesajlar
603
merhabalar bir admin paneli uzerınden guncelleme yapmaya calısıyorum uzun suredır php den uzak kaldıgım ıcın tekrar amaçlı bırseyler yapmaya calısıyorum duzenlediğim admın panelde fotoğraftakı gıbı kayıtlar var

ılgılı butona tıklayınca gereklı degısklıklerı de yaparak guncelleme ve silme yapmak ıstıyordum
https://paste.ubuntu.com/p/Cjzvv9Jr84/ ->guncelle php
kontrol.php
<?php
include 'baglantim.php';

$id=isset($POST['id']) ? $_POST['id'] : die('HATA: Id bilgisi bulunamadı.');

?>


maalesef id degerıne ulaşamıyorum. bundan dolayı da guncellemeye ulasamıyorum. buton calısssa bıle 3. kayıt bılgısını verıyor. kısacası
1. admın panelde ılgılı butona tıklandığında ilgili butonun ıd degerını nasıl aktarabılırım ?
umarım aktarabildim.
 

Ekli dosyalar

  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    30.6 KB · Görüntüleme: 29
isset($_POST['id])?....
kod boyleydı aslında

id=$_POST["id"];
$baslik=$_POST["baslik"];
$firma=$_POST["firma"];
$aciklama=$_POST["aciklama"];
$tarih=$_POST["tarih"];
$sonuc = $db->exec("UPDATE deneyim SET deneyim_baslik='$baslik',deneyim_firma='$firma',deneyim_aciklama='$aciklama',deneyim_tarih='$tarih'
WHERE deneyim_id = $id");

if($sonuc)
{
echo "islem basarılı oldu admin sayfasına yönlendriliyorsunuz ";
header("refresh:5;url=adminpanel.php");

}
else
{
echo ' Güncelleme yapmadınız ya da bir hata oluştu. anasayfaya hakkımda sayfasınayönlendriliyorsunuz';
header("refresh:5;url=deneyimler.php");
print_r($db->errorInfo());

}
}
 
Her kaydı bir form olarak düşünmelisiniz. Yani form etiketini tüm tabloya değilde tekrar eden her satıra veriniz. Bunun için form etiketini de foreach ile oluşturunuz. Bu arada thead iki kere yazmışsınız. Tekrar eden satırlar tbody içinde olmalı.
PHP:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
  font-size: 18px;
}

li {
  float: left;
}

li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover {
  background-color: #111;
}
</style>
<meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<ul>
  <li><a class="active" href="hakkimda.php">Hakkımda</a></li>
  <li><a href="deneyimler.php">Deneyimler</a></li>
  <li><a href="ozellik.php">Ozellikler</a></li>
  <li><a href="egitim.php">Egitim</a></li>
  <li><a href="hobiler.php">Hobiler</a></li>
  <li><a href="basarilar.php">Basarılar</a></li>
</ul>


<table class="table table-dark">
  <thead>
    <tr>
      <th scope="col">ID</th>
      <th scope="col">ISIM</th>
      <th scope="col">SOYISIM</th>
      <th scope="col">ADRES</th>
      <th scope="col">MAIL</th>
       <th scope="col">ACIKLAMA</th>
    </tr>
  </thead>
 
  <tbody>
    <?php
        include 'baglantim.php';
        $query = $db->query("SELECT deneyim_id,deneyim_baslik,deneyim_firma,deneyim_aciklama,deneyim_tarih FROM deneyim", PDO::FETCH_ASSOC);
       
        if ($query->rowCount() ){
            foreach($query as $row ){
                $id=$row["deneyim_id"];
                $ad=$row["deneyim_baslik"];
                $firma=$row["deneyim_firma"];
                $aciklama=$row["deneyim_aciklama"];
                $tarih=$row["deneyim_tarih"];
       
                echo"
                    <form name='frm$id' action='kontrol.php' method='post'>      
                        <tr>
                            <td scope='col'><input type='text' class='form-control'   name='id' value='$id'></td>
                            <td scope='col'><input type='text' class='form-control'  name='baslik' value='$ad'></td>
                            <td scope='col'><input type='text' class='form-control'  name='firma' value='$firma'></td>
                            <td scope='col'><input type='text' class='form-control'  name='aciklama' value='$aciklama'></td>
                            <td scope='col'><input type='text' class='form-control'  name='tarih' value='$tarih'></td>
                            <td scope='col'><input type='submit' name='guncelle' class='btn btn-primary' value='  Güncelle'></td>
                        </tr>
                    </form>";
            }
        }
    ?>
  </tbody>
</table>

</body>
</html>
 
Son düzenleme:
Her kaydı bir form olarak düşünmelisiniz. Yani form etiketini tüm tabloya değilde tekrar eden her satıra veriniz. Bunu için form etiketini de foreach ile oluşturunuz. Bu arada thead iki kere yazmışsınız. Tekrar eden satırlar tbody içinde olmalı.
PHP:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
  font-size: 18px;
}

li {
  float: left;
}

li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover {
  background-color: #111;
}
</style>
<meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<ul>
  <li><a class="active" href="hakkimda.php">Hakkımda</a></li>
  <li><a href="deneyimler.php">Deneyimler</a></li>
  <li><a href="ozellik.php">Ozellikler</a></li>
  <li><a href="egitim.php">Egitim</a></li>
  <li><a href="hobiler.php">Hobiler</a></li>
  <li><a href="basarilar.php">Basarılar</a></li>
</ul>


<table class="table table-dark">
  <thead>
    <tr>
      <th scope="col">ID</th>
      <th scope="col">ISIM</th>
      <th scope="col">SOYISIM</th>
      <th scope="col">ADRES</th>
      <th scope="col">MAIL</th>
       <th scope="col">ACIKLAMA</th>
    </tr>
  </thead>
 
  <tbody>
    <?php
        include 'baglantim.php';
        $query = $db->query("SELECT deneyim_id,deneyim_baslik,deneyim_firma,deneyim_aciklama,deneyim_tarih FROM deneyim", PDO::FETCH_ASSOC);
       
        if ($query->rowCount() ){
            foreach($query as $row ){
                $id=$row["deneyim_id"];
                $ad=$row["deneyim_baslik"];
                $firma=$row["deneyim_firma"];
                $aciklama=$row["deneyim_aciklama"];
                $tarih=$row["deneyim_tarih"];
       
                echo"
                    <form name='frm$id' action='kontrol.php' method='post'>      
                        <tr>
                            <td scope='col'><input type='text' class='form-control'   name='id' value='$id'></td>
                            <td scope='col'><input type='text' class='form-control'  name='baslik' value='$ad'></td>
                            <td scope='col'><input type='text' class='form-control'  name='firma' value='$firma'></td>
                            <td scope='col'><input type='text' class='form-control'  name='aciklama' value='$aciklama'></td>
                            <td scope='col'><input type='text' class='form-control'  name='tarih' value='$tarih'></td>
                            <td scope='col'><input type='submit' name='guncelle' class='btn btn-primary' value='  Güncelle'></td>
                        </tr>
                    </form>";
            }
        }
    ?>
  </tbody>
</table>

</body>
</html>
hocam tesekkurler dedıgınız degısklıgı yapmıstım evet ama kontrol sayfasında $_post['guncelle'] koudunu cıkardıktan sonra sonuc alabıldım
 
Her kaydı bir form olarak düşünmelisiniz. Yani form etiketini tüm tabloya değilde tekrar eden her satıra veriniz. Bunun için form etiketini de foreach ile oluşturunuz. Bu arada thead iki kere yazmışsınız. Tekrar eden satırlar tbody içinde olmalı.
PHP:
<!DOCTYPE html>
<html>
<head>
<style>
ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background-color: #333;
  font-size: 18px;
}

li {
  float: left;
}

li a {
  display: block;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

li a:hover {
  background-color: #111;
}
</style>
<meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
</head>
<body>

<ul>
  <li><a class="active" href="hakkimda.php">Hakkımda</a></li>
  <li><a href="deneyimler.php">Deneyimler</a></li>
  <li><a href="ozellik.php">Ozellikler</a></li>
  <li><a href="egitim.php">Egitim</a></li>
  <li><a href="hobiler.php">Hobiler</a></li>
  <li><a href="basarilar.php">Basarılar</a></li>
</ul>


<table class="table table-dark">
  <thead>
    <tr>
      <th scope="col">ID</th>
      <th scope="col">ISIM</th>
      <th scope="col">SOYISIM</th>
      <th scope="col">ADRES</th>
      <th scope="col">MAIL</th>
       <th scope="col">ACIKLAMA</th>
    </tr>
  </thead>
 
  <tbody>
    <?php
        include 'baglantim.php';
        $query = $db->query("SELECT deneyim_id,deneyim_baslik,deneyim_firma,deneyim_aciklama,deneyim_tarih FROM deneyim", PDO::FETCH_ASSOC);
      
        if ($query->rowCount() ){
            foreach($query as $row ){
                $id=$row["deneyim_id"];
                $ad=$row["deneyim_baslik"];
                $firma=$row["deneyim_firma"];
                $aciklama=$row["deneyim_aciklama"];
                $tarih=$row["deneyim_tarih"];
      
                echo"
                    <form name='frm$id' action='kontrol.php' method='post'>     
                        <tr>
                            <td scope='col'><input type='text' class='form-control'   name='id' value='$id'></td>
                            <td scope='col'><input type='text' class='form-control'  name='baslik' value='$ad'></td>
                            <td scope='col'><input type='text' class='form-control'  name='firma' value='$firma'></td>
                            <td scope='col'><input type='text' class='form-control'  name='aciklama' value='$aciklama'></td>
                            <td scope='col'><input type='text' class='form-control'  name='tarih' value='$tarih'></td>
                            <td scope='col'><input type='submit' name='guncelle' class='btn btn-primary' value='  Güncelle'></td>
                        </tr>
                    </form>";
            }
        }
    ?>
  </tbody>
</table>

</body>
</html>[/PHresımdekı bolumler ıcın  crud ıslemlerı  yapacagım   her menu ıcın ayrı guncelle  sıl   sayfaları olusturacagımda tek bır sayfada    butun sılme ıslemlerını    ılıgılı sayfaya gore    yapabılır mıyım ??
 

Ekli dosyalar

  • Ekran Alıntısı.JPG
    Ekran Alıntısı.JPG
    34.6 KB · Görüntüleme: 21
Geri
Üst