Jeg vil gerne vise en checkbox til venstre for hver post, som er "checked" på forhånd. Det skal så være muligt at fravælge nogle af posterne, og ved tryk på SUBMIT knap, smides de valgte poster i MySQL.
alle de selected vil da kom ud i et array kaldet $_POST['selected']..
for at checke hvilke der er sat kan du køre dette:
foreach($_POST['selected'] as $val){ ids .= $val.', '; }
håber du forstår pointen.. det er da ret nemt at lave indsættet.. du kunne med fordel ændre $i i dit data array med id og istedet for din foreach så lave en sort() før og så køre en foreach da det så er nemt at hente data igen!
Det jeg gør i linjen: Hej og mange tak for dit bidrag. ids .= $val.', ';
er blot at komma seperære alle ids der er selected. blot for at vise hvordan du fik det ud.
Jeg kender ikke lige din situation, men vil da regne med at du skal bruge det data du har i $my_data i din mysql insert forespørgsel. derfor vil jeg forslå at du enten skriver $i i value på checkboksen eller skifter $i ud på arrayet med id. så du kan gøre sådan:
foreach($_POST['selected'] as $val){ if (strlen($val)>0){ $sql = "INSERT INTO `foo` SET `navn` = '".mysql_real_escape_string($my_data[$val]['navn'])."', `emailadresse` = '".mysql_real_escape_string($my_data[$val]['emailadresse'])."' } }
det jeg prøver at sige er at det du har i value på din checkbox skal være primær id'et i dit $my_data array. så det er nemt at hente ud ligesom $my_data[$val].
foreach($_POST['selected'] as $val){ if (strlen($val)>0){ $sql = "INSERT INTO `nytabel` SET `navn` = '".mysql_real_escape_string($my_data[$val]['navn'])."', `emailadresse` = '".mysql_real_escape_string($my_data[$val]['emailadresse'])."'"; database($sql); }}}
I min tabel har jeg 3 felter, nemlig [id], [navn], [emailadresse]. Jeg får ingen fejl, men der bliver heller ikke smidt navn og emailadresse i tabellen. Hvis jeg har selected 6 poster, så bliver der godt nok indsat 6 poster, men de er tomme (bortset fra at id sættes, da jeg anvender auto_increment).
hmm du har igen ikke lavet så du kan bruge $my_data[$val]['navn'] du skal sætte din value i checkboksen til primary value. sådan her:
if(isset($_GET['update']) && $_GET['update']) {
foreach($_POST['selected'] as $val){ if (strlen($val)>0){ $sql = "INSERT INTO `nytabel` SET `navn` = '".mysql_real_escape_string($my_data[$val]['navn'])."', `emailadresse` = '".mysql_real_escape_string($my_data[$val]['emailadresse'])."'"; database($sql); }}}
Jeg har været lidt utålmodig og har fået svaret i et ny spørgsmål her på Eksperten. Men jeg vil gerne give pointene for dine bidrag. Så send venligst et svar.
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.