SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 25.10.2008, 13:20:19
Dag Dag ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 42
POST UND ARRAY

Hi Leute, folgende Aufgabe zerbricht mir den Kopf:

ich habe ein Session-Array und POST-Daten aus einem Formular. Ich möchte prüfen, ob die Artikel-ID aus POST im Array vorhanden ist und - wenn ja - dem Array jeweils ein Feld *geliefert* mit dem Wert aus POST hinzufügen.

Mein Ansatz liefert mir immer nur den Schlüssel aus POST, nicht aber den Wert.

Wie würdet ihr da herangehen bitte?


$i=0;
foreach ($_POST as $x){
if ($x = $_SESSION['artikel'][$i]['artikel_id']){
$_SESSION['artikel'][$i]['geliefert'] = $x;
$i++;
}}



SESSION-Array*********************

Array
(
[0] => Array
(
[artikel_id] => 122
[bestand] => 1680
[bestellt] => 70
)

[1] => Array
(
[artikel_id] => 123
[bestand] => 72
[bestellt] => 3
)

POST-Daten**********************

Array
(
[122] => 80
[123] => 4
[button] => Lieferung speichern
)
Mit Zitat antworten
  #2  
Alt 25.10.2008, 15:20:09
Opendix Opendix ist offline
Senior Member
 
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 35
Beiträge: 1.476
AW: POST UND ARRAY

PHP-Code:

foreach($_POST as $key => $value)
{
    
//$key = Schlüssel
    //$value = Dein Wert :)

__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!

Betatester gesucht:
Skiclub Gams / CEVI Grabs
Mit Zitat antworten
  #3  
Alt 25.10.2008, 16:11:29
Dag Dag ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 42
AW: POST UND ARRAY

omg...

Danke!
Mit Zitat antworten
  #4  
Alt 21.11.2008, 18:07:10
Dag Dag ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 42
AW: POST UND ARRAY

zu früh gefreut, ich kriegs nicht hin, aarrrrrrrrrrrrgggg!!!!
Diese Lösung läuft jedenfalls nicht.... warum?

foreach ($_POST as $p => $x){
foreach ($_SESSION['artikel'] as $artikel){
if (isset($artikel['artikel_id'])){
if ($p == $artikel['artikel_id']){
$artikel['geliefert'] = $x;
}}
}}
Mit Zitat antworten
  #5  
Alt 22.11.2008, 20:11:53
Opendix Opendix ist offline
Senior Member
 
Registriert seit: Oct 2004
Ort: Werdenberg / Schweiz
Alter: 35
Beiträge: 1.476
AW: POST UND ARRAY

Was in aller Welt versuchst du hier überhaupt zu basteln? :)
Ersteinmal, benutze bitte die PHP-Tags des Forums, also [PHP ] [ /PHP], natürlich ohne die Leerschläge!

Dann formatiere deinen Code mal ein bisschen leserlich!
Benenne deine Variabeln sinvoll, damit man auch sehen kann, für was die gut sind!

hast du mal die Inhalte von $_SESSION/$_POST mit einem var_dump überprüft?

PHP-Code:
echo "<pre>";
var_dump($_POST);
echo 
"</pre>"
__________________
Opendix lehnt jegliche Haftung für evtl. vorhandene Fehler in der Grammatik sowie der Satzstellung ab! Bitte wenden Sie sich an die Tastatur!

Betatester gesucht:
Skiclub Gams / CEVI Grabs
Mit Zitat antworten
  #6  
Alt 25.11.2008, 00:39:40
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: POST UND ARRAY

PHP-Code:
for($i=0;$i<=count($_SESSION);$i++) {
$sess_id $_SESSION[$i][artikel_id];
if(isset(
$_POST[$sess_id])) { $_SESSION[$i][geliefert] = $_POST[$sess_id]; }

Das sollte nun genau das sein, was du wolltest.
Zur Erklärung:
$i gibt an welches Array in deiner Session(was ja selbst ein Array ist durchlaufen wird. Die for-Schleife läuft solange bis die Menge deiner Session durchlaufen ist (count($_SESSION)). Bei jedem Durchlauf erhöhe ich dann $i um 1.
Somit ist es unerheblich wieviele Arrays in Session vorhanden sind.
Bei jedem Durchlauf wird dann nachgesehen ob in $_POST deine $artikel_id vorhanden ist. Wenn ja wird in $_SESSION[$i] dein gewünschter Eintrag $_SESSION[geliefert] = $_POST[$sess_id] gesetzt.
Mit Zitat antworten
  #7  
Alt 25.11.2008, 09:53:09
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: POST UND ARRAY

Bist du dir sicher, das dort wirklich ein fortlaufender Index angesagt ist?
Warum nicht mit Foreach?
Mit Zitat antworten
  #8  
Alt 25.11.2008, 17:28:53
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: POST UND ARRAY

Zumindest lt. 1. Post hat er einen fortlaufenden Index. Siehe hierzu das erste Array.
PHP-Code:
$_SESSION = array(array("artikel_id" => "122","bestand" => "1685","bestellt" => "3"),array("artikel_id" => "123","bestand" => "70","bestellt" => "4")) 
Dies würde den print_r($_SESSION) erzeugen, der dort steht, wenn man die Werte so wie im Post einträgt.
Weil es meiner Meinung hier nicht erforderlich ist. Hauptproblem ist aus meiner Sicht eher, dass das gesamte Gedachte nicht dem Ziel nutzt.
Ich denke mal, dass hier eine Liefermenge zu artikel xyz gesendet wird, damit dieser abgeschrieben und als geliefert gekennzeichnet wird. Somit müsste sich nach dem Absenden eigentlich auch der Lagerbestand und die Bestellmenge ändern. Da dies buchhalterische Daten sind, gehe ich davon aus, dass diese nach dem Senden auch irgend wo "richtig" gespeichert werden. In einer DB oder sonst wo. Daher kommen vermutlich auch die Daten aus der Session.
Wenn ich da richtig liege würde ich es wie gesagt komplett anders machen. (Vermutlich)

Aber darum geht es in der gestellten Frage ja nicht. :-)

Geändert von urvater (25.11.2008 um 17:36:19 Uhr) Grund: Hab die Frage warum kein Foreach falsch gelesen
Mit Zitat antworten
  #9  
Alt 26.11.2008, 11:26:15
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: POST UND ARRAY

Zitat:
Zitat von Dag Beitrag anzeigen
Mein Ansatz liefert mir immer nur den Schlüssel aus POST, nicht aber den Wert.
Das hatte Opendix schon beantwortet.

Zitat:
Wie würdet ihr da herangehen bitte?
Wir würden wahrscheinlich die Daten im Session Array so abspeichern, daß sie besser gefunden werden können.

alt:
Code:
Array
(
    [0] => Array
        (
            [artikel_id] => 122
            [bestand] => 1680
            [bestellt] => 70
        )
...
)
neu:
Zitat:
Array
(
[122] => Array
(
[bestand] => 1680
[bestellt] => 70
)
...
)
PHP-Code:
foreach($_POST as $key => $val){
  if (
is_int($key) AND ! isset($_SESSION[$key]))
    die(
"Artikelnummer $key nicht gefunden");
  
$_SESSION[$key]['bestellt']  += $val;
  
$_SESSION[$key]['bestand'] -= $val;

Mit Zitat antworten
  #10  
Alt 26.11.2008, 18:20:20
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: POST UND ARRAY

Zusätzlich müsste nach der Fragestellung noch in den If-Bereich
PHP-Code:
$_SESSION[geliefert] = $val
eingesetzt werden. Lt. Frage sollte ja nach dem Finden des Datensatzes die Liefermenge mit in die Session geschrieben werden.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Array formatiert ausgeben Faang PHP Grundlagen 3 15.08.2008 02:47:43
Array umstrukturieren Tikiwiki PHP Grundlagen 2 28.07.2008 14:24:28
Doppelte einträge aus einem Mehrdimensionalen Array aussortieren und löschen PHoenix_KM PHP für Fortgeschrittene und Experten 2 17.04.2008 19:19:53
Einzelne Daten aus Textdatei Auslesen azubinator PHP Grundlagen 153 17.12.2004 14:36:58
zweidimensionale Array mit POST übergeben robotto7831a PHP für Fortgeschrittene und Experten 22 05.04.2004 13:48:36


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:22:32 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt