![]() |
|
|
Themen-Optionen |
|
|
Nach oben #1 |
|
Neuer Benutzer
Registriert seit: 07.07.2008
Beiträge: 7
|
Hallo,
eventuell kann mir jemand helfen, folgende Fragestellung: Ich bastel gerade an einem (für mich nicht mehr ganz simplen) Formular-Skript, das ich zur Administration einer einzelnen News-Seite benutzen möchte. Ich habe zwei Formularfelder, deren Inhalte ich an zwei seperate Arrays übergebe, einen für Headlines + einen für längeren Text. Gegen Ende des Skripts möchte ich nun die einzelnen Headlines und Texte wieder kombinieren und auf meiner html-seite ausgeben. Ich mache das in etwa folgendermaßen, bekomme so aber natürlich alle Headlines zuerst untereinander und dann alle Texte. Code:
foreach ($head_array as $head) {
?>
<div>
<?=$head ?>
</div>
<?php
}
foreach ($text_array as $text) {
?>
<div>
<?=$text ?>
</div>
<?php
}
Code:
foreach ($head_array as $head && $text_array as $text) {
?>
<div>
<?=$head ?>
<?=$text ?>
</div>
<?php
}
Würde mich über jeden Denkanstoss freuen. Bei Fragen gerne fragen, manchmal ergibt sich die Lösung in einer kleiner Diskussion.. Herzlichen Dank erstmal für jede Antwort, Gruß, Steffen |
|
|
|
|
|
Nach oben #2 |
|
Der Student
Registriert seit: 03.01.2007
Ort: München
Beiträge: 86
|
Ein kurzer Blick ins Manual hätte doch auch mal sein können oder? Da gibts genug Array Funktionen um zwei Arrays zusammen zu fügen.
array_merge() fügt zwei Arrays zusammen. Wenn allerdings die gleichen Keys in den Arrays existieren werden die Werte überschrieben. Wenn du einfach die Arrays durchgehen möchtest kannst du es auch folgend machen, allerdings müssen hierfür die zugehörigen Wertepaare den selben Key im Array besitzen. PHP-Code:
__________________
Wenn ich du wäre, wäre ich lieber ich. http://www.clubstars.net http://www.x-tinct.de Geändert von Flor1an (07.07.2008 um 16:20 Uhr). |
|
|
|
|
|
Nach oben #3 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Es wäre natürlich interessant, wie die Informationen in die Arrays kommen. Wenn du zum Beispiel eine Datenbank-Abfrage machst, musst du nur innerhalb der Schleife in der die Ergebnisse abgearbeitet werden beide Felder ausgeben.
Wenn du die Arrays hingegen irgendwo anders befüllst - wo auch immer - und die Struktur nicht verändern möchtest, kannst du auch einfach folgendes machen: PHP-Code:
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #4 |
|
Neuer Benutzer
Registriert seit: 07.07.2008
Beiträge: 7
|
Hi,
Habe mehrere Referenzen offen. Mit einem "multidimensionalem Array" hat es z.B. nicht funktioniert.. Ich probiere mal das zweite Beispiel mit Schlüssel und Wert aus. Dafür muss ich einen Key/eine Art Identifier mit auf den Weg geben? Hätte es aber auch wohl konkreter beschreiben sollen: Der Sinn zweier Arrays ist für mich in diesem Fall, dass ich die Inhalte später in verschiedene divs schicken möchte, um sie unterschiedlich zu formatieren, in sofern eher: Code:
?> <div class="head"> <?=$head ?> </div> <div class="text"> <?=$text ?> </div> <?php Danke, Mr. NiceGuy, sieht interessant aus, schnalle ich bisher aber nicht. Danke schonmal für die Antworten - -------- neuer post -------- Hm, anscheinend doch nachvollziehbar für mich, Mr NiceGuy. Danke, probiere ich gerade aus. Steffen -------- neuer post -------- Fantastisch, funktioniert einwandfrei - und wesentlich simpler als mein Ansatz.. klasse, vielen Dank. Ich hoffe, ich darf mich gerne wieder melden, falls ich ins stocken gerate. Best, Steffen Geändert von Jann Hendrik (07.07.2008 um 17:42 Uhr). Grund: ich habe die drei posts mal zusammengefasst |
|
|
|
|
|
Nach oben #5 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 789
|
Hallo Steffen.
Die Lösung mit einem multidimenaionalen Array wäre aber durchaus schöner (dafür gibts die Dinger ja nun mal). weiter solltest du <?php schreiben, anstatt <?, da dein System damit portabler ist. Dass diese sog. short open tags (<?) akzeptiert werden, kann man nämlich abschalten und das macht auch Sinn, wenn man XHTML-Dateien durch den Parser jagt. PHP-Code:
|
|
|
|
|
|
Nach oben #6 |
|
Neuer Benutzer
Registriert seit: 07.07.2008
Beiträge: 7
|
Hi Bastian,
scheint eine interessante Lösung zu sein! Ich schaffe es im Moment zwar nicht, meine Variablen aus den Formularfeldern an die entsprechenden Stellen im verschachtelten Array zu speichern, aber ich bleibe dran.. Wenn ich das hinbekomme, sicher eine gute Lösung. Zumal ich nun auch meine Edit-Routine verhauen habe, seit der Lösung mit der for-Schleife. Mal schauen.. Danke auch für den Hinweis zur Syntax. Gruß, Steffen |
|
|
|
|
|
Nach oben #7 |
|
Der Student
Registriert seit: 03.01.2007
Ort: München
Beiträge: 86
|
Mh schade das du meinen Post nicht beachtet hast. Bei MrNiceGuys Lösung wäre das Problem dass du immer Integer Werte als Keys brauchst und diese keine Lücken haben dürfen, also fortlaufend sein müssen.
Schau dir doch meine Lösung noch einmal an. Da kannst das auch in zwei Divs schreiben, hast das Problem mit den Keys allerdings nicht, sieht außerdem etwas einfacher aus.
__________________
Wenn ich du wäre, wäre ich lieber ich. http://www.clubstars.net http://www.x-tinct.de |
|
|
|
|
|
Nach oben #8 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
@Flo: Nicht ganz richtig, denn auch assoziative Arrays haben ein numerisches Pendant, welches fortlaufend gezählt wird.
Dass ein mehrdimensionales Array sinniger wäre ist richtig, hängt jetzt aber erstmal von der Quelle ab von der die Informationen kommen und ob eine "quick and dirty"-Lösung vielleicht ausreichend ist. Leider sind diesbezüglich noch keine Antworten gekommen!?
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #9 |
|
Der Student
Registriert seit: 03.01.2007
Ort: München
Beiträge: 86
|
Was genau meinst du damit?? Du kannst ein assoziatives Array doch nicht mit einer for() Schleife durchgehen die die Werte 0 bis n-1 hat.
__________________
Wenn ich du wäre, wäre ich lieber ich. http://www.clubstars.net http://www.x-tinct.de |
|
|
|
|
|
Nach oben #10 |
|
Neuer Benutzer
Registriert seit: 07.07.2008
Beiträge: 7
|
Die Werte kommen aus einem Formular, so:
Code:
<div id="inhalt" class="text"> <form action="<?=$_SERVER['PHP_SELF'] ?>" method="POST"> Überschrift: <br> <textarea class="textarea_headline" name="headline"></textarea> <br> <br> Artikeltext: <br> <textarea class="textarea_copy" name="copytext"></textarea> <br> <br> <input style="width:150px" type="submit" name="action" value="Speichern" /> </form> </div> Code:
$headline = $_POST['headline']; $copytext = $_POST['copytext']; Ich könnte euch ja mal die url posten, wie es zur Zeit aussieht. Dann wird vieleicht auch klarer, welches Ziel ich anstrebe.. Da ich es jetzt ja erst einmal etwas verhauen habe, (bei Interesse) eher morgen.. Ich lese mir gerade noch einiges zum Thema arrays durch, vieleicht wird mir dann ja bereits einiges klarer. Danke erstmal allen soweit, auch Dir Flo. Steffen Geändert von herz42 (07.07.2008 um 22:40 Uhr). |
|
|
|
|
|
Nach oben #11 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 789
|
Du musst du Werte doch eh erstmal speichern, also musst du sie doch aus dem Speicher in dein entsprechendes Format auslesen und nicht aus dem Formular.
Im Übrigen bekommst du so ein Array übertragen: PHP-Code:
Geändert von Basti (07.07.2008 um 22:58 Uhr). |
|
|
|
|
|
Nach oben #12 |
|
Neuer Benutzer
Registriert seit: 07.07.2008
Beiträge: 7
|
Klar, mir ist aber zum Beispiel noch nicht ganz klar, wie ich den Inhalt von z.b. "headline" an eine bestimmte stelle eines arrays speichere und dann die nächste eingabe "headline" aus dem formular entsprechend an die zweite stelle, etc..
|
|
|
|
|
|
Nach oben #14 |
|
Der Student
Registriert seit: 03.01.2007
Ort: München
Beiträge: 86
|
Ach komm das kann doch nich so schwer sein:
PHP-Code:
__________________
Wenn ich du wäre, wäre ich lieber ich. http://www.clubstars.net http://www.x-tinct.de |
|
|
|
|
|
Nach oben #15 | |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
Zitat:
Andererseits habe ich schon ewig nicht mehr mit numerischen Arrays gearbeitet, da ich es für viel zu kompliziert halte.
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
|
Nach oben #17 | |
|
Der Student
Registriert seit: 03.01.2007
Ort: München
Beiträge: 86
|
Zitat:
Wenn du in PHP in einem Array die Keys definierst dann kannst du auf das Element nur genau über diesen Key zugreifen, es gibt dann kein numerisches Pendant!
__________________
Wenn ich du wäre, wäre ich lieber ich. http://www.clubstars.net http://www.x-tinct.de |
|
|
|
|
|
|
Nach oben #18 |
|
Erfahrener Benutzer
Registriert seit: 14.08.2005
Ort: Nienburg / Weser
Beiträge: 662
|
@Flo: Kompliziert im Sinne von "Ähm, welcher Key war nun nochmal welcher Wert?" Ich finde assoziative Arrays in der Hinsicht deutlich unkomplizierter, zumal ein String-Key deutlich mehr Aussagekraft hat, als ein numerischer Index...
Aber nun gut, dass das so scheinbar doch nicht möglich ist, wie ich erst dachte liegt wohl daran, dass ich - wenn überhaupt - nur im Bezug mit mysql_fetch_array() auf numerische Arrays zugegriffen habe. Dort ist es nämlich so, dass beides parallel existiert. Nunja, da schon genügend helfende Hände an dem "Problem" werkeln, halte ich mich jetzt dezent im Hintergrund
__________________
Paradox ist, wenn jemand für seinen Alkoholkonsum geradestehen soll |
|
|
|
|
|
Nach oben #19 |
|
Der Student
Registriert seit: 03.01.2007
Ort: München
Beiträge: 86
|
Naja das Problem dürfte ja schon gelöst sein
Ja bei mysql_fetch_array() haste wirklich beides. Eigentlich ist beides nicht nötig. Zumindest habe ich es noch nie gebraucht dass beides zurück gegeben wird. Daher würde ich auch eher mysql_fetch_assoc() verwenden! Da bekommst du nur einmal die Daten, kein unnötiges verdoppeln der Daten. Im übrigen sind sogesehen assoziative Arrays durchaus praktischer! Beim Abfragen einer DB sollte das auf jeden Fall genutzt werden. Aber Arrays braucht man ja noch für so einige andere Dinge und dann ist es oft egal was für einen Key du hast. Und da kann man einfach eine Zahl als Key nutzen. Wenn du in anderen Programmiersprachen schaust, zum Beispiel Java da gibt es Arrays die NUR einen integer Key akzeptieren. Allerdings ist da ein Arrays auch etwas anders als in PHP aufgebaut. Es gibt aber trotzdem Datenstrukturen die ähnlich wie in PHP arbeiten. Allerdings finde ich es in Java recht eckelig mit solchen Strukturen zu arbeiten, da ist PHP schon seeeer angenehm!
__________________
Wenn ich du wäre, wäre ich lieber ich. http://www.clubstars.net http://www.x-tinct.de |
|
|
|