Avatar billede michaeltryl Seniormester
05. november 2006 - 21:14 Der er 8 kommentarer og
1 løsning

hvilke brugere er valgt?

jeg har dette script der udskriver en bruger liste og ved hvert navn er der en check boks. under listen er der så en selct boks hvor de forskellige bruger grupper kan vælges.(det heler er omsluttet af FORM)

$brugere = mysql_query("SELECT * FROM brugere WHERE gruppe='$titel'") or die(mysql_error());
while ( $b = mysql_fetch_array($brugere))

{
$brugerid = $b[id];
$fornavn = $b[fornavn];
$efternavn = $b[efternavn];

echo"<input type='checkbox' value='$brugerid' name='$brugerid'>$fornavn $efternavn<br>";
}
echo"<br>";
}
echo"<select name='grupper'>";
$ngrupper = mysql_query("SELECT * FROM admin_grupper ORDER BY gruppeid DESC") or die(mysql_error());
while ( $c = mysql_fetch_array($ngrupper))
{
$ntitel = $c[titel];

echo"<option value='$ntitel'>$ntitel</option>";
}
echo"</select>";

denne form bliver så sendt til ret-grupper.php hvor behandlingen af formen skal ske.

nu er mit spørgsmål hvordan skal den se ud. jeg har følgende

$bruger =//alle brugere der er checked
$gruppe =//her hentes gruppen fra select boksen

$brugere = mysql_query("SELECT * FROM brugere WHERE gruppe='$titel'") or die(mysql_error());
while ( $b = mysql_fetch_array($brugere))
{
mysql_query("UPDATE brugere SET gruppe='$gruppe' WHERE id='$brugerid'") or die(mysql_error());

}
header("Location: grupper.php");
Avatar billede coderdk Praktikant
05. november 2006 - 21:42 #1
Erstat:

echo"<input type='checkbox' value='$brugerid' name='$brugerid'>$fornavn $efternavn<br>";

med:

echo"<input type='checkbox' value='$brugerid' name='brugerid[]'>$fornavn $efternavn<br>";

Så vil $_POST['brugerid'] være et array af alle de valgte brugere, kan evt. kringles sådan:

if ( !empty( $_POST['brugerid'] ) && count( $_POST['brugerid'] ) > 0 )
{
  $bruger_ids = implode( ",", $_POST['brugerid'] );
  $sql = "UPDATE brugere SET gruppe='" . $_POST['grupper'] . "' WHERE id IN (" . $bruger_ids . ")";
  mysql_query( $sql ) or die( mysql_error() );
}
Avatar billede michaeltryl Seniormester
05. november 2006 - 23:04 #2
jeg får denne fejl
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

og koden i filen ser sådan ud
<?
include"../../../medlems-sider/connect.php";
//Al din kode

if ( !empty( $_POST['brugerid'] ) && count( $_POST['brugerid'] ) > 0 )
{
  $bruger_ids = implode( ",", $_POST['brugerid'] );
  $sql = "UPDATE brugere SET gruppe='" . $_POST['grupper'] . "' WHERE id IN (" . $bruger_ids . ")";
  mysql_query( $sql ) or die( mysql_error() );
}
header("Location: grupper.php");

?>
Avatar billede coderdk Praktikant
05. november 2006 - 23:36 #3
Prøv lige før mysql_query at lave en echo $sql;
Avatar billede michaeltryl Seniormester
05. november 2006 - 23:49 #4
med
  $bruger_ids = implode( ",", $_POST['brugerid'] );
  $sql = "UPDATE brugere SET gruppe='" . $_POST['grupper'] . "' WHERE id IN (" . $bruger_ids . ")";
  echo "$sql<br>";
  mysql_query( $sql ) or die( mysql_error() );

får jeg
UPDATE brugere SET gruppe='admin' WHERE id IN (,)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
Avatar billede coderdk Praktikant
06. november 2006 - 00:11 #5
Øøøh. Prøv lige at lave en view source på siden hvor checkboxene er, er alle values="" ? altså tomme? For den kode jeg har lavet, burde virke ;)
Avatar billede michaeltryl Seniormester
06. november 2006 - 00:27 #6
hvad mener du med at jeg skal lave en view source på siden, er det koden fra siden du vil se er den her
og et eksempel af siden er her
http://klub.magiske-michael.dk/grupper.php

<form name='spg' method='POST' ACTION='ret-grupper.php'>
<?
$grupper = mysql_query("SELECT * FROM admin_grupper ORDER BY gruppeid DESC") or die(mysql_error());
while ( $a = mysql_fetch_array($grupper))
{
$grID = $a[gruppeid];
$titel = $a[titel];
$beskriv = $a[beskrivelse];

echo"<b>$titel</b><br><i><u>$beskriv</u></i><br>";
$brugere = mysql_query("SELECT * FROM brugere WHERE gruppe='$titel'") or die(mysql_error());
while ( $b = mysql_fetch_array($brugere))

{
$brugerid = $b[id];
$fornavn = $b[fornavn];
$efternavn = $b[efternavn];

echo"<input type='checkbox' value='$brugerid' name='brugerid[]'>$fornavn $efternavn<br>";
}
echo"<br>";
}
echo"<select name='grupper'>";
$ngrupper = mysql_query("SELECT * FROM admin_grupper ORDER BY gruppeid DESC") or die(mysql_error());
while ( $c = mysql_fetch_array($ngrupper))
{
$ntitel = $c[titel];

echo"<option value='$ntitel'>$ntitel</option>";
}
echo"</select>";
?>
<br><br>
<input class="inputknap" type="submit" value="Opdater">
</form>
Avatar billede coderdk Praktikant
06. november 2006 - 02:45 #7
Nej, kig på HTML-kildekoden for den færdiggenererede side hvor checkboxene er. Mit gæt er at der står: value='' eller lignende. Tomme...
Avatar billede michaeltryl Seniormester
06. november 2006 - 11:11 #8
ja du havde ret. Det var variablen id der ikke blev hentet ud af databsen. nu virker det og du har fået point og tak for hjælpen
Avatar billede coderdk Praktikant
06. november 2006 - 11:47 #9
Det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester