Здравствуйте, возникла следующая проблема, есть некая функция (код которой представлен ниже) в функции есть переменная $count1. Как после выполнения функции сохранить последние значение переменной для дальнейшей работы с ним? Если можно конкретный пример кода))) PHP: function writeCSV(){ global $batchNumber, $pdo,$count1; $count1=0; $handle = fopen("33-09-17.brp", "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $count1++; if($count1>1){ $sql='UPDATE '.$batchNumber.' SET iol='.$data[3].' , mtf='.$data[5].' WHERE id='.$data[0].' '; $pdo->exec($sql); } } fclose($handle); return $count1; }
Я php юзаю пару недель) т.е function writeCSV($batchNumber, $pdo, $count1 ) так передать в виде параметров я правильно понимаю? У меня через return почему то не получилось) если можно напишите как реализовать через return в моём коде) если не сложно конечно)
Переделал все функции в соответствии с т советом) убрал global и вместо этого стал передавать переменные в качестве параметров, функции перестали работать) вот код всего скрипта) скрипт запускается по нажатию кнопки формы) если не сложно подскажите где ошибка) PHP: //ПОДКЛЮЧЕНИЕ К СЕРВЕРУ И БАЗЕ ДАННЫХ try { $pdo = new PDO('mysql:host=localhost;dbname=test', 'admin', 'admin'); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->exec('SET NAMES "utf8"'); } catch (PDOException $e) { $output = 'Неудалось подключиться к базе данных.'. $e->getMessage(); include 'output.html.php'; exit(); } $output = 'Соединение с базой данных установлено.'; include 'output.html.php'; $batchNumber=$_REQUEST['batchnumber']; $Made=$_REQUEST['made']; //Создается новая таблица function createNewTable($batchNumber,$pdo){ $sql='CREATE TABLE '.$batchNumber.'(id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, iol DOUBLE, mtf DOUBLE, rejected1 TEXT, rejected2 TEXT, rejected3 TEXT, rejected4 TEXT )DEFAULT CHARACTER SET utf8 ENGINE=InnoDB'; $pdo->exec($sql); } //Таблица заполняется нулями function writeZero($batchNumber,$Made,$pdo){ while($Made>$count){ $count++; $sql='INSERT INTO '.$batchNumber.'(id , iol , mtf , rejected1 , rejected2 , rejected3 , rejected4) VALUES( "0" , "0" , "0" , "0" , "0" , "0" , "0" )'; $pdo->exec($sql); } } //Работа с CSV файлом и изменение значений строк таблицы на значения взятые из CSV файла function writeCSV($batchNumber,$pdo){ $count1=0; $handle = fopen("33-09-17.brp", "r"); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $count1++; if($count1>1){ $sql='UPDATE '.$batchNumber.' SET iol='.$data[3].' , mtf='.$data[5].' WHERE id='.$data[0].' '; $pdo->exec($sql); } } fclose($handle); return $count1; } createNewTable(); writeZero(); writeCSV(); $result = writeCSV($batchNumber, $pdo); echo $result;