26. juni 2003 - 00:04Der er
7 kommentarer og 2 løsninger
Foreach() problem
Hjælp søges til flg. script.
Der hentes id_create, som senere skal være reference til at updatere stregen. Id_bruger, som sorterer hvilke data som skal hentes, og sidst id_ovl, som bruges til at hente data fra en anden tabel.
Der skal gemmes en ny værdi ($sortering), som indsættes i selectboxen og har en værdi som er antallet af counts i de rækker som hentes i tabellen.
Min tabel ser således ud:
CREATE TABLE create_db ( id_create tinyint(4) NOT NULL auto_increment, id_bruger tinyint(4) NOT NULL default '0', id_ovl tinyint(4) NOT NULL default '0', sortering tinyint(4) NOT NULL default '0', PRIMARY KEY (id_create) ) TYPE=MyISAM COMMENT='Træningsprogram DB til Øvl coach.dk';
Og scriptet ser således ud:
<form action="<? echo $php_self; ?>" method="GET"> <? include ("sql.php");
// find alle øvelser hos en bruger... $find = "SELECT * FROM create_db where id_bruger='1'" ;
$kategori = mysql_query("SELECT * FROM ovelse_db WHERE id_ovl ='$antal[2]'") or die(mysql_error()); $navn2 = mysql_num_rows($kategori); while ($r = mysql_fetch_array($kategori)) {?> <?print $r[ovl_navn];?> - <?=$r[kat];if ($r[subkat]){?>/<?=$r[subkat];}?> - <a href="index.php?slet=<?=$r[id_ovl];}?>&list=slet.php">Slet</A> <select name="sortering"> <option value="" SELECTED><?if ($antal[3]>0){echo $antal[3];} else {}?></option> <?for($n=1; $n < $count+1; $n++) {?> <option><?=$n;?></option><?}?> </select><br> <? } } ?> <br> <input type="submit" name="send" Value="Send"> </form> <? if($_GET['send'] == "Send") { foreach($_GET['count'] as $key => $value) { $qry_update = "UPDATE create_db SET sortering='$value[3]' WHERE id_create='$key'"; mysql_query($qry_update) or die(mysql_error()); echo " opdateret for nr. " . $key; } } ?>
Selve udtrækket fra databasen fungerer fint, men jeg kan ikke få data updated, så jeg er i tvivl hvad f.x. navnet på selectboxen skal være, foreach($_GET[hvad_der_skal_stå_her],og denne her: UPDATE create_db SET sortering='$value[3]' WHERE id_create='$key'";
Problemet er at du aldrig kommer til at se den anden $_GET[sortering] variable. Du kunne måske prøve noget ligende: ... <select name="<?=$r[kat]?>"> <option value="<?=$n?>"><?=$n?></option> ... Der efter kan du hente værdien ved $_GET[($r[kat])];
Hvis jeg er helt galt på den her så må du undskylde :) Og hvis det er totalt sort det jeg skriver kan jeg godt prøve at lave et lille php script.
MGB: jeg brugte din selectname, men satte den til min id_create, som den skal opdatere efter. Alle gange hvor jeg har sat noget ind efter $_GET er der gået ged i det. Nu har jeg fjernet det, så det kun er $_GET som står der. Det gør at den også sender sen=send afsted, hvilket er underordnet for mit vedkommende.
Sådan ser det ud nu:
$find = "SELECT * FROM create_db where id_bruger='13' order by sortering asc" ;
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.