php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 04.01.2005, 01:43  
Gast
 
Beiträge: n/a
Standard Brett vor'm Kopf: Variable ausserhalb ner Schleife

Ja wie der Titel schon andeutet:
Total plemm-plemm...

Komme einfach nicht drauf und sitze schon den ganze Tag daran... Jetzt poste ich mal beide Probleme auf einmal...
Problem 1, das größere:

PHP-Code:
<?php
    
for ($i=1$i<4$i++) {
        if         (
$i == 1$ansprech $ansprechpartner1_name;
        else if (
$i == 2$ansprech $ansprechpartner2_name;
        else if (
$i == 3$ansprech $ansprechpartner3_name;

        if         (
$ansprech == "[GNWF]Dark")            $email_[$i] = "dark@...";
        else if    (
$ansprech == "[GNWF]Headhunter")    $email_[$i] = "rentahero@...";
        else if    (
$ansprech == "[GNWF]2Fast4U")        $email_[$i] = "gnwf_website@...";
        else if    (
$ansprech == "[GNWF]Sealynx")        $email_[$i] = "Blackstarswin@...";
        else if    (
$ansprech == "[GNWF]Hellbound")    $email_[$i] = "hellbound-hellraiser@...";
        else if    (
$ansprech == "[GNWF]Shotgun")        $email_[$i] = "wilderelch@...";
        else if    (
$ansprech == "[GNWF]Disaster")        $email_[$i] = "danielkuehnle@...";
        else if    (
$ansprech == "[GNWF]Naderunner")    $email_[$i] = "chri.s.s@...";
    echo 
$email_[$i];
    }
    echo 
"$email_1 
"
;
    echo 
"$email_2 
"
;
    echo 
"$email_3 
"
;
?>
Dieses Script liefert bei mir die drei eMail Adressen, dei durch echo $email_[$i]; angezeigt werden, sowie 3 x

Und genau hie rliegt mein shite Problem: Wenn die Variable innerhalb der Schleife noch $email_1, bzw. $email_2 und $email_3 heißt (je nachdem, welchen Wert $i gerade hat), kann ich sie nachher nicht mehr ausgeben...

Das blicke ich nicht und habe auch shcon lange gesucht, hatte shcon Angst ch müsste irgendwas gloables stezen, aber hat alles nichts gebrahct...

Zum Script selber:

Nachdem der User ein Formular ausfüllte, wird nun hier der benötigte Ansprechpartner (bzw dessen eMail) ausgewertet ... Es gibt bis zu drei Stück dieser Ansprechpartner, daher 3 Durchläufe.


Mein 2.tes Problem, wa sich hie rsehr unelegant gelöst habe und eifnach wissen will, wie's geht:

Das Formularfeld auf der vorherigen Seite heißt ansprechpartner1_name (, bzw. ansprechpartner2_name und ansprechpartner3_name). Ich bin nicht in der Lage die Schleife so zu schreiben, dass ganz einfach die ersten 3 Zeilen von ihr wegfallen, alla:
PHP-Code:
<?php
if ($ansprechpartner[$i]_name == "NICKNAME"$email_[$i] = "EMAIL-ADRESSE";
?>
Hierbei ist $ansprechpartner[$i]_name jedoch falsch und ich habe schon soviele andere versucht
@ $ansprechpartner.$i_name usw. usw.

Klar Grundlage,.. aber finden konnt ich'S nicht...
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 04.01.2005, 07:29  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

1. Ich würde das zwar nicht mit if oder else machen, aber wie kommst du darauf, dass die am Ende $email_1 und $email_2 heissen? Wieso heissen die nicht $email_[1] oder $email_[2]??? Nur ein Denkansatz

2. Auch hier wieder der selbe Fehler im Denkansatz. Wenn du das im Forumlar so geschrieben hast, dann kannst du das über eval lösen. Beispiel:

Code:
$partner = eval('return $ansprechpartner'.$i.'_name;');
oder über Variablen-Namen-Referenzierung. Weiss nicht, ob das der richtige Begriff ist, egal, ich meine damit:
Code:
$varname = "ansprechpartner$i"."_name";
$partner = $$varname;
Probier einfach einmal damit rum.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.01.2005, 10:16  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

stichpunkt:
Gültigkeitsbereich von Variablen

(so wie ich das verstanden habe)
Zitat:
Zitat von 2Fast4UeXtrem
Wenn die Variable innerhalb der Schleife noch $email_1, bzw. $email_2 und $email_3 heißt (je nachdem, welchen Wert $i gerade hat), kann ich sie nachher nicht mehr ausgeben...
imported_Ben ist offline  
Alt 04.01.2005, 11:29  
Gast
 
Beiträge: n/a
Standard

Code:
$partner = eval('return $ansprechpartner'.$i.'_name;');
Du würdest das nicht mit ner Schleife lösen
Ja, ich alter JS Hase am liebsten auch nicht *g* nur mir haben die Möglichkeiten gefehlt

Also, wie hilft mir der Codeschnippsel weiter, bzw. wo muss ich ihn ausführen

Ich meine, muss ja anscheinend doch in der Schleife sein @ $i
 
Alt 04.01.2005, 11:30  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Guck dir nochmal ganz genau den Unterschied im PHP zwischen Variablennamen und Arrays an. Du vermischst beides ständig irgendwie.
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 04.01.2005, 11:36  
Erfahrener Benutzer
 
Registriert seit: 18.09.2003
Beiträge: 13.598
PHP-Kenntnisse:
Fortgeschritten
imported_Ben ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Was sind eigentlich Arrays?
http://www.php-info.org/viewtopic.php?t=35
imported_Ben ist offline  
Alt 07.01.2005, 15:42  
Gast
 
Beiträge: n/a
Standard

Also fakt ist, das mich den Code @ peisen nicht weitergebracht hat...
Fakt ist weiterhin das ich dann die antwort darauf nicht verstandne habe @ untershcied zwischne Array und Variablen...

Nunja,... um zu zeigen dass ich nicht auf der fuaken Haut sietze habe ichs halt mit Array umgestezt, betsimmt nicht so wie du meintest,a ber halt so wie ichs lösen KÖNNTE; wnen nicht immenroch dieses Problem wäre, wie auch bei meinem ersten Lösungsansatz:

PHP-Code:
<?    $i 0;
    
$nicknames    = array('[GNWF]Dark',
                        
'[GNWF]Headhunter',
                        
'[GNWF]2Fast4U',
                        
'[GNWF]Sealynx',
                        
'[GNWF]Hellbound',
                        
'[GNWF]Shotgun',
                        
'[GNWF]Disaster',
                        
'[GNWF]Naderunner'); 
    
$emails        = array('...@gnwf.de',
                        
'...@t-email.de',
                        
'...@2fast4uextrem.de',
                        
'...@gmx.de',
                        
'...@gmx.de',
                        
'...@yahoo.de',
                        
'...@gmx.net',
                        
'...@gmx.de');
    foreach (
$nicknames as $wert => $name)
        {
            
$nick[$i] = $name;    
            echo 
'Name: '.$name.';
 eMail: '
.$emails[$i].'

'
;
            
$i++;
        }
    for( 
$a 1$a 4$a++ ) {
        for( 
$s 0$s 8$s++ ) 
            { 
                if (
$ansprechpartner[$a]_name == $nick[$s]) $mail[$a] = $emails[$s];;
            }
    }
?>

- 2 Array initalisiert,
- Jedes Element aus'm ersten Array wird in einer Variable gespeichert [ $nick[$i] ]
- 3 mal (maximal 3 mögliche AdressatenFelder (siehe oben!)) wird geprüft welcher NICK mit dem aus dem jewieligen Formularfeld übereinstimmt.
Die Aktion die dann ausgeführt wird, ist $mail[$a] = $emails[$s] also was ich will ist, dann in die Variablen $mail1, $mail2 und $mail3 die jewielige e
Mail Adresse zu speichern!

So nun wi eihr seht ist das eventuell umständlciher ;9 Scheiß egal jetzt *g*
mir geht es endgültig darum, wie ich das richtig schreiben muss:

PHP-Code:
<?
                i 
1;
    foreach (
$nicknames as $wert => $name)
        {
            
$nick[$i] = $name;
                                                
i++;

...
?>
worein speichere ich HIER $name ? Nicht zufällig in $nick1 ? (wenn i = 1 wäre)...
PHP-Code:
<?
    
for( $a 1$a 4$a++ ) {
        for( 
$s 0$s 8$s++ ) 
            { 
                if (
$ansprechpartner[$a]_name == $nick[$s]) $mail[$a] = $emails[$s];
            }
    }
?>
Wie schriebe ich das fehlerfrei ?
Wie spreche ich das INPUT Feld von der Vorseite , dessen Namen, wie oben schon beschrieben $ansprechpartner1_name, $ansprechpartner2_name und $ansprechpartner3_name sind richtig an ?
also wie kriege ich das mithilfe der schleifenvariablen (?) hin ? Ihr seht ja, was ich meine

und wie an den stellen die da folgen? @

$mail[$a] = $emails[$s];



ohje
 
Alt 07.01.2005, 21:20  
Gast
 
Beiträge: n/a
Standard

Das ist doch nur eine kleine dummheit, bin mir ganz sicher
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
While Schleife - Variable zusammenfügen mar8125 PHP Tipps 2006 5 17.09.2006 12:48
Schleife -> Variable wird überschrieben Jacks Rache PHP Tipps 2006 18 12.07.2006 01:00
problem mit variable aus while schleife bjt PHP Tipps 2006 2 08.07.2006 11:40
variable ausserhalb von funktion... tonne PHP Tipps 2005-2 7 27.10.2005 01:33
While schleife in variable ausführen PHP Tipps 2005-2 4 07.08.2005 21:31
Schleife in Variable speichern GrU3nL!nG PHP Tipps 2005-2 7 05.07.2005 13:06
Brett vo'm Kopf @ Variablendeklarartion PHP Tipps 2005 8 12.05.2005 23:03
Schleife: Variable in Variablen PHP Tipps 2005 5 14.03.2005 19:38
[Erledigt] Brett vor dem Kopf PHP-Fortgeschrittene 2 28.02.2005 14:51
Variabel aus while schleife ausserhalb der schleife nutzen PHP Tipps 2005 8 12.02.2005 18:04
Wo hab' ich hier ein Brett vor dem Kopf? PHP Tipps 2004 12 09.07.2004 13:27

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
smiley wo er sich ein brett gegen den kopf haut, variable ausserhalb einer schliefe, schleifen kopf php, php variable schleife ausserhalb, php variablen in einer schleife außerhalb benutzen, php aktuellen wert ausserhalb while schleife, php varible gültigkeit schleife, php variable außerhalb if, smiley haut sich an kopf, for schleife variable ausgeben, smiley haut sich brett gegen den kopf, variable ausserhalb eine function php, auf variable zeigen in schleife, for schleife variablendeklarartion, wie heisst emoticons bei icq der das brett vorm kopf haut

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:08 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.