Gå til innhold

endre status på flere linjer samtidig.


Anbefalte innlegg

Hei

 

Jeg har hentet info fra MySql og presentert det i en tabel i filen endring.php. jeg har laget en checkbox bak hvert navn. Jeg ønsker å kunne endre status for de jeg haker av.

 

Hvordan kan jeg få det til?

 

Håper noen kan hjelpe meg ... :)

 

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Endre status</title>
</head>
<body>

<?php
IF($_POST['endre1']>0)
{

$check = $_POST['checkbox'];

	IF($check==TRUE)
	{
	   $bruk_id = $_POST['checkbox'];

	   $query = "SET status=1 WHERE bruk_id='$bruk_id'";
	   $result = mysql_query($query, $db) or die  or die('error: ' . mysql_error());
	 }
}
IF($_POST['endre2']>0)
{

$check = $_POST['checkbox'];

	IF($check==TRUE)
	{
	   $bruk_id = $_POST['checkbox'];

	   $query = "SET status=2 WHERE bruk_id='$bruk_id'";
	   $result = mysql_query($query, $db) or die  or die('error: ' . mysql_error());
	 }
}
IF($_POST['slett']>0)
{

$check = $_POST['checkbox'];

	IF($check==TRUE)
	{
	   $bruk_id = $_POST['checkbox'];

	   $query = "DELETE from bruker WHERE bruk_id='$bruk_id'";
	   $result = mysql_query($query, $db) or die  or die('error: ' . mysql_error());
	 }
}

ELSE
{

  ECHO'
 <form method="post" action="">
 <table border="1" align=center>
   <tr>
	   <td>Navn:</td>
	   <td>Tlf:</td>
	   <td>Mail:</td>
	   <td>Sist aktiv</td>
	   <td>Endre status</td>
   </tr>
 ';

  REQUIRE($_SERVER["DOCUMENT_ROOT"]."/tilkobling.php");
  $query = "SELECT * FROM brukere where status='0' ORDER BY date ";
  $result = mysql_query($query, $db);

  FOR ($i =0; $i < mysql_num_rows($result); $i++)
  {
$bruk_id = mysql_result($result, $i, "bruk_id")
$navn = mysql_result($result, $i, "navn");
$tlf = mysql_result($result, $i, "tlf");
$mail = mysql_result($result, $i, "mail");
$saktiv = mysql_result($result, $i, "sist_aktiv");

ECHO '
   <tr>
	  <td><a href="info.php?bruker='.$bruk_id.'">'.$navn.'</a></td>
	  <td>'.$tlf.'</td>
	  <td>'.$mail.'</td>
	  <td>'.$saktiv.'</td>
	  <td><input name="checkbox" type="checkbox" values="'.$bruk_id.'"></td>
   </tr>';
  }
  ECHO'
 <tr>
 <td colspan="5"><input name="endre1" type="submit" value="Endre status til 1"></td>
 </tr>
 tr>
 <td colspan="5"><input name="endre2" type="submit" value="Endre status til 2"></td>
 </tr>
 tr>
 <td colspan="5"><input name="slett" type="submit" value="Slett"></td>
 </tr>
 </table>
 </form>
 ';
}
?>
</body>

Lenke til kommentar
Videoannonse
Annonse

Hvis du har name="checkbox[]" på alle avkryssningsboksene, så vil $_POST['checkbox'] bli et array, med alle value-ene til de som er krysset av som verdier. Dermed kan du loope gjennom den, feks med

if (!empty($_POST['checkbox']) {
foreach ($_POST['checkbox'] as $id) {
	$id = mysql_real_escape_string($id);
	mysql_query("DELETE FROM bruker WHERE bruk_id='$id'");
}
}

Lenke til kommentar
Gjest Slettet+142
if (!empty($_POST['checkbox']) {
$ids = array_walk($_POST["checkbox"], "sjekkTall");
if( $ids ) {
	$ids = implode(", ", mysql_real_escape_string($_POST["checkbox"]));
	mysql_query("DELETE FROM bruker WHERE bruk_id IN({$ids})");
}
}
function sjekkTall( &$val, $key ){
 if(!is_numeric($val)) return false;
 $val = "'" . mysql_real_escape_string($val) . "'";
 return true;
}

Den skal funke tror jeg..

Lenke til kommentar

IN er noe man bruker sammen med database. I dette tilfelle vil det være for å unngå løkken i kodesnutten til -morten.

 

$checkbox = $_POST['checkbox'];
if ( is_array( $checkbox ) AND count( $checkbox ) ) 
{
foreach( $checkbox as $k => $v )
{
	$id[ intval($k) ] = intval($v);
}
}

if( count( $id ) )
{
 $query = "DELETE from bruker WHERE bruk_id IN (" . implode(',', $id ) . ")";
$result = mysql_query($query, $db) or die  or die('error: ' . mysql_error());
}

 

Og funksjonsnavn i PHP skrives i lowercase.

 

 

EDIT: Så var det dette med å trykke preview.

Endret av M4rTiN
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...