Gegen Bilderklau - Das Original (https://www.gegen-bilderklau.net/index.php)
- Design, Website, Copyright (https://www.gegen-bilderklau.net/board.php?boardid=80)
--- Homepagehilfe (https://www.gegen-bilderklau.net/board.php?boardid=27)
---- Homepagehilfe - Archiv (https://www.gegen-bilderklau.net/board.php?boardid=139)
----- Problem in der if-Schleife (https://www.gegen-bilderklau.net/thread.php?threadid=184717)


Geschrieben von Queeni am 03.08.2012 um 17:53:

  Problem in der if-Schleife

Hey ihr smile
Ich tüftle jetzt schon seit über 48 Stunden an einer unglaublich verschachtelten if-else-while-Schleifen-Konstruktion.
Sinn ist, die angebotenen Jobs aus einer Tabelle auszulesen und auszugeben.
Ist keiner eingeloggt, wird unter der Stelle nichts angezeigt.
Ist jemand eingeloggt, der keinen Job hat (jobid=0), wird die Möglichkeit angeboten dein angezeigten Job anzunehmen.
Ist jemand eingeloggt, der einen Job hat (jobid!=0), wird auf das Kontrollzentrum verwiesen, wo man den aktuellen Job kündigen kann.

Dummerweise, wenn jemand eingeloggt ist, der keinen Job hat, wird nur beim ersten Jobangebot der Button zum Jobannehmen angezeigt, bei den weiteren leider nicht. Siehe hier.

So langsam verliere ich den Überblick und die Nerven, vielleicht könnt ihr mir helfen. Ich hoffe die Kommentare erklären alles Augenzwinkern

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:

<?php
include("db.php");
include('navi.php');

$Ergebnis mysql_query("SELECT * FROM `jobs` ");
$nick $_SESSION['Nickname'];
$Session mysql_query("SELECT * FROM `Mitglieder` WHERE Nickname = '$nick'");


//Gibt es Jobs?
   if (@mysql_num_rows($Ergebnis) == 0) {
    echo "Es gibt zur Zeit keine Jobs.";
    }
    
//Wenn ja:
    else {
    
    //Wenn niemand eingeloggt ist:
     if(!isset($_SESSION['Nickname'])) {
     
     //Alle eingetragenen Jobs anzeigen
        while($Data mysql_fetch_array($Ergebnis)) {
        $Angestellte mysql_query("SELECT * FROM `Mitglieder` WHERE jobid = '$Data[id]'");
        $Zahl = @mysql_num_rows($Angestellte);

        echo "
        <p><table align='center' width='600px'>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Bezeichnung:</B></TD>
        <TD VALIGN='TOP'>$Data[bezeichnung]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Unternehmen:</B></TD>
        <TD VALIGN='TOP'>$Data[unternehmen]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Beschreibung:</B></TD>
        <TD valign='top'>$Data[beschreibung]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Voraussetzungen:</B></TD>
        <TD valign='top'>$Data[voraussetzungen]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Arbeitszeit:</B></TD>
        <TD valign='top'>$Data[arbeitszeit]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Bezahlung:</B></TD>
        <TD valign='top'>$Data[bezahlung] € monatlich</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Stellenangebot:</B></TD>
        <TD valign='top'>$Zahl / $Data[stellenangebot] vergeben<br>an: ";
        
        //Alle Angestellten auflisten
        while($Data2 mysql_fetch_array($Angestellte)) {
        echo "$Data2[Nickname]<br>";
        }
        echo "
        </TD>
        </TR>
        </TABLE></p>";
     }
     }
     
     //Wenn jemand eingeloggt ist
     else {
     
     //Alle eingetragenen Jobs ausgeben
        while($Data mysql_fetch_array($Ergebnis)) {
        $Angestellte mysql_query("SELECT * FROM `Mitglieder` WHERE jobid = '$Data[id]'");
        $Zahl = @mysql_num_rows($Angestellte);

        echo "
        <p><table align='center' width='600px'>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Bezeichnung:</B></TD>
        <TD VALIGN='TOP'>$Data[bezeichnung]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Unternehmen:</B></TD>
        <TD VALIGN='TOP'>$Data[unternehmen]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Beschreibung:</B></TD>
        <TD valign='top'>$Data[beschreibung]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Voraussetzungen:</B></TD>
        <TD valign='top'>$Data[voraussetzungen]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Arbeitszeit:</B></TD>
        <TD valign='top'>$Data[arbeitszeit]</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Bezahlung:</B></TD>
        <TD valign='top'>$Data[bezahlung] € monatlich</TD>
        </TR>
        <TR>
        <TD ALIGN='RIGHT' VALIGN='TOP'><B>Stellenangebot:</B></TD>
        <TD valign='top'>$Zahl / $Data[stellenangebot] vergeben<br>an: ";
        
        //Alle Angestellten ausgeben
        while($Data2 mysql_fetch_array($Angestellte)) {
        echo "$Data2[Nickname]<br>";
        }
        echo "
        </TD>
        </TR>";
        
        //Wenn noch Stellen frei sind:
        if($Zahl<$Data[stellenangebot])
        { 
        echo "<tr><td></td><td>";
        
        //Wenn Session nichts liefert
        if(@mysql_num_rows($Session) == 0) {
        echo "Fehler.</td></tr>";
        }
    
        else {
        //Die Mitgliederspalte des Eingeloggten aussuchen:
        while($Data3 mysql_fetch_array($Session)) {
        
        //Wenn der Eingeloggte noch keinen Job hat:
        if($Data3['jobid'] == 0)
        {
        echo "<input type="button" onclick="window.location.href '/job_annehmen.php?id=$Data[id]';" value="$Data[bezeichnungwerden">";        
        }
        //Wenn der Eingeloggte schon einen Job hat:
        else {
        echo "Du hast schon einen Job. 
        Um einen neuen anzunehmen, kündige deinen alten im <a href='kontrollzentrum.php'>Kontrollzentrum</a>."; 
        }
        
        }
        echo "</td></tr>";        
    
        }
        
        }
        //Wenn keine Stellen frei sind:
        else {
        echo "<tr><td></td><td>Alle Stellen sind besetzt.</td></tr>";
        }
        
        echo "
        </TABLE></p><br><br>";
        }
        }
    

}

?>
<?php
include('footer.php'); ?>





Wie gesagt, das Problem ist unter "Wenn jemand eingeloggt ist" und "Wenn der eingeloggte noch keinen Job hat".
Liebe Grüße und vielen Dank an alle dies sich mal anschauen smile



Geschrieben von Queeni am 07.08.2012 um 21:53:

 

*schieb*
Konnte immernoch nicht behoben werden unglücklich



Geschrieben von Leila am 08.08.2012 um 09:38:

 

Die Variablen hießen überall $Data[xy] nur in der if-Abfrage heißt es $Data['xy'] Augenzwinkern



Geschrieben von WuLana am 08.08.2012 um 18:48:

 

setz alle indizes mal unter " " ;-)
bei der session abfrage frägst du auch mit dem "richtigen" index ab da das zeichenketten sind und die unter hochkomma stehen müssen, das gleiche gilt für Arrays (Session isn assoziatives Array, genau wie dein Array auch)

PS: das is der nachteil an php, das es typen unspezifisch ist und einen gern an die wand laufen lässt damit großes Grinsen



Geschrieben von Queeni am 08.08.2012 um 20:48:

 

²Leila: Jetzt wo dus sagst großes Grinsen da war ich wieder sehr ordentlich...

²oldgirl: Nochmal für php-unerfahrene, also alle $Data[xy] zu $Data["xy"]? Also bzw dann in echos eben \", oder?



Geschrieben von WuLana am 09.08.2012 um 23:19:

 

bei zahlen:
$data[123];
zeichenketten oder einzelne Zeichen:
$data[' ']; oder $data[" "];

das "\" (backslash) wird eig nur dann gebraucht wenn man das zeichen "deaktivieren" möchte an der stelle ansonsten ganz normal

wenn du mehr über datentypen wissen willst kann ichs dir gern per pn erklärn das wird sonst bissl langwierig und ist teilweise in php nicht notwendig aber vorteilhaft großes Grinsen



Geschrieben von Queeni am 11.08.2012 um 10:41:

 

Danke für das Angebot smile Ich bin jetzt für 10 Tage weg, kann ich dir danach ne PN schreiben und auf dein Angebot zurück kommen? Dann probier ich auch aus ob das den Fehler behebt Augenzwinkern



Geschrieben von WuLana am 11.08.2012 um 11:46:

 

ich werd in 10 tagen schonn icht hier verschwinden großes Grinsen
also für Fragen bin ich immer da


Forensoftware: Burning Board, entwickelt von WoltLab GmbH