php if-Bedingung wird nicht eingehalten

Dieses Thema im Forum "Ruby, php, Perl, Python ..." wurde erstellt von codc, 18.11.2009.

  1. codc

    codc /dev/null

    Dabei seit:
    12.01.2004
    Beiträge:
    607
    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

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    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:
    482
    Zustimmungen:
    1
    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:
    607
    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:
    482
    Zustimmungen:
    1
    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:
    607
    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:
    482
    Zustimmungen:
    1
    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:
    607
    Zustimmungen:
    0
    oh ja Tomaten auf den Augen 8) ich sollte Feierabend machen - zu viel heute mit der Webseite zugebracht ...

    Danke
     
  10. daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.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:
    607
    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 Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.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. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #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?
     
  17. daboss

    daboss Keine Macht für niemand!

    Dabei seit:
    05.01.2007
    Beiträge:
    1.294
    Zustimmungen:
    0
    Ort:
    sydney.australia.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. If-Bedingung mit diff

    If-Bedingung mit diff: Hallo, habe da mal wieder ein Problem: if test $modus = "diff" then echo "diff $1 $2 laeuft..." tmpdiff=$(diff $1 $2)...
  2. PATH wird nicht richtig durchsucht

    PATH wird nicht richtig durchsucht: Hi zusammen, ich nutze das Forum schon seit längerem , allerdings hat mir bis jetzt immer die Suchfunktion weitergeholfen. Bei meinem aktuellen...
  3. Suse: Tomas Di Giacomo wird neuer CTO

    Suse: Tomas Di Giacomo wird neuer CTO: Suse hat seinen Vorstand um Dr. Tomas Di Giacomo erweitert, der als Chief Technology Officer ab sofort dem Unternehmen angehört. In der neu...
  4. Edubuntu wird nicht mit Ubuntu 16.04 veröffentlicht

    Edubuntu wird nicht mit Ubuntu 16.04 veröffentlicht: Die Bildungs-Distribution Edubuntu, die zum offiziellen Ubuntu-Veröffentlichungszyklus zählt, wird im April keine neue Version herausgeben. Die...
  5. Edubuntu wird nicht mit Ubuntu 16.04 veröffentlicht

    Edubuntu wird nicht mit Ubuntu 16.04 veröffentlicht: Die Bildungs-Distribution Edubuntu, die zum offiziellen Ubuntu-Veröffentlichungszyklus zählt, wird im April keine neue Version herausgeben. Die...