[Çözüldü] PHP belirsiz değer yazdırma.

Başlatan MuhammedOzby, 07 Eylül 2016 - 14:40:48

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

MuhammedOzby

PHP 7 kullanıyorum ve 3 adet değerim var bunları bu şekilde yazdırıyorum :

    $sip_query = "INSERT INTO siplist (sipyer,siptur,sipadet) VALUES ('$sipayer','$sipatur','$sipaadet')";
    $sip_yaz = mysqli_query($baglan,$sip_query);


Bu 3 değer formdan 1'den fazla gelirse bunları nasıl yazdırabilirim?

Javascript ile gelen değerleri numaralandırabilirim bu arada. Forma her gelen alan javascript ile açılmakta.

Adet saydırabildiğim bir alan ekledim şimdi 1-2-3 diye kaç tane varsa tekrarlayan sayabiliyorum. formdaki isimlerede sıra adedini ekleyebiliyorum ama phpde bunu nasıl tekrarlarım bulamadım.


Edit



Şimdi HTMLde her seferinde artırarak gönderebiliyorum phpye bunu javascriptten ayarladım:

name="sipadedi['+ sira +']

Giden her ver sipadedi[1],sipadedi[2],sipadedi[3] diye gönderiliyor.

phpde ise

    for($sipdongu = 1; $sipdongu < 3; $sipdongu++) {
        $sipatur     =  $_POST['sipturu['+ $sipdongu +']'];
        $sipaadet    =  $_POST['sipadedi['+ $sipdongu +']'];
        mysqli_query ($baglan, "INSERT INTO siplist (sipyer,siptur,sipadet) VALUES ('$sipayer','$sipatur','$sipaadet')");
    }


almaya çalışıyorum ama :


        $sipatur     =  $_POST['sipturu['+ $sipdongu +']'];
        $sipaadet    =  $_POST['sipadedi['+ $sipdongu +']'];


bu iki satır hata veriyor ne yapabilirim hala çözemedim.

Source

Dediklerinizden anladığım kadarıyla bir formdan çoklu veri göndericeksiniz sanırım.

HTML

<form action="post.php" method="POST">
<select name="veri[]" multiple>
<option value="1">Veri 1</option>
<option value="2">Veri 2</option>
</select>
</form>


PHP

<?php
$sorgu 
"";
if(!empty(
$_POST["veri"])){
$veri "";
foreach(
$_POST["veri"] as $veri_id){
  
$veri .= $veri_id.",";
}
$veri substr($veri,0,-1);
$sorgu .= " and veriler in (".$veri.")";
}

?>


Şimdi sorgu değişkenine atadık.Eğer dediğini anladıysam yukarıdaki örnek işine yarayacaktır.

MuhammedOzby

Aynı değişkeni birden fazla değerle göndericeğim. Son kısımdayım ama bir türlü formdan post ile aldığım değişkeni döngüde kullanamadım.

bugra9

$_POST['sipturu['+ $sipdongu +']'];
kısmını
$_POST['sipturu'][$sipdongu];
şeklinde değiştirmelisin.

MuhammedOzby

#4
Şimdi yeniden rotuşladım.

HTML kodum böyle:

<?php
  
require("islem-php/bagsql.php");
    
// Giriş Kontrolü
    
if ( !isset($_SESSION['login']) ){
      echo 
'<meta http-equiv="refresh" content="0;URL=index.php">';
    }

  include(
"head.php");
  include(
"menu.php");
 
?>


  <div style="height:70px;"></div>
  <div class="col-sm-1"></div>
  <div class="col-sm-10">
    <!-- Sipariş form Başla -->
    <form action="islem-php/sipal.php" method="POST">
      <!-- Ana kolon -->
      <div id="urun">
        Sipariş Miktarı:
        <input class="form-control" id="disabledInput" name="sipsira" type="number" placeholder="1" disabled>
        <br></br>
        <!-- sol kolon -->
        <div class="col-sm-6">
          <div class="form-group">
            <select class="form-control" name="sipturu1" >
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
            </select>
          </div>
        </div>
        <!-- sağ kolon -->
        <div class="col-sm-6">
          <input type="number" class="form-control" placeholder="Adet" name="sipadedi1" aria-describedby="sizing-addon3">
        </div>
        <br></br>
        <hr>
      </div>
      <button type="button" onclick="urunek()" class="btn btn-default pull-right">Ürün Ekle</button>
      <button type="submit" class="btn btn-default pull-left">Onayla</button>
  </div>
  </form>
  <!-- Sipariş form Bitiş -->
  <div class="col-sm-1"></div>
  <?php
 
include("footer.php");
  
?>



Javascript böyle:

var sira = 1;
function urunek(){
  var alan = document.getElementById('urun');
  sira++;
  alan.innerHTML = alan.innerHTML + '<div id="urun">  Sipariş Miktarı:  <input class="form-control" id="disabledInput" name="sipsira" type="text" placeholder="' + sira +'" disabled>  <br></br>  <!-- sol kolon -->  <div class="col-sm-6">    <div class="form-group">      <select class="form-control" name="sipturu'+ sira +'" id="sipadet1">        <option>1</option>        <option>2</option>        <option>3</option>        <option>4</option>      </select>    </div>  </div>  <!-- sağ kolon -->  <div class="col-sm-6">    <input type="number" class="form-control" placeholder="Adet" name="sipadedi'+ sira +'" aria-describedby="sizing-addon3">  </div>  <br></br>  <hr></div>';
};


PHP ise böyle:

<?php
  error_reporting
(E_ALL);
  
ini_set("display_errors"1);

// if (($sipatur=="")||($sipaadet=="")){
//   echo '<script type="text/javascript">alert("Boş bıraktığınız kısımlar var.");</script>';
//   echo '<meta http-equiv="refresh" content="0;URL=../siparis.php">';
// }
// Her şey tamam ise bilgieri MySql tablomuza yolluyoruz.
// else {
require("bagsql.php");

    
$dongu_adet $_POST('sipsira');
    
$da = (int)$dongu_adet;

    for(
$sipdongu 0$sipdongu $dongu_adet$sipdongu++) {
        
$sipatur     =  $_POST['sipturu'$sipdongu ];
        
$sipaadet    =  $_POST['sipadedi'$sipdongu ];
        if(isset(
$sipatur)) {

            echo 
"değişken tanımlanmış";

          }
          else
          {
            echo 
"tanımlı değişken bulunamadı.";
          }
        
mysqli_query ($baglan"INSERT INTO siplist (sipyer,siptur,sipadet) VALUES ('$sipayer','$sipatur','$sipaadet')");
    }
// }

 
?>




Hata ise bu :

Fatal error: Uncaught Error: Array callback has to contain indices 0 and 1 in /var/www/html/islem-php/sipal.php:13 Stack trace: #0 {main} thrown in /var/www/html/islem-php/sipal.php on line 13

sadece şurda hata var :

    $dongu_adet = $_POST('sipsira');

textbox olsun diğerleri olsun hep aynı hatayı veriyor. Burada takılı kaldım string değeri

intval($degisken);
veya
(int)


ile convert etmeye çalıştım ama düzelmedi.


Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 08 Eylül 2016 - 13:14:45

Tamamdır. Şu şekilde hallettim :

<?php
  error_reporting
(E_ALL);
  
ini_set("display_errors"1);

require(
"bagsql.php");

    
$dongu_adet = (is_numeric($_POST['sipsira']) ? (int)$_POST['sipsira'] : 0);
    
$sipayer "boş";

    for(
$sipdongu 1$sipdongu <= $dongu_adet;$sipdongu++) {
        
$sipatur     =  $_POST['sipturu'.$sipdongu ];
        
$sipaadet    =  $_POST['sipadedi'.$sipdongu ];
        if(isset(
$sipatur)) {

            echo 
"değişken tanımlanmış";

          }
          else
          {
            echo 
"tanımlı değişken bulunamadı.";
          }
        
mysqli_query ($baglan"INSERT INTO siplist (sipyer,siptur,sipadet) VALUES ('$sipayer','$sipatur','$sipaadet')");
    }

 
?>



Javascript:

var sira = 1;
function urunek(){
  var alan = document.getElementById('urun');
  sira++;
  alan.innerHTML = alan.innerHTML + '<div id="urun">  Sipariş Miktarı:      <select class="form-control" id="disabledInput" name="sipsira" >      <option>'+ sira +'</option>    </select>  <br></br>  <!-- sol kolon -->  <div class="col-sm-6">    <div class="form-group">      <select class="form-control" name="sipturu'+ sira +'" id="sipadet1">        <option>1</option>        <option>2</option>        <option>3</option>        <option>4</option>      </select>    </div>  </div>  <!-- sağ kolon -->  <div class="col-sm-6">    <input type="number" class="form-control" placeholder="Adet" name="sipadedi'+ sira +'" aria-describedby="sizing-addon3">  </div>  <br></br>  <hr></div>';
};


HTML:

<?php
  
require("islem-php/bagsql.php");
    
// Giriş Kontrolü
    
if ( !isset($_SESSION['login']) ){
      echo 
'<meta http-equiv="refresh" content="0;URL=index.php">';
    }

  include(
"head.php");
  include(
"menu.php");
 
?>


  <div style="height:70px;"></div>
  <div class="col-sm-1"></div>
  <div class="col-sm-10">
    <!-- Sipariş form Başla -->
    <form action="islem-php/sipal.php" method="POST">
      <!-- Ana kolon -->
      <div id="urun">
        Sipariş Miktarı:
          <div class="form-group">
            <select class="form-control" id="disabledInput" name="sipsira" >
              <option>1</option>
            </select>
          </div>
        <br></br>
        <!-- sol kolon -->
        <div class="col-sm-6">
          <div class="form-group">
            <select class="form-control" name="sipturu1" >
              <option>1</option>
              <option>2</option>
              <option>3</option>
              <option>4</option>
            </select>
          </div>
        </div>
        <!-- sağ kolon -->
        <div class="col-sm-6">
          <input type="number" class="form-control" placeholder="Adet" name="sipadedi1" aria-describedby="sizing-addon3">
        </div>
        <br></br>
        <hr>
      </div>
      <button type="button" onclick="urunek()" class="btn btn-default pull-right">Ürün Ekle</button>
      <button type="submit" class="btn btn-default pull-left">Onayla</button>
  </div>
  </form>
  <!-- Sipariş form Bitiş -->
  <div class="col-sm-1"></div>
  <?php
 
include("footer.php");
  
?>



lazım olan kullanır :) ..