php if-Bedingung wird nicht eingehalten

Diskutiere php if-Bedingung wird nicht eingehalten im Ruby, php, Perl, Python ... Forum im Bereich Programmieren unter Linux/Unix; Hi, ich schreibe gerade ein php-Script ohne wirklich davon Ahnung zu haben. <?php echo "<table border=\"1\">"; $Zeilen = 1;...

  1. codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    608
    Zustimmungen:
    0
    Hi, ich schreibe gerade ein php-Script ohne wirklich davon Ahnung zu haben.

    Code:
    <?php
    
    echo "<table border=\"1\">";
    
    $Zeilen = 1;
    $Dateizeiger = fopen("test.csv", "r");
    $Formel = 8;
    
    while(($Daten = fgetcsv($Dateizeiger, 1000, ";")) !== FALSE)
    {
        $AnzahlDerFelder = count($Daten);
    
    echo "<tr valign=\"top\">";
    
        $Zeilen++;
    
        for($i = 0; $i < $AnzahlDerFelder; $i++)
        {
            echo "<td>";
            
            if ($i = $Formel){
    		echo "<img src=\"",$Daten[$i],"\">";
                }
    
    	else {
    		echo $Daten[$i];
                }
    
            echo "</td>";
        }
        echo "</tr>";
    }
    fclose($Dateizeiger);
    echo "</table>";
    ?>
    
    Hier wird die if-Bedingung nur für $Formel=8 ausgeführt aber nicht das else später. Vielleicht hat ja jemand eine Idee was der Fehler ist.
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 HeadCrash, 18.11.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    495
    Zustimmungen:
    2
    Ort:
    Bayern
    Hi,

    dass müßte
    Code:
    if ($i [B]==[/B] $Formel){
    
    heißen, zumindest wenns Copy&Paste ist.

    mfg
    HeadCrash
     
  4. codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    608
    Zustimmungen:
    0
    Jetzt wird nur die else-Bedingung ausgeführt auch wenn $i=8 ist :(
     
  5. #4 HeadCrash, 18.11.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    495
    Zustimmungen:
    2
    Ort:
    Bayern
    Fakt ist nur wenn du in einer if mit "=" arbeitest wird in deinem Beispiel $i immer der Wert von $Formel zugewiesen.

    Hast du mal die test.csv als beispiel?
     
  6. #5 codc, 18.11.2009
    Zuletzt bearbeitet: 18.11.2009
    codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    608
    Zustimmungen:
    0
    Code:
    Number;Name;Mass;Amoung;Price;Remark;Availible;Structure
    1;rhamnopyranosid;520,59;10 g;10000,-;rhamnosylation;n.a.;./images/formula1.png
    
     
  7. #6 bytepool, 18.11.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    kann es sein dass du eventuell $i == 7 meintest? ;)
    Wenn ich gut gezaehlt hab, hat die Datei nur 8 Datenfelder, ergo geht die Schleife von 0 bis 7.

    mfg,
    bytepool
     
  8. #7 HeadCrash, 18.11.2009
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    495
    Zustimmungen:
    2
    Ort:
    Bayern
    Versuchs mal mit $Formel=7

    die Ausgabe print_r($Daten) direkt am anfang der While-Schleife erzählt dir wieso.

    mfg
    HeadCrash
     
  9. codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    608
    Zustimmungen:
    0
    oh ja Tomaten auf den Augen 8) ich sollte Feierabend machen - zu viel heute mit der Webseite zugebracht ...

    Danke
     
  10. daboss

    daboss Kaiser

    Dabei seit:
    05.01.2007
    Beiträge:
    1.297
    Zustimmungen:
    0
    Ort:
    bavaria.germany.europe.world
    Kleine Randnotiz: Ich wuerde die Kommas aus
    PHP:
    echo "<img src=\"",$Daten[$i],"\">";
    durch Punkte ersetzen... (Waehre mir zumindest neu, das das Komma konkateniert)
     
  11. Tblue

    Tblue Tripel-As

    Dabei seit:
    27.11.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Bei echo darf man Kommata verwenden. Hier handelt es sich auch nicht um eine Stringverkettung, richtig, sondern das sind Argumente für echo (merke: echo ist keine Funktion, sondern ein Sprachkonstrukt, funktioniert also anders).

    http://www.php.net/manual/en/function.echo.php
     
  12. codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    608
    Zustimmungen:
    0
    Nachtrag - so läuft das Script wie gewünscht:

    PHP:
    <?php

    echo "<table border=\"1\">";

    $Zeilen 1;
    $Dateizeiger fopen("test.csv""r");
    $Formel 7;

    while((
    $Daten fgetcsv($Dateizeiger1000";")) !== FALSE)
    {
        
    $AnzahlDerFelder count($Daten);

    echo 
    "<tr valign=\"top\">";

        
    $Zeilen++;

        for(
    $i 0$i $AnzahlDerFelder$i++)
        {
            echo 
    "<td align=\"center\" valign=\"middle\">";
            
            if ((
    $i == $Formel) && ($Zeilen !=2)) {
                echo 
    "<img src=\"",$Daten[$i],"\">";
                }

        else {
            echo 
    $Daten[$i];
            }

            echo 
    "</td>";
        }
        echo 
    "</tr>";
    }
    fclose($Dateizeiger);
    echo 
    "</table>";
    ?>
     
  13. daboss

    daboss Kaiser

    Dabei seit:
    05.01.2007
    Beiträge:
    1.297
    Zustimmungen:
    0
    Ort:
    bavaria.germany.europe.world
    Ah, das mit dem Komma wusst ich noch garnicht. Danke für den "Gegenhinweis" :)
     
  14. amöbe

    amöbe Tripel-As

    Dabei seit:
    21.01.2007
    Beiträge:
    188
    Zustimmungen:
    0
    Es gibt allerdings einen Unterschied zwischen Punkt und Komma.
    Beim Aneinanderhängen wird zuerst jeder Teil evaluiert. Während bei mehreren durch Kommata getrennten Ausdrücken, jeder evaluiert und ausgeführt wird:
    PHP:
    function foo (){
    echo 
    "in \n";
    return 
    "bar \n";
    }

    echo 
    "\nKomma:\n";
    echo 
    foo (),foo (),foo ();
    echo 
    "\nPunkt:\n";
    echo 
    foo ().foo ().foo ();
    echo 
    "\n";
    Ausgabe:
     
  15. #14 saeckereier, 20.11.2009
    saeckereier

    saeckereier Graue Eminenz

    Dabei seit:
    08.05.2005
    Beiträge:
    1.920
    Zustimmungen:
    0
    Ort:
    Im schönen Norden
    Warum nicht
    PHP:
    <?=$variable ?>
    oder so ähnlich? Gibbet das nich in php?
     
  16. daboss

    daboss Kaiser

    Dabei seit:
    05.01.2007
    Beiträge:
    1.297
    Zustimmungen:
    0
    Ort:
    bavaria.germany.europe.world
    Doch gibt's. Aber ich seh gerade den Sinn (hier in diesem Fall) nicht?
     
Thema: php if-Bedingung wird nicht eingehalten
Besucher kamen mit folgenden Suchen
  1. if formel mit echo

Die Seite wird geladen...

php if-Bedingung wird nicht eingehalten - Ähnliche Themen

  1. ShardingSphere wird Toplevel-Projekt der Apache Software Foundation

    ShardingSphere wird Toplevel-Projekt der Apache Software Foundation: Das Projekt ShardingSphere hat den Status eines Toplevel-Projekts bei Apache erhalten. ShardingSphere dient zur Verteilung von Daten auf mehrere...
  2. Zimbra wird proprietär

    Zimbra wird proprietär: Die Mail- und Groupwarelösung Zimbra der Firma Synacor Inc. wechselt mit Zimbra 9 zu einer proprietären Lizenz. Weiterlesen...
  3. Mitchell Baker wird CEO von Mozilla

    Mitchell Baker wird CEO von Mozilla: Mitchell Baker führt ab sofort offiziell die Geschäfte der Mozilla Corporation als Chief Executive Officer (CEO). Sie war bereits seit einigen...
  4. Unity8 wird zu Lomiri

    Unity8 wird zu Lomiri: Die Desktopumgebung Unity8 wird in Lomiri umbenannt. Als Gründe nennt die UBports-Gemeinschaft die Namensähnlichkeit mit der Spiele-Engine Unity...
  5. Apache Subversion wird 20 Jahre alt

    Apache Subversion wird 20 Jahre alt: Das Versionskontrollsystem Subversion feiert sein zwanzigjähriges Bestehen. Das System ist freie Software und wird mittlerweile unter den...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden