• 28-12-2021, 12:55:34
    #1
    Merhaba, input içerisindeki verileri veritabanına tek satırda Array olarak nasıl kaydedebilirim? 1 Müşteri için sipariş formum var, bu ürünleri 1 müşteri için veritabanına kayıt edip sonradan müşteri üzerinden sipariş ettiği ürünleri bir tabloya aktarmam gerekiyor.

    Mantığı anlatabilecek var mı?

    Burada bir demo yapmaya çalıştım, Müşteri Ieader 3 ürün almış bunları gönder dediğimde veritabanına kayıt edeceğim, sonradan farklı bir sayfada alt kısımdaki tablo şeklinde Ieader in aldığı ürünleri tabloya yazdırmam gerekiyor.



    <div style="margin-top: 50px;"></div>
    <form id="contactForm1" action="http://localhost/array.php" method="post">
        <label>Müşteri</label>
        </label><input type="text" name="musteri" value="Ieader"> <br>
        <br>
        <label>Ürün 1:</label>
        <input type="text" name="Kod[]" value="01">
        <input type="text" name="Cinsi[]" value="Elma">
        <input type="text" name="Fiyat[]" value="3,60"><br>
        <br>
        <label>Ürün 2:</label>
        <input type="text" name="Kod[]" value="02">
        <input type="text" name="Cinsi[]" value="Armut">
        <input type="text" name="Fiyat[]" value="6,80"><br>
    
        <label>Ürün 3:</label>
        <input type="text" name="Kod[]" value="03">
        <input type="text" name="Cinsi[]" value="Kavun">
        <input type="text" name="Fiyat[]" value="1,50">
        <button type="submit" style="margin-top: 15px;">Gönder</button>
    </form>
    
    <style>
        table,
        td,
        th {
            border: 1px solid black;
        }
    
        table {
            width: 100%;
            border-collapse: collapse;
        }
    </style>
    
    
    <div style="margin-top: 50px;"></div>
    
    <table>
        <tr>
            <th>Kod</th>
            <th>Cinsi</th>
            <th>Fiyat</th>
        </tr>
    
        <?php
        echo json_encode($_POST, JSON_UNESCAPED_UNICODE);
        foreach ($_POST as $key => $value) { ?>
            <tr>
                <td><?php print_r($_POST['Kod']); ?></td>
                <td><?php print_r($_POST['Cinsi']); ?></td>
                <td><?php print_r($_POST['Fiyat']); ?></td>
            </tr>
        <?php } ?>
    </table>
  • 31-12-2021, 21:07:22
    #2
    form içerisinde 4 adet farklı input name var bunları print_r yaptığın için 4 defa her kolona yazdırıyor.
    Ürün 1
    Ürün 2
    Ürün 3
    ise input name hepsinde aynı ve array olduğundan(Kod[] ) ürün kodlarını görüntülüyorsun. Diğer inputlar içinde durum aynı.

    foreach($_POST as $input_key => $input_value){
    //Insert Query
    $sql = "INSERT INTO table_name (Kod,Cinsi,Fiyat)
    VALUES ($_POST[$input_key']['Kod'],$_POST[$input_key']['Cinsi'],$_POST[$input_key']['Fiyat'])";
    $connection->query($sql);
    }