Html? Php?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Html? Php?

    PHP-Code:
    if ($todo == "anbieter") {
        echo 
    tmpl('templates/partner/anbieterteil1.temp');
        
    $m_res mysql_query("SELECT url, partner, pay, betrag, beschreibung FROM $table03");
        while (
    $m_rows mysql_fetch_array($m_res) or die(mysql_error())) {
              if (
    $m_rows[partner] == "0") {
                  echo 
    "Es sind momentan leider keine Programme vorhanden";
                  echo 
    tmpl('templates/partner/anbieterteil3.temp');
                  echo 
    load_footer('partner');
                  exit();
              }
              if (
    $m_rows[pay] == "1"$m_rows[pay] = "%";
              elseif (
    $m_rows[pay] == "2"$m_rows[pay] = "Euro";
              else {
                   
    $m_rows[pay] = "gratis";
                   
    $m_rows[betrag] = "";
              }
              echo 
    tmpl('templates/partner/anbietertable.temp', array('{url}' => $m_rows[url], '{anbieter}' => $m_rows[partner], '{betrag}' => $m_rows[betrag], '{pay}' => $m_rows[pay], '{text}' => $m_rows[beschreibung]));
        }
        echo 
    tmpl('templates/partner/anbieterteil3.temp');
        echo 
    "test";
    }

    echo 
    load_footer('partner');

    ?> 
    inhalt anbieterteil1:
    PHP-Code:
    <div align="center">
      <
    center>
      <
    table border="0" width="50%"
    inhalt anbietertable:
    PHP-Code:
        <tr>
          <
    td width="100%"><font face="Arial" size="2"><a href="{url}">{anbieter}</a> - <b>{betrag}{pay}</b></font></td>
        </
    tr>
        <
    tr>
          <
    td width="100%"><font face="Arial" size="2">{text}</font></td>
        </
    tr
    inhalt anbieterteil3:
    PHP-Code:
    test
      
    </table>
      </
    center>
    </
    div
    alles, was nach der schleife steht, wird nicht mehr ausgegeben; weder anbieterteil3.temp, noch 'test', noch der footer.

    woran liegt das?

  • #2
    Irgendwie blicke ich bei der Verschachtelung Deiner IF-Anweisungen nicht durch

    Zuerst if() {...} dann if() ...; elseif()...; und an Schluß nochmal } else {...}
    Falls das letzte "else" zum ersten "if" gehört, dann mußt Du das "if ... elseif ..." in der Mitte entweder in den ersten IF-Block oder den ELSE-Block schreiben und kannst das nicht einfach so in die Mitte rein setzen!

    Kommentar


    • #3
      check mal deine fkt-aufrufe "tmpl()"

      einmal rufst du die fkt mit 2 parametern auf,
      1x mit 1 parameter ???
      Kissolino.com

      Kommentar


      • #4
        also...

        1.
        PHP-Code:
                  if ($m_rows[pay] == "1"$m_rows[pay] = "%";
                  elseif (
        $m_rows[pay] == "2"$m_rows[pay] = "Euro";
                  else {
                       
        $m_rows[pay] = "gratis";
                       
        $m_rows[betrag] = "";
                  } 
        zu diesem if gehört das else und der block wird auch korrekt ausgeführt.

        @wurzel, nein, die function ist ok.
        PHP-Code:
        function tmpl($tmpl_path,$replacements='none') {
            
        $tmpl_file fopen($tmpl_path"r");
            
        $tmpl_inhalt fread($tmpl_filefilesize($tmpl_path));
            
        fclose($tmpl_file);
            if (
        is_array($replacements)) {
                while (list(
        $code$replace) = each ($replacements)) {
                    
        $tmpl_inhalt str_replace($code$replace$tmpl_inhalt);
                }
            }
            return 
        $tmpl_inhalt;

        merkwürdigerweise funktioniert folgender, relativ ähnlicher block schon:
        PHP-Code:
        if ($todo == "konto") {
            echo 
        tmpl('templates/partner/statsteil1.temp');
            
        $m_res mysql_query("SELECT id, userid, partnerid, datum, status, betrag FROM $table02 WHERE userid='$id'");
            while (
        $m_rows mysql_fetch_array($m_res)) {
                  if (
        $m_rows[userid] != $id) {
                      echo 
        "Sie haben bisher an keinem unserer Programme teilgenommen!";
                      echo 
        tmpl('templates/partner/statsteil3.temp');
                      echo 
        load_footer('partner');
                      exit();
                  }
                  
        $m_res2 mysql_query("SELECT partner, url FROM $table03 WHERE id='$m_rows[partnerid]'");
                  
        $m_rows2 mysql_fetch_array($m_res2);
                  
        $m_rows[datum] = date("d. m. Y"$m_rows[datum]);
                  echo 
        tmpl('templates/partner/statstable.temp', array('{id}' => $m_rows[id], '{url}' => $m_rows2[url], '{betreiber}' => $m_rows2[partner], '{betrag}' => $m_rows[betrag], '{kaufdatum}' => $m_rows[datum], '{status}' => $m_rows[status]));
            }
            echo 
        tmpl('templates/partner/statsteil3.temp');

        bzw - funktionieren tun sie beide. aber bei dem anderen block werden danach keinerlei ausgaben mehr zugelassen, bei dem hier schon. ?

        Kommentar


        • #5
          ...dann setze mal überall Klammern '{ oder }', dann ist das ganze auch etwas übersichtlicher - falls es dann immernoch nicht funzt, poste bitte nochmal den geänderten Code...

          Ich würde mir auf jeden Fall nochmal den ersten Block anschaun:
          PHP-Code:
          if ($m_rows[pay] == "1"$m_rows[pay] = "%";
                    elseif (
          $m_rows[pay] == "2"$m_rows[pay] = "Euro";
                    else {
                         
          $m_rows[pay] = "gratis";
                         
          $m_rows[betrag] = "";
                    } 
          das kann irgendwie so nicht stimmen!
          Zuletzt geändert von Rumborak; 12.06.2003, 12:28.

          Kommentar


          • #6
            was passiert, wenn du hier

            while ($m_rows = mysql_fetch_array($m_res) or die(mysql_error()))

            das die(...) rausnimmst?
            gibts ne verwertbare fehlermeldung?

            noch was:
            du fragst die gesamte tabelle ab, kommt ein partner mit dem inhalt "0"
            greift die erste bedingung und bricht ab. logischerweise kann dann nach
            dem while nix mehr passieren.
            Kissolino.com

            Kommentar


            • #7
              leute, mein prob ist nicht, dass der code nicht funzt - das tut er und zwar ausgezeichnet.

              mein problem ist, dass nach der whileschleife nichts mehr ausgegeben wird, obwohl nicht abgebrochen wird.

              @wurzel
              die abfrage ist beabsichtigt...

              Kommentar


              • #8
                Original geschrieben von panta
                @wurzel
                die abfrage ist beabsichtigt...
                hab ich befürchtet

                da nach dem while nix mehr kommt, muss der ausstieg
                innerhalb der schleife erfolgen.
                begleite doch mal jede zeile

                mit einem "echo duchlaufnummer + zeilennummer" dann solltest
                du den datensatz und die zeile ermitteln können, wo das ganze
                abbricht.

                sonst fällt mir im moment nichts schlaues mehr ein
                Kissolino.com

                Kommentar


                • #9
                  PHP-Code:
                  if ($todo == "anbieter") {
                      echo 
                  tmpl('templates/partner/anbieterteil1.temp');
                      
                  $m_res mysql_query("SELECT url, partner, pay, betrag, beschreibung FROM $table03");
                      while (
                  $m_rows mysql_fetch_array($m_res) or die(mysql_error())) {
                            echo 
                  "vor if<br><br>";
                            if (
                  $m_rows[partner] == "0") {
                                echo 
                  "in if<br><br>";
                                echo 
                  "Es sind momentan leider keine Programme vorhanden<br><br>";
                                echo 
                  tmpl('templates/partner/anbieterteil3.temp');
                                echo 
                  load_footer('partner');
                                
                  #exit();
                            
                  }
                            echo 
                  "nach if<br><br>";
                            if (
                  $m_rows[pay] == "1"$m_rows[pay] = "%";
                            elseif (
                  $m_rows[pay] == "2"$m_rows[pay] = "Euro";
                            else {
                                 
                  $m_rows[pay] = "gratis";
                                 
                  $m_rows[betrag] = "";
                            }
                            echo 
                  "nach if2<br><br>";
                            echo 
                  tmpl('templates/partner/anbietertable.temp', array('{url}' => $m_rows[url], '{anbieter}' => $m_rows[partner], '{betrag}' => $m_rows[betrag], '{pay}' => $m_rows[pay], '{text}' => $m_rows[beschreibung]));
                            echo 
                  "vor schleifenende<br><br>";
                      }
                      echo 
                  tmpl('templates/partner/anbieterteil3.temp');
                      echo 
                  "test";
                      echo 
                  load_footer('partner');

                  erzuegt folgendes:
                  header



                  vor if

                  nach if

                  nach if2

                  plymtacky - gratis
                  dies ist ein test
                  vor schleifenende

                  vor if

                  nach if

                  nach if2

                  test - 3Euro
                  dies ist ein test. blabkisgdKJZTVFDiuaszdgajksdgkjasfdiuasrdui56asidvbioazvsdubaj,shdbkuaksdzzvtajdaksfdggakyjhdbajksyd vbj,aysgdjasgdjajksyjhdaksdg
                  vor schleifenende

                  das danach sind zwei zeilen in mysql...

                  das script funzt...ich glaube eher, dass das problem irgendwo in den tabellen liegt, die ja aus drei teilen zusammengefügt werden, denn der quelltext sieht so aus:

                  PHP-Code:
                  <center><b>header</b></center><br><br><div align="center">
                    <
                  center>
                    <
                  table border="0" width="50%">vor if<br><br>nach if<br><br>nach if2<br><br>    <tr>
                        <
                  td width="100%"><font face="Arial" size="2"><a href="http://www.plymtacky.de">plymtacky</a> - <b>gratis</b></font></td>
                      </
                  tr>
                      <
                  tr>
                        <
                  td width="100%"><font face="Arial" size="2">dies ist ein test</font></td>
                      </
                  tr>vor schleifenende<br><br>vor if<br><br>nach if<br><br>nach if2<br><br>    <tr>
                        <
                  td width="100%"><font face="Arial" size="2"><a href="http://www.test.de">test</a> - <b>3Euro</b></font></td>
                      </
                  tr>
                      <
                  tr>
                        <
                  td width="100%"><font face="Arial" size="2">dies ist ein testblabkisgdKJZTVFDiuaszdgajksdgkjasfdiuasrdui56asidvbioazvsdubaj,shdbkuaksdzzvtajdaksfdggakyjhdbajksydvbj,aysgdjasgdjajksyjhdaksdg</font></td>
                      </
                  tr>vor schleifenende<br><br

                  Kommentar


                  • #10
                    die templates müssten auch bei einem fehlerhaften html-code sauber
                    geparst werden und dann im quelltext erscheinen. dafür sieht dann
                    die ausgabe im browser zerhackt aus.

                    aber im quelltext taucht davon ja nichts auf
                    anbieterteil3.temp ist schon vorhanden?

                    lass das mal laufen, hast du "schleife zuende" im quelltext stehen?
                    PHP-Code:
                    if ($todo == "anbieter") {
                        echo 
                    tmpl('templates/partner/anbieterteil1.temp');
                        
                    $m_res mysql_query("SELECT url, partner, pay, betrag, beschreibung FROM $table03");
                        while (
                    $m_rows mysql_fetch_array($m_res) or die(mysql_error())) {
                              echo 
                    "vor if<br><br>";
                              if (
                    $m_rows[partner] == "0") {
                                  echo 
                    "in if<br><br>";
                                  echo 
                    "Es sind momentan leider keine Programme vorhanden<br><br>";
                                  echo 
                    tmpl('templates/partner/anbieterteil3.temp');
                                  echo 
                    load_footer('partner');
                                  
                    #exit();
                              
                    }
                              echo 
                    "nach if<br><br>";
                              if (
                    $m_rows[pay] == "1"$m_rows[pay] = "%";
                              elseif (
                    $m_rows[pay] == "2"$m_rows[pay] = "Euro";
                              else {
                                   
                    $m_rows[pay] = "gratis";
                                   
                    $m_rows[betrag] = "";
                              }
                              echo 
                    "nach if2<br><br>";
                              echo 
                    tmpl('templates/partner/anbietertable.temp', array('{url}' => $m_rows[url], '{anbieter}' => $m_rows[partner], '{betrag}' => $m_rows[betrag], '{pay}' => $m_rows[pay], '{text}' => $m_rows[beschreibung]));
                              echo 
                    "vor schleifenende<br><br>";
                        }
                        echo 
                    "schleife zuende";
                        echo 
                    tmpl('templates/partner/anbieterteil3.temp');

                        echo 
                    load_footer('partner');

                    Kissolino.com

                    Kommentar


                    • #11
                      header



                      vor if

                      nach if

                      nach if2

                      plymtacky - gratis
                      dies ist ein test
                      vor schleifenende

                      vor if

                      nach if

                      nach if2

                      test - 3Euro
                      dies ist ein test. blabkisgdKJZTVFDiuaszdgajksdgkjasfdiuasrdui56asidvbioazvsdubaj,shdbkuaksdzzvtajdaksfdggakyjhdbajksyd vbj,aysgdjasgdjajksyjhdaksdg
                      vor schleifenende



                      alles was nach der schleife steht, wird entweder nicht mehr sichtbar ausgegeben oder gar ned ausgeführt...

                      ich probier noch schnell was aus und editier dann nach...

                      also...:
                      PHP-Code:
                      if ($todo == "anbieter") {
                          echo 
                      tmpl('templates/partner/anbieterteil1.temp');
                          
                      $m_res mysql_query("SELECT url, partner, pay, betrag, beschreibung FROM $table03");
                          while (
                      $m_rows mysql_fetch_array($m_res) or die(mysql_error())) {
                                echo 
                      "vor if<br><br>";
                                if (
                      $m_rows[partner] == "0") {
                                    echo 
                      "in if<br><br>";
                                    echo 
                      "Es sind momentan leider keine Programme vorhanden<br><br>";
                                    echo 
                      tmpl('templates/partner/anbieterteil3.temp');
                                    echo 
                      load_footer('partner');
                                    
                      #exit();
                                
                      }
                                echo 
                      "nach if<br><br>";
                                if (
                      $m_rows[pay] == "1"$m_rows[pay] = "%";
                                elseif (
                      $m_rows[pay] == "2"$m_rows[pay] = "Euro";
                                else {
                                     
                      $m_rows[pay] = "gratis";
                                     
                      $m_rows[betrag] = "";
                                }
                                echo 
                      "nach if2<br><br>";
                                echo 
                      tmpl('templates/partner/anbietertable.temp', array('{url}' => $m_rows[url], '{anbieter}' => $m_rows[partner], '{betrag}' => $m_rows[betrag], '{pay}' => $m_rows[pay], '{text}' => $m_rows[beschreibung]));
                                echo 
                      "vor schleifenende<br><br>";
                                
                      touch("test1.txt");
                          }
                          
                      touch("test2.txt");
                          echo 
                      "schleife zuende";
                          echo 
                      tmpl('templates/partner/anbieterteil3.temp');

                      test1.txt wird erzeugt, test2.txt nicht. aber warum bricht der da ab?
                      Zuletzt geändert von panta; 12.06.2003, 15:47.

                      Kommentar


                      • #12
                        hattest du das
                        while ($m_rows = mysql_fetch_array($m_res) or die(mysql_error()))

                        mal in das
                        while ($m_rows = mysql_fetch_array($m_res))

                        geändert?
                        Kissolino.com

                        Kommentar


                        • #13
                          AAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHH


                          drei stunden fehlersucheri wegen einer EINZIGEN fehlenden KLAMMER!

                          bisher war's so:
                          PHP-Code:
                              while ($m_rows mysql_fetch_array($m_res) { 
                          was fehlt, ist ja wohl offensichtlich....GRRR! ich will nen php-editor von microsoft - da sterben dann wenigstens die parseerrors aus.

                          auf jeden fall trotzdem vielen dank für die hilfe!

                          Kommentar

                          Lädt...
                          X