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 ::

Einführung in XHTML, CSS und Webdesign

Einführung in XHTML, CSS und Webdesign 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 für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 01.06.2005, 12:44:33
abrodeck abrodeck ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 9
verschachteltes if ... then

Hallo,

heute habe ich folgendes Problem.
Ich hole einen Datensatz aus einer Datenbank. Die einzelnen Werte lasse ich mit einer while-Schleife zum editieren in ein Formular in einer Tabelle schreiben. Der Wert vom key "Schulamt" soll nicht editierbar sein. Das entsprechende input-Feld wird per if-Abfrage auf "disabled" gesetzt. Mit dem Code weiter unten klappt das auch sehr gut.

Nun soll aber auch der Wert des key "Sonder1" nicht editierbar sein und zwar in Abhängigkeit davon, ob der key "Sonder" einen Wert enthält oder nicht. Also, wenn "Sonder" leer ist, soll "Sonder1" auch "disabled" disabled werden.

Ich habe schon versucht, die if-Abfrage zu verschachteln, aber was dabei rauskam, naja ....

Ich hoffe, Ihr könnt mir helfen. Vielen Dank schonmal !!

Andreas

PHP-Code:
$eintrag = mysql_fetch_array($eintraege, MYSQL_ASSOC);
@reset($eintrag);
$anzahl= count($eintrag);

// Schleife ausfuehren um Tabelle mit Mitarbeiterdaten aufzubauen
$i=0;
while ($i <= $anzahl-1) {

?>

  <tr>
    <td class="mittel" align="center" bgcolor="#979797">
       <? echo key($eintrag); $key = key($eintrag) ?>:
    </td>

<?php
if ($key == "Schulamt") {  //Das Feld Schulamt wird gesperrt,
                           //damit es nicht verändert werden kann
?>

    <td class="mittel" align="center" bgcolor="#979797">

       <input type="text" size="60" maxlength="80"
        value="<? echo ($eintrag[key($eintrag)]); ?> (nicht &auml;nderbar)"
        name=<? echo key($eintrag); ?> disabled="yes">

    </td>
</tr>

<?php
}
else {                  
//Die anderen Felder werden nicht gesperrt
?>

    <td class="mittel" align="center" bgcolor="#979797">

       <input type="text" size="60" maxlength="80"
        value="<? echo ($eintrag[key($eintrag)]); ?>"
        name=<? echo key($eintrag); ?> >

    </td>
</tr>

<?php
}
$i++;
@
next ($eintrag);
?>
__________________
Die einen sehen in jeder Herausforderung ein Problem, die anderen sehen in jedem Problem eine Herausforderung !
Mit Zitat antworten
  #2  
Alt 01.06.2005, 14:06:25
Benutzerbild von dachris
dachris dachris ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 401
AW: verschachteltes if ... then

Was funktioiert denn nicht?
Mit Zitat antworten
  #3  
Alt 01.06.2005, 14:22:43
abrodeck abrodeck ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 9
AW: verschachteltes if ... then

Was hier zu sehen ist funktioniert ja.

Ich will wie beschrieben eine zusätzliche if-Abfrage eingebaut haben, die das input-Feld eines weiteren key namens "Sonder1" disabled, wenn noch ein weiterer key "Sonder" leer ist.

Daa ganze soll innerhalb der while-Schleife passieren. Ich denke, daß man die if-Abfragen verschachteln muß, weiß aber nicht wie :-((

Gruß

Andreas
__________________
Die einen sehen in jeder Herausforderung ein Problem, die anderen sehen in jedem Problem eine Herausforderung !
Mit Zitat antworten
  #4  
Alt 01.06.2005, 14:27:15
Benutzerbild von dachris
dachris dachris ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 401
AW: verschachteltes if ... then

da das disablen nicht wirklich disabled bzw man das leicht umgehen kann

würde ich das ganze wenns disabled sein soll ganz normal ausgeben und nicht in einem Textfeld...

Wenn du den Wert zur übergabe brauchst einfach in einem hiddenfield übergeben


zum problem

post mal deinen bisherigen Versuch ich kapier dein prob. nicht ganz....
Vor allem ist der Code verdammt unübersichtlich geschrieben
Mit Zitat antworten
  #5  
Alt 01.06.2005, 15:01:26
abrodeck abrodeck ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 9
AW: verschachteltes if ... then

ja, ich habe bald den Eindruck, wenn ich das Problem richtig beschreiben könnte dann könnte ich es auch lösen ;o)

Aber ich versuch es nochmal und ausführlicher:

Also, in der DB sind User mit ihren Eigenschaften
(Login, Name, Vorname, Zimmer, Telefon, Fax, Stellenzeichen, Mail, Schulamt, Sonder, Sonder1, usw.) gespeichert.

Die Datensätze sollen über ein kleines Web-Tool editiert werden können, wenn sich was ändert. Ein Datensatz wird anhand des Logins in ein Array "$eintraege" gelesen. Die while-Schleife geht durch das Array und erzeugt für jeden Eintrag eine Tabellenzeile mit zwei Spalten in denen links der Key angezeigt und rechts der Wert des Keys in das Formular eingelesen werden. Die Werte können dort geändert werden und werden wieder in die DB geschrieben.
Da "Schulamt" immer gleich bleibt wird es nicht geändert. Hier könnte ich tatsächlich eine "normale Ausgabe" machen. "Sonder1" soll aber nur dann nicht änderbar sein, wenn der Wert von "Sonder" leer ist. Also muß erst geprüft werden, ob "Sonder" leer ist, und in Abhängigkeit vom Ergebnis muß "Sonder1" änderbar sein oder eben nicht.

Meine bisherigen versuche habe ich leider nicht mehr ... werde in Zukunft so was aber aufheben, versprochen !

Daß mein Code "verdammt unübersichtlich geschrieben" ist, glaube ich Dir, aber ich bin lernfähig ;o) -- was kann man denn verbessern ???

Gruß

Andreas
__________________
Die einen sehen in jeder Herausforderung ein Problem, die anderen sehen in jedem Problem eine Herausforderung !

Geändert von abrodeck (01.06.2005 um 15:42:25 Uhr)
Mit Zitat antworten
  #6  
Alt 01.06.2005, 18:22:20
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
AW: verschachteltes if ... then

Hilft Dir das? -> http://de2.php.net/elseif
Mit Zitat antworten
  #7  
Alt 02.06.2005, 11:32:18
Benutzerbild von dachris
dachris dachris ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 401
AW: verschachteltes if ... then

Zum Thema Quellcode

Ersten gehört ein Quellcode immer sauber kommentiert...
Ein schönes tool dafür ist phpdoc
Entsprechend der Syntax würde ich den Code dann auch kommentieren
(Bissel kommentiert hast du ja)

Dann würde ich nicht soviel zwischen html und php wechseln...

d.h. innerhalb von ifanweisungen oder schleifen oder funktionen u.ä.
würde ich html mit echo ausgeben....

Einfach nur um die Lesbarkeit zu erhöhen....(sonst sind soviel <?php und ?> drin) das stört nur die Lesbarkeit....

Dann würde ich neue Anweisungen immer in neue Zeilen schreiben....

d.h. keine Kurzschreibweisen verwenden....

Prinzipiell ist ja dein Code schon gut strukturiert...ist halt noch ausbaufähig....


Dann würde ich immer wiederkehrende Dinge (Datenbankabfragen) in eine Klasse auslagern.....(damit tut man sich leichter wen mal weider eine Abfrage kommt, oder der Code für die Abfrage geändert werden muss....(z.B. andere DB))....

Dann auch mal evtl. Richtung OOP denken....
Mit Zitat antworten
  #8  
Alt 02.06.2005, 12:32:55
abrodeck abrodeck ist offline
Anfänger
 
Registriert seit: May 2005
Beiträge: 9
AW: verschachteltes if ... then

@ chris17

Danke für den Tip, ich denke das ist es ... bin aber noch am probieren.

@dachris

Danke für die konstruktive Kritik. Ich bin (wie man merkt) Anfänger und kann jede Hilfe und jeden Tipp gebrauchen. Mit Klassen und OOP habe ich mich noch nicht beschäftigt, werde es mir aber mal ansehen.
Bei der Ausgabe von HTML mit echo in PHP habe ich oft Probleme mit der Syntax. Gibt es da irgendwelche Daumenregeln die sich leicht merken lassen ?

So, ich werde nun versuchen das beste aus euren Antworten zu machen und werde mein Ergebnis dann hier vorstellen.

Bis dahin, Danke an alle

Gruß

Andreas
__________________
Die einen sehen in jeder Herausforderung ein Problem, die anderen sehen in jedem Problem eine Herausforderung !
Mit Zitat antworten
  #9  
Alt 02.06.2005, 12:40:30
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: verschachteltes if ... then

Zitat:
Zitat von abrodeck
Bei der Ausgabe von HTML mit echo in PHP habe ich oft Probleme mit der Syntax. Gibt es da irgendwelche Daumenregeln die sich leicht merken lassen ?
Wenn du die Ausgabe innerhalb von " packst, musst du alle ", \ und $, die du ausgeben möchtest, maskieren (einen Backslash voranstellen). Bei einer Ausgabe innerhalb von ' musst du ' und \ maskieren.
Mit Zitat antworten
  #10  
Alt 02.06.2005, 12:46:59
Benutzerbild von dachris
dachris dachris ist offline
Junior Member
 
Registriert seit: Apr 2005
Beiträge: 401
AW: verschachteltes if ... then

Ganz einfach...du darfst keine " verwenden :-)

d.h. " werden von php interpretiert....also musst du " in ' ersetzen....odre mit \" ausmaskieren

Ansonsten gibts eigentlich nix zu beachten.....

so könnte es also dann aussehen

PHP-Code:
$namederdatei "meinedatei.html";
$variable "meinevariable";

echo 
"<a href='".$namederdatei."' >MeineDateilink</a> und hier kommt eine phpvariable ".$variable." welche damit zuende ist"
sieht auf jeden Fall lesbarer aus als

HTML-Code:
<?php $namederdatei = "meinedatei.html"; $variable = "meinevariable"; ?>
<a href='<?php echo $namederdatei?>' >MeineDateilink</a> und hier kommt eine phpvariable <?php echo $variable?> welche damit zuende ist

Dann z.B. für Klassen (mal als Beispiel für ne Doku)
(Andere können mich dafür gerne in der Luft zerreissen )
PHP-Code:
<?php
/**
* This is the Cache System
* @package Core
* @version ID: cache.php, v1.0.0 alpha, 27.04.2005 23:03:00
* @author Pohl.Christoph <christoph.pohl@ki-homepage.de>
* @version v1.0.0 alpha
* @license license.html GPL
* @copyright Copyright &copy; 2005, Pohl.Christoph
* XCore intranet is a product by ki-homepage.de. 
*/
/**
* This class handles the cache System.....write and read....
* @version ID: cache.class.php, v1.0.0 alpha, 27.04.2005 23:03:00 
* @author Pohl.Christoph
*/
defined'_XCO_VALID' ) or die( 'Direct Access to this location is not allowed.' );

class 
SiteCache{
    
    
/**
     * Cache the System or not this should be set inside an module
     */
    
public static     $SiteCache boolean;
    
/**
     * The Cache will be stored here
         * @param String $priv_txt Text which should be cached
     */
         
private function Cache($priv_txt){

usw.......

Geändert von dachris (02.06.2005 um 12:48:29 Uhr)
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 in Function shewolf PHP Grundlagen 5 01.02.2003 18:21:48


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:37: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