Avatar billede tlunde Nybegynder
02. januar 2009 - 19:11 Der er 21 kommentarer

Hive elementer ud af array

Hej,
Jeg har et array der ser sådan her ud:
Array
(
    [beskrivelse_858] => test1
    [beskrivelse_859] => test2
    [beskrivelse_860] => test3
    [beskrivelse_861] => test4
    [beskrivelse_862] =>
    [sletbillede_862] => ja
    [beskrivelse_863] =>
    [sletbillede_863] => ja
    [beskrivelse_864] =>
    [beskrivelse_865] =>
    [beskrivelse_866] =>
    [beskrivelse_867] =>
    [beskrivelse_868] =>
    [beskrivelse_869] =>
    [beskrivelse_870] =>
    [albumcover] => 870
    [beskrivelse_871] =>
    [beskrivelse_872] =>
    [beskrivelse_873] =>
    [beskrivelse_874] =>
    [beskrivelse_875] =>
    [sletbillede_875] => ja
    [beskrivelse_876] =>
    [sletbillede_876] => ja
    [beskrivelse_877] =>
    [beskrivelse_878] =>
)

Hvordan hiver man eks. alle de elementer ud med "beskrivelse", så jeg kan arbejde med dem alene?
Avatar billede showsource Seniormester
02. januar 2009 - 19:27 #1
Jeg vil gerne vide hvordan du får array'et ?
Avatar billede showsource Seniormester
02. januar 2009 - 19:28 #2
Men ellers er det vel noget med at bruge array_keys() til at få et nyt array, og så løbe det igennem for at hente alle med "beskrivelse" i starten.
Avatar billede tlunde Nybegynder
02. januar 2009 - 19:32 #3
Array'et et lavet ud fra en række billeder, som indeholder dette data.
Det jeg skal have gjort er, at jeg skal have gemt dette data til hvert af mine billeder i en SQL UPDATE. Og det id der står i key'en er id'et på det billede jeg arbejder med.

Men først skal jeg vel have hevet alle dem med "beskrivelse" ud af dette array, så jeg har det arbejde med først, så jeg ender med noget ala:

Array
(
    [beskrivelse_858] => test1
    [beskrivelse_859] => test2
    [beskrivelse_860] => test3
    [beskrivelse_861] => test4
)

Da dette er de eneste poster i array'et der indeholder noget tekst. Og dette skal jeg så have gennem noget SQL, så jeg kan få opdateret mine billeder på de respektive id's.

Og så bagefter skal jeg have gjort det samme med "albumcover" og "sletbillede".

Forstår du min problematik?
Avatar billede showsource Seniormester
02. januar 2009 - 19:37 #4
Næhh, ikke rigtigt.
Det jeg tænker på, er hvordan du får arrayet  til at starte med?
For det vil jo være nemmere at hente dem her.
Avatar billede tlunde Nybegynder
02. januar 2009 - 19:40 #5
Okay, se her:
http://marieogthomas.dk/admin.php?action=editpictures&album_id=22

Dette er siden som jeg har lavet til at redigere i mine billeder, og det hele er omsluttet af et <form> tag, og når jeg submitter i bunden, så er det bare min $_POST jeg printer ud, og den jeg har postet her...

Skal så bare finde ud af hvordan jeg arbejder videre med dette array, så jeg kan få gemt data i databasen...
Avatar billede showsource Seniormester
02. januar 2009 - 19:50 #6
ahh, du henter fra db, og vol gerne opdatere rows ud fra id ?

Så kan du bruge [] i feltnavn, for på den måde at opdatere for hvert row.

name="beskrivelse[<?php echo $id_fra_db; ?>]"
name="beskrivelse[<?php echo $id_fra_db; ?>]"


foreach($_POST["beskrivelse"] as $key => $value) {

echo"UPDATE tabel SET beskrivelse = '".$value."' WHERE id = ".intval($key);
echo"<br>";

}
Avatar billede tlunde Nybegynder
02. januar 2009 - 20:02 #7
Det vil sige at jeg bare skal bruge:

foreach($_POST["beskrivelse"] as $key => $value) {
}

som du har skrevet, men når du skriver $_POST["beskrivelse"], så får jeg vel ikke det rigtige ud, gør jeg? For jeg har jo eks. [beskrivelse_858] som keys  min array?
Avatar billede showsource Seniormester
02. januar 2009 - 20:06 #8
Nej, ved at bruge [] til feltnavn, får du et array.
"key" vil så være id fra db, som vist i ex.

D.v.s. du skal IKKE bruge navnet "beskrivelse_878" men beskrivelse[878]
Avatar billede tlunde Nybegynder
02. januar 2009 - 20:09 #9
Lige nu har jeg eks. mit textarea til at være sådan her i min kode:
<textarea name='beskrivelse_".$row['img_id']."' style='width:400px;height:150px;'>$beskrivelse</textarea>

Vil du så mene at jeg i stedet for skal skrive:
<textarea name='beskrivelse[<?php echo $row['img_id']; ?>]' style='width:400px;height:150px;'>$beskrivelse</textarea>

??
Avatar billede showsource Seniormester
02. januar 2009 - 20:11 #10
Yes.


<form method="post">
<?php

for ($i = 1; $i < 5; $i++) {

echo "<input type='text' name='beskrivelse[".$i."]'><br>";

}


?>

<input type="submit">

</form>

<?php

if(isset($_POST["beskrivelse"])) {

    foreach($_POST["beskrivelse"] as $key => $value) {
    echo"UPDATE tabel SET beskrivelse = '".$value."' WHERE id = ".intval($key);
    echo"<br>";
    }

}

?>
Avatar billede tlunde Nybegynder
02. januar 2009 - 20:23 #11
Prøv se igen:
http://marieogthomas.dk/admin.php?action=editpictures_sql&album_id=22

Ser det rigtigt ud?
Og så skal det vel bare laves for "sletbillede" og "albumcover" også?
Avatar billede showsource Seniormester
02. januar 2009 - 20:24 #12
ehh, der er ikke rigtig noget på dit link ?
Avatar billede showsource Seniormester
02. januar 2009 - 20:25 #13
Og for at slette, ville jeg nok lave en checkbox og en submitkanp mere med et "sletnavn"
Avatar billede tlunde Nybegynder
02. januar 2009 - 20:28 #14
Sorry, prøv at submitte denne side:
http://marieogthomas.dk/admin.php?action=editpictures&album_id=22 i stedet for..Så kan du se hvad der kommer ud af det :-)

Forstår ikke lige hvad du mener med det sidste, det med checkbox og slet? Mener du at man skal slette direkte på den side med listen over billeder i stedet for at gøre det ved submit af siden?
Avatar billede showsource Seniormester
02. januar 2009 - 20:34 #15
Det ser jo fint nok ud.
Din slet checkbox skal jo så også ha' et [] navn

<input type='checkbox' name='sletbillede[]' value='<?php echo $row['img_id']; ?>'

Jeg ville så lave en submit knap mere

<input type="submit" value="Slet markeret" name="delete">

og så ved post checke på "name" af submit knap, og ud fra det udføre query
Avatar billede tlunde Nybegynder
02. januar 2009 - 20:36 #16
Det eneste jeg har lavet det på indtil videre er textarea, bare for at se om det virker, og efter dit hoved, ser det så rigtigt ud?

Og kan jeg så ikke bare gøre det på samme måde med radiobutton og checkbox? Og så bare skifte min SQL UPDATE ud med en SQL DELETE?

For forstår ikke helt hvad du mener med det andet der?
Avatar billede showsource Seniormester
02. januar 2009 - 20:42 #17
Hmm ja, det er måske nok mig som helst vil ha' en knap for hver ting jeg vil udføre update/delete

Nu ved jeg ikke hvordan du gemmer "albumcover", men hvis markeret, er der jo altid kun en value.

Jeg ville så nok først tjekke om $_POST["sletbillede"] var sat, og evt. udføre query, og derefter køre en update
Avatar billede showsource Seniormester
02. januar 2009 - 20:43 #18
knap => submitknap
Avatar billede tlunde Nybegynder
02. januar 2009 - 20:43 #19
Jeg vil lige prøve mig frem med det jeg har nu, og så vender jeg lige tilbage til dig...tusind tak for hjælpen indtil videre :-)
Avatar billede tlunde Nybegynder
02. januar 2009 - 21:42 #20
Så har jeg fået lavet det hele færdigt, det er testet igennem og det virker...Super mange gange tak for hjælpen :) Smid et svar og du får dine velfortjente point :-)
Avatar billede showsource Seniormester
03. januar 2009 - 07:57 #21
ok
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