Phpde Değişkenleri Yanyana Sıralama
-
kafam durmuş bulunmakta.Phpyi unutmuşum.Algoritmanın içinden de çıkamadım.
$stmt->bind_param('s',$args[1]);
şimdi fonksiyona ;
fonk('select mail, yazar uyeler where mail=? and yetki=?','test@test.com', '2')
gonderdiğimizde, ilk argumentten sonrası kaç tane değişken olduğuna bağlı.Burda 2 tane var o zaman şöyle olması gerek ;
$stmt->bind_param('ss',$args['1'],$args['2']);
eğer 3 tane olursa (benim kaç tane gireceğime bağlı)
$stmt->bind_param('sss',$args['1'],$args['2'],$args['3']);
şelş,imde s ler ve ,$args[X] artacak.
--
$args = func_get_args(); ile çektim.Databse sınıfında problem var;
echo $db->gor("SELECT mail, yazar FROM uyeler where mail=? AND yetki=?",'test@test.com','2');
olay böyle.
--
Gelelim düşündüklerime ; ve yaptıklarıma ; sonrasını saydırıp değişkenlere atadım.
$s = $s.'s';
$ss = $ss.','$args[$i]';
şeklinde döngüye sokayım dedim.
$stmt->bind_param($s,$ss);
gibi bir şey denedim olmadı.
-
c de yan yana yıldız bastırma falan geldi aklıma
*
**
***
****
*****gibiydi fakat bind_param(); işi karıştırıyor.
Fikri olan var mı ? (sanki çok kolaydı fakat hatırlayamadım)
-
baya bir incelendim ama pek bir şey anlamadığım baklıktan çıakrdığım sonua göre
<?php
$a="3";
$b="2";
//ise sen 32 yazmak istiyorsan
echo $a.$b;
?>
-
eyvallahta hocam o kadar basit olmasa gerek
if(count($args)>1){
for($i=1;$i<=count($args);$i++){
$s= $s.'s';
$ss = $ss.','.$args[$i];
}
$stmt->bind_param($s,$ss);
gibi birşey olmalı
-
o uğraştığın şekilde eval ile yaparsın ama amatör işi olur.
yanlış anlamadıysam şu şekilde kolayca yaparsın;classtan çektiriyosun galiba bi
foreach($args as $veri){
$veriler[]=$veri;
}call_user_func_array(array('stmt','bind_param'),$veriler);
-
şöyle yaptım halloldu ;
ss kısmı fakat args1 yerine falan $ss gelmesi lazım.
@ cosmic deniyip bakıcam.
if(count($args)>1){
$s = '';
$ss= '';
for($i=1;$i<count($args);$i++){
$s= $s.'s';
$ss = $ss.',$args['.$i.']';
}
$stmt->bind_param($s,$args['1'],$args['2']);
}
-
zumsuk bunu yazdı:
-----------------------------şöyle yaptım halloldu ;
ss kısmı fakat args1 yerine falan $ss gelmesi lazım.
@ cosmic deniyip bakıcam.
if(count($args)>1){
$s = '';
$ss= '';
for($i=1;$i<count($args);$i++){
$s= $s.'s';
$ss = $ss.',$args['.$i.']';
}
$stmt->bind_param($s,$args['1'],$args['2']);
}
-----------------------------2 parametre giriyor yine ya daha fazla olursa?
-
Cosmic bunu yazdı:
-----------------------------o uğraştığın şekilde eval ile yaparsın ama amatör işi olur.
yanlış anlamadıysam şu şekilde kolayca yaparsın;classtan çektiriyosun galiba bi
foreach($args as $veri){
$veriler[]=$veri;
}call_user_func_array(array('stmt','bind_param'),$veriler);
-----------------------------durum tam olarak şu ;
mysqli prepared kulalnıyorum.Veritabanı yazdım ve içine veri gönderip prepared şeklinde bastırcam.Fakat kaç tane değişken olacağı belli değil.
En son çare if ile deniyicem fakat daha basiti olması gerek
$stmt->bind_param($a,$b);
iki tane olsun.Burda $a yine gelecek sayıya göre 'ssssss' şeklinde s koyacak.$b ise , $args['1'] den başlayıp kaç s varsa o kadar $args[s sayısı] ekleyecek.
Fakat bind_param işi karıştırıyor
-
Cosmic bunu yazdı:
-----------------------------2 parametre giriyor yine ya daha fazla olursa?
-----------------------------eynen işte birinc kısımda sourn yok.2. kısmı halletmek gerek.
-
ben tam olarak olayı anlamadım ama verdiğim şekilde şunu yapmış olursun. bind_param fonksiyonuna parametre olarak func_get_args dan gelenlerr girer. ilk parametreyi elle vermek istiyosan o $veriler arrayının ilk itemini kendin verirsin diğer eklenenler func_get_argstan gelir
-
edit =) foreach ile yap hocam
-
ezsql classini kullanabilirsin
$sorgu="select email from members where id=1";
$kayitlar=$db->get_results($sorgu)
if (db->num_rows!=0)
{
$data="";
foreach($kayitlar as $kayit)
{
$data=$data.$kayit->email."< b r />";
}
}
echo $data;
EDIT:soruyu yanlis anlamisim...