• 06-10-2014, 17:26:25
    #1
    Merhaba arkadaşlar dün akşamdan beri uğraşıyorum ama bi yerden sonra hep hata aldım. Aşağıdaki kodlarda csv'yi istediğim gibi parçaladım ama bi türlü mysql'e aktaramıyorum.

    	<html>
    <head>
    <title>Kartlar</title>
    </head>
    <body>
    <?php
    function mycsv($csv){
    			$satirlar=array();
    			foreach (file($csv) as $satir){
    				$satirlar[]=$satir;
    			}
    			return $satirlar;
    }
    $dosya=mycsv('test.csv');
    $dosya=str_replace('"3,4,5 trimethocarb"','3-4-5 trimethocarb',$dosya);
    $dosya=str_replace(",False,,False","",$dosya);
    $dosya=str_replace(",","','",$dosya);
    
    ?>
    <form action="kaydet.php" method="post" >
    <?php @$say=count($dosya)-1;
    for ($s=2; $s<=$say; $s++){
    ?>
    <input type="text" style="width:400px;font-family:arial;font-size:10" name="veri<?php echo $s;?>" value="'2010-08-07','<?php echo $dosya[$s];?>'"><br/>
    <?php
    }
    ?><input type="submit" value="Gönder">
    
    </body>
    </html>
    İşlem sonucunda her bir satırda aşağıki gibi oluyor.tek tırnak içine alınmış ve virgül ile her bir sütun ayrılmış oluyor.

    '2010-08-07','3-4-5 trimethocarb','4.675','118463','49.5503','49.5503','194.0 -> 122.0'
    Kaydet.php dosyamda aşapğıdaki şekilde bir türlü kayıt yaptırmayı başaramadım.
    <?php
    //for ($b=2; $b<=200; $b++) {
    			$ver		=$_POST["veri4"];
    			echo $ver;
    			$tarih	=date("d.m.Y");   
    			$vt			=@new mysqli("localhost","root","","kart");
     if($vt->connect_errno) die ($vt->connect_error); //bağlantı kontrolü yaptık.
     $vt->set_charset("utf8"); //karakter setini ayarladık.
    if($vtb=$vt->prepare ("INSERT INTO maddeler values (NULL,?,?,?,?,?,?,?)")){ //insert into ile veri ekleme yapacağız dışardan gelen değişkenimiz kadar ? işareti ekliyoruz.
    					
    
    
    		$vtb->bind_param('sssssss',$ver); //sql'e eklenecekleri girdik.
    		$vtb->execute(); //sorguyu bu komut ile çalıştırdık.
    		}
    		
     
    ?>
    Aldığım hata

    Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in C:\wamp\www\kart\kaydet.php on line 13
  • 06-10-2014, 17:36:34
    #2
    Sananeyli adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar dün akşamdan beri uğraşıyorum ama bi yerden sonra hep hata aldım. Aşağıdaki kodlarda csv'yi istediğim gibi parçaladım ama bi türlü mysql'e aktaramıyorum.

    <html>
    <head>
    <title>Kartlar</title>
    </head>
    <body>
    <?php
    function mycsv($csv){
    $satirlar=array();
    foreach (file($csv) as $satir){
    $satirlar[]=$satir;
    }
    return $satirlar;
    }
    $dosya=mycsv('test.csv');
    $dosya=str_replace('"3,4,5 trimethocarb"','3-4-5 trimethocarb',$dosya);
    $dosya=str_replace(",False,,False","",$dosya);
    $dosya=str_replace(",","','",$dosya);
    
    ?>
    <form action="kaydet.php" method="post" >
    <?php @$say=count($dosya)-1;
    for ($s=2; $s<=$say; $s++){
    ?>
    <input type="text" style="width:400px;font-family:arial;font-size:10" name="veri<?php echo $s;?>" value="'2010-08-07','<?php echo $dosya[$s];?>'"><br/>
    <?php
    }
    ?><input type="submit" value="Gönder">
    
    </body>
    </html>
    İşlem sonucunda her bir satırda aşağıki gibi oluyor.tek tırnak içine alınmış ve virgül ile her bir sütun ayrılmış oluyor.

    '2010-08-07','3-4-5 trimethocarb','4.675','118463','49.5503','49.5503','194.0 -> 122.0'
    Kaydet.php dosyamda aşapğıdaki şekilde bir türlü kayıt yaptırmayı başaramadım.
    <?php
    //for ($b=2; $b<=200; $b++) {
    $ver=$_POST["veri4"];
    echo $ver;
    $tarih=date("d.m.Y");   
    $vt=@new mysqli("localhost","root","","kart");
     if($vt->connect_errno) die ($vt->connect_error); //bağlantı kontrolü yaptık.
     $vt->set_charset("utf8"); //karakter setini ayarladık.
    if($vtb=$vt->prepare ("INSERT INTO maddeler values(NULL,?,?,?,?,?,?,?)")){ //insert into ile veri ekleme yapacağız dışardan gelen değişkenimiz kadar ? işareti ekliyoruz.
    
    
    
    $vtb->bind_param('sssssss',$ver); //sql'e eklenecekleri girdik.
    $vtb->execute(); //sorguyu bu komut ile çalıştırdık.
    }
    
     
    ?>
    Aldığım hata

    Warning: mysqli_stmt::bind_param(): Number of elements in type definition string doesn't match number of bind variables in C:\wamp\www\kart\kaydet.php on line 13
    Selamlar,

    "Sssss" 8 adet olacak..

    $vtb->bind_param('ssssssss',$ver);

    GT-I9200 cihazımdan Tapatalk kullanılarak gönderildi
  • 06-10-2014, 17:40:13
    #3
    mtl adlı üyeden alıntı: mesajı görüntüle
    Selamlar,

    "Sssss" 8 adet olacak..

    $vtb->bind_param('ssssssss',$ver);

    GT-I9200 cihazımdan Tapatalk kullanılarak gönderildi
    Teşekkürler cevabınız için hocam denedim ama malesef olmadı