我试图理解功能。我创建了一个函数,我想多次调用它。首先,我进行SQL查询,将其保存在数组中并将其转换为秒。接下来的事情是做一个新的SQL查询(这完全可以完成他的工作)。当我尝试将其转换为秒时出错,我收到此错误:
无法重新声明myfunction()(之前在C:\ xampp \ htdocs \ webpagina中声明遇到输入 - kopie \ try.php:103)在C:\ xampp \ htdocs \ webpagina中遇到输入 - kopie \ try.php在线103。
有人可以帮忙吗?
<?php
$servername = "localhost"; //inloggegevens database
$username = "root";
$password = "";
$dbname = "test";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} else {
// check of er nog genoeg tijd over is en vergelijk met ingevoerde tijd
$sql1 = "SELECT tijd FROM gespeeldeTijd"; // get data with sql query
sqlquery($sql1, $conn, "tijd");
if ($stateLoop == "1") {
convertArrayToMHS($myArray);
hsmToSeconds($sumUren, $sumMinuten, $sumSeconden);
print_r($seconden);
$myArray = [];
$stateLoop == "0";
$sql2 = "SELECT tijd FROM toegelatentijd WHERE naam = 'thomas'"; // get data with sql query
sqlquery($sql2, $conn, "tijd");
if ($stateLoop == "1") {
convertArrayToMHS($myArray);
hsmToSeconds($sumUren, $sumMinuten, $sumSeconden);
print_r($seconden);
$myArray = [];
$stateLoop == "0";
}
} else {
}
// check of er nog een tijd loopt
$sql1 = "SELECT stopTijd FROM gespeeldeTijd ORDER BY ID DESC LIMIT 1"; // get data with sql query
sqlquery($sql1, $conn, "stopTijd");
if ($stateLoop == "1") {
/* print_r($myArray); */
// get time now an compare these to the time asked in sql 1, if time is still not reached get time and display, if time is reached show input field
} else {
}
}
function sqlquery($sql, $conn, $naamtabel) {
global $myArray;
global $stateLoop;
$stateLoop = "0";
$result = $conn->query($sql);
if ($result->num_rows > 0) { // do a while loop to fetch all data to an array
// output data of each row
while ($row = $result->fetch_assoc()) {
$myArray[] = $row["$naamtabel"]; //alle data van kolom "tijd" in een array
/* print_r($myArray); */
}
$stateLoop = "1";
} else { // if there are no results
echo "0 results";
}
}
function convertArrayToMHS($myArray) {
global $sumUren;
global $sumMinuten;
global $sumSeconden;
global $array_product;
function myfunction($value) { //function to do to evry part of the array
global $array_product;
$array_product[] = explode(":", $value); // split the time in hours, minutes, seconds
return $array_product; //bevat alle gesplitte waardes
}
array_walk($myArray, "myfunction"); // walk trough evry part of the array en voer er "myfunction" op uit
/* print_r($array_product); */
/* print_r($totalElements); */
$uren = array_column($array_product, '0'); // zet alle waarden in een aparte array met 0 (uren)
$minuten = array_column($array_product, '1'); // zet alle waarden in een aparte array met 0 (uren)
$seconden = array_column($array_product, '2'); // zet alle waarden in een aparte array met 0 (uren)
$sumUren = 0;
$sumMinuten = 0;
$sumSeconden = 0;
foreach ($uren as $uren) { //tel alle uren van de sql database bijeen
$sumUren = $sumUren + $uren;
}
foreach ($minuten as $minuten) { //tel alle minuten van de sql database bijeen
$sumMinuten = $sumMinuten + $minuten;
}
foreach ($seconden as $seconden) { //tel alle seconden van de sql database bijeen
$sumSeconden = $sumSeconden + $seconden;
}
}
function hsmToSeconds($sumUren, $sumMinuten, $sumSeconden) {
global $seconden;
$seconden = ($sumUren * 3600) + ($sumMinuten * 60) + $sumSeconden; //uren/minuten/seconden omzetten naar seconden
}
?>
答案 0 :(得分:0)
您拨打convertArrayToMHS
两次,每次致电myfunction
。
将myFunction放在convertArrayToMHS
之外。