Avatar billede jop... Nybegynder
18. november 2007 - 21:44 Der er 11 kommentarer og
1 løsning

Update af flere rækker i database.

Jeg er ved at lave en billeduploader, til en side som understøtter multiple upload af filer.

Den del af det fungerer sådan set perfekt.

Når jeg har upladet billederne vil jeg jeg påføre dem alle en kommentar, ved at liste alle billederne i en lang række, men en tekstboks til højre for alle billederne. Der har jeg denne kode:
------------------------------------------------------------------

<form action="admin_billeder_comments_form.php" method="post" enctype="multipart/form-data">
<table width="420">
<? include("includes/conn.php");
$result = mysql_query("select * from billeder where kat = '$kat' order by id desc");
$antal_rekker = mysql_num_rows( $result);
$i = 0;
while ($row = mysql_fetch_array($result)) {
?>

  <tr>
    <td width="210"><img src="<? echo $row['billede']; ?>" width="200" /></td>
    <td width="210"><textarea name="<? echo $i; ?>" cols="25" rows="5"></textarea></td>
  </tr>
  <input name="id" type="hidden" value="<? echo $row['id']; ?>" />
  <input name="picture" type="hidden" value="<? echo $i; ?>" />
  <?
  $i++;
  } mysql_close;
  ?>
  <input name="antpict" type="hidden" value="<? echo $antal_rekker; ?>" />
 
</table>
<input type="submit" name="submit" value="Gem" class="but" />
</form>

Når jeg submitter, kalder jeg denne fil:

<?
include("includes/conn.php");
for($i=0;$i<=$antpict;$i++){
mysql_query("update billeder set kommentar='$i' where id = id") or die(mysql_error());
}
?>

Det fungerer jo så ikke, da den bare skriver værdien af $i til databasen, og ikke det textarea hvor kommentaren er beskrevet i.

Det er jo sådan set også logisk nok, menjeg er simpelthen løbet helt tør for idéer til hvordan jeg kan løse problemet.

Håber på lidt hjælp  ;o)

//René
Avatar billede coderdk Praktikant
18. november 2007 - 21:49 #1
Ændr løkken:

while ($row = mysql_fetch_array($result)) {
?>

  <tr>
    <td width="210"><img src="<? echo $row['billede']; ?>" width="200" /></td>
    <td width="210"><textarea name="txtf[<? echo $row['id']; ?>]" cols="25" rows="5"></textarea></td>
  </tr>
  <input name="id[]" type="hidden" value="<? echo $row['id']; ?>" />
  <?
  } mysql_close;
  ?>

Update skal så være:

<?
include("includes/conn.php");
foreach( $_POST['id'] as $id )
mysql_query("update billeder set kommentar='".$_POST['txtf'.$id]."' where id = $id") or die(mysql_error());
}
?>

Burde virke...
Avatar billede jop... Nybegynder
18. november 2007 - 21:56 #2
Der kommer ikke noget i kommentar. Den er bare blank.

Jeg har disse 2 koder nu:

Form
--------------------------------------------------------------------------------
<form action="admin_billeder_comments_form.php" method="post" enctype="multipart/form-data">
<table width="420">
<? include("includes/conn.php");
$result = mysql_query("select * from billeder where kat = '$kat' order by id desc");
while ($row = mysql_fetch_array($result)) {
?>

  <tr>
    <td width="210"><img src="<? echo $row['billede']; ?>" width="200" /></td>
    <td width="210"><textarea name="txtf[<? echo $row['id']; ?>]" cols="25" rows="5"></textarea></td>
  </tr>
  <input name="id[]" type="hidden" value="<? echo $row['id']; ?>" />
  <input name="picture" type="hidden" value="<? echo $i; ?>" />
  <? } mysql_close; ?>
  <input name="antpict" type="hidden" value="<? echo $antal_rekker; ?>" />
 
</table>
<input type="submit" name="submit" value="Gem" class="but" />
</form>

update
------------------------------------------------------------------------------------
<?
include("includes/conn.php");
foreach( $_POST['id'] as $id ) {
mysql_query("update billeder set kommentar='".$_POST['txtf'.$id]."' where id = $id") or die(mysql_error());
}
?>
Avatar billede coderdk Praktikant
18. november 2007 - 22:03 #3
Faktisk prøv lige:

Der kommer ikke noget i kommentar. Den er bare blank.

Jeg har disse 2 koder nu:

Form
--------------------------------------------------------------------------------
<form action="admin_billeder_comments_form.php" method="post" enctype="multipart/form-data">
<table width="420">
<? include("includes/conn.php");
$result = mysql_query("select * from billeder where kat = '$kat' order by id desc");
while ($row = mysql_fetch_array($result)) {
?>
  <tr>
    <td width="210"><img src="<? echo $row['billede']; ?>" width="200" /></td>
    <td width="210"><textarea name="txtf[<? echo $row['id']; ?>]" cols="25" rows="5"></textarea></td>
  </tr>
  <? } mysql_close; ?>
</table>
<input type="submit" name="submit" value="Gem" class="but" />
</form>

update
------------------------------------------------------------------------------------
<?
include("includes/conn.php");
foreach( $_POST['txtf'] as $id => $val ) {
$sql = "update billeder set kommentar='".$val."' where id = $id";
mysql_query($sql) or die(mysql_error());
}
?>

hvis update ikke virke, så prøv lige at sætte en echo $sql; ind før mysql_query...
Avatar billede coderdk Praktikant
18. november 2007 - 22:04 #4
Evt. før noget i update, kan du se hvad $_POST indeholder:

echo "<pre>";var_dump( $_POST );echo "</pre>";
Avatar billede jop... Nybegynder
18. november 2007 - 22:09 #5
array(5) {
  ["txtf"]=>
  array(1) {
    [4]=>
    string(7) "Testing"
  }
  ["id"]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
  ["picture"]=>
  string(0) ""
  ["antpict"]=>
  string(0) ""
  ["submit"]=>
  string(3) "Gem"
}

Giver det nogen mening?
Avatar billede jop... Nybegynder
18. november 2007 - 22:10 #6
Jeg har ryddet lidt op i koden.

Den siger nu:
array(3) {
  ["txtf"]=>
  array(1) {
    [4]=>
    string(7) "Testing"
  }
  ["id"]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
  ["submit"]=>
  string(3) "Gem"
}
Avatar billede coderdk Praktikant
18. november 2007 - 22:15 #7
Havde du brugt min, ville der stå

array(3) {
  ["txtf"]=>
  array(1) {
    [4]=>
    string(7) "Testing"
  }
  ["submit"]=>
  string(3) "Gem"
}

Og updaten burde virke...
Avatar billede coderdk Praktikant
18. november 2007 - 22:15 #8
(I dit eksempel er ID 4 og teksten er "Testing")
Avatar billede jop... Nybegynder
18. november 2007 - 22:19 #9
Posten har også rigtig nok id 4 i databasen. Så jeg fatter den ikke helt.

Men jeg kigger lige lidt på den :o)
Avatar billede jop... Nybegynder
18. november 2007 - 22:25 #10
Det virker nu.. Smider du et svar?  :-)
Avatar billede coderdk Praktikant
18. november 2007 - 22:31 #11
Aight :)
Avatar billede jop... Nybegynder
18. november 2007 - 22:38 #12
Og tak for hjælpen.
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