Försöker att uppdatera alla rader, men lyckas inte. Provat med följande, men bara sista posten uppdateras.
Sökte och hittade med foreach, men det blev fel.
if (isset($_POST['uppd_tidrapport'])){
//$in_timmar = $_POST["timmar"];
//$in_idet = $_POST["postidet"];
$result=mysqli_query($db,"UPDATE tidrapporter_dagar SET timmar='$in_timmar' WHERE ID='$in_idet'");
foreach ( $_REQUEST['postidet'] as $id => $details ) {
$rid = addslashes ($id);
$in_timmar = addslashes ($details($_REQUEST['postidet']));
$sql = "UPDATE `tidrapporter_dagar`
SET `timmar`='$in_timmar'
WHERE `ID`='$rid'";
if ( !$result = mysql_query($sql) ) {
die("Det gick inte spara!<br /><b>ID: $rid</b>");
}
}
echo $_POST["timmar"];
echo $_POST["postidet"];
echo "--Postat!";
}
Lite off-topic kanske, men mysql_-funktionerna kommer inom kort att försvinna från PHP. Dessutom är de förlegade och kan innebära en säkerhetsrisk, särskilt eftersom du här inte har skyddat dig mot SQL injections.
Du bör titta närmare på mysqli_ eller PDO. Personligen föredrar jag PDO.
mysqli_ fungerar lite annorlunda än mysql_, men är fortfarande proceduralt (men går att köra ojektorienterat om man vill) medan PDO enbart är objektorienterat (om jag inte trasslat till något i huvudet). Båda två har stöd för prepared statements vilket eliminerar risken för SQL injections.
Kika på PHP Docs. Det finns jättebra förklaringar och exempel där.
Har funnit att PDO har en fördelen att du kan namnge dina params. Så istället för att lägga dem i ordning och ange korrekt datatyp i MySQLI ("ssd", "Daniel", "Olsson","2016-03-11" så kan du i PDO sätta $params[]=:fname=>"Daniel" osv osv i params.
Sen kan skippa att köra en prepare för varje gång du skall lägga in en tidrapport. Det räcker att loopa bindParam (med nya värden för varje loop) och sen execute.
136 ms totalt · 3 externa anrop · v20260731065814-full.55e59744