$sql = "UPDATE moduler SET aktiv = 1, visning ='$idss' WHERE modulid IN ($ids)"; mysql_query($sql) or die(mysql_error());
udskriver jeg $idss med kommer den fint med alle tal som bliver skrivet i tekst felterne, men opdatere kun med det første tal der skrives. så jeg tror visning ='$idss' skal se lidt anderledes ud
feltet der skal opdateres er af typen DECIMAL hvis jeg udfylder tekst felterne med henholdsvis 5, 4, 3, 2 og 1 startende fra toppen og ned bliver alle "visning" felterne i databasen opdateret med tallet 5 så der skal køres update de antal gange der er felter i array. (i dette eksempel 5 gange) UPDATE moduler SET aktiv = 1, visning ='5' WHERE UPDATE moduler SET aktiv = 1, visning ='4' WHERE osv..... jeg kan bare ikke regne ud hvilken variabel jeg skal indsætte i update
$sql = "UPDATE moduler SET aktiv = 1, visning ='$nids' WHERE modulid IN ($ids)"; mysql_query($sql) or die(mysql_error()); echo"$nids";
og det echo udskriver 5,4,3,2,1, men samme resultat som før i databasen måske det er fordi det er DECIMAL som felt type, men det skal det blive ved at være da det er dette felt der senere skal sorteres efter
... foreach ( $_POST['visning'] as $visning ) { $sql = "UPDATE moduler SET aktiv = 1, visning ='".intval( $visning )."' WHERE modulid IN ($ids)"; mysql_query($sql) or die(mysql_error()); } ...
test-send.php ser i dette eksempel sådan ud ----------------- if ( is_array($_POST['modul']) && count( $_POST['modul'] ) > 0) { $sql = "UPDATE moduler SET aktiv = 0"; mysql_query( $sql ) or die(mysql_error()); $res = array(); foreach ( $_POST['modul'] as $modul ) { $res[] = intval( $modul ); } $ids = implode( ",", $res );
$nres = array(); foreach ( $_POST['visning'] as $visning ) { $nres[] = intval( $visning ); $sql = "UPDATE moduler SET aktiv = 1, visning ='".intval( $visning )."' WHERE modulid IN ($ids)"; mysql_query($sql) or die(mysql_error()); } $nids = implode( ",", $nres );
$_SESSION['nej'] = 0;
header("Location: test.php"); exit; ------------------------ hvor er det du vil have en relationstabel imellem det er jo data i tabellen moduler der skal sorteres efter feltet visning?
Jeg har svært ved at sætte mig ind i hvad du helt præcist vil, så hvis jeg skal kunne hjælpe yderligere, må jeg bede dig om at uddbybe hvad det er du helt præcist prøver at strikke sammen, hvilke tabeler du gemmer information i, og hvordan information relatere til hinnanden.
foreach ($_POST['modul'] as $modulvalg) { $sql = "UPDATE moduler SET aktiv = 1, visning ='1' WHERE modulid = $modulvalg"; mysql_query($sql) or die(mysql_error()); }
opdateringen at aktiv virker fint. det er opdateringen af feltet "visning" i tabellen som er problemt. værdien disse felter skal opdateres med skal hentes fra echo"<td><input type='text' name='visning[]' value='$visning' size='3' maxlength='255'></td>";
måske har jeg indsat update koden forkert, men det virker ikke. den ser lige nu sådan ud
else if ( is_array($_POST['modul']) && count( $_POST['modul'] ) > 0) { $sql = "UPDATE moduler SET aktiv = 0"; mysql_query( $sql ) or die(mysql_error()); $res = array(); foreach ( $_POST['modul'] as $modul ) { $res[] = intval( $modul ); } $ids = implode( ",", $res );
$nres = array(); foreach ($_POST['modul'] as $modulvalg => $modulvisning) { $sql = "UPDATE moduler SET visning ='$modulvisning' WHERE modulid = $modulvalg"; mysql_query($sql) or die(mysql_error()); }
det som sker er. checkbokse bliver opdateret til 0 (ikke checked) visning bliver opdateret til Forum = 4 Vennebog = 1 Nyheder = 2 Event = 3 Konkurrence = 4
indlægget 16/01-2007 13:51:16 nederst i koden der har jeg indsat foreach ($_POST['visning'] as $modulvalg => $modulvisning) { $sql = "UPDATE moduler SET visning ='$modulvisning' WHERE modulid = $modulvalg"; mysql_query($sql) or die(mysql_error()); }
du kan teste det på den side jeg postede i mit forrige indlæg. prøv at udfylde tekst feltet ud for f.eks Nyheder med tallet 4. trykker du så på knappen opdater bliver det rettet til 2, men det skal forblive med at være 4
UPDATE moduler SET visning ='5' WHERE modulid = 0 UPDATE moduler SET visning ='4' WHERE modulid = 1 UPDATE moduler SET visning ='3' WHERE modulid = 2 UPDATE moduler SET visning ='2' WHERE modulid = 3 UPDATE moduler SET visning ='1' WHERE modulid = 4
mens print_r($_POST['vising']); ikke giver noget resultat
ja den udskriver intet på siden. jeg har indsat den lige under session start på siden hvor update scriptet er, men den udskriver ingenting. Jeg kender godt den funktion den burde udskriv hvad der er i det array visning og undre mig over hvorfor der ikke kommer noget
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.