Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus Datenbank (richtig) ausgeben.

Einklappen

Neue Werbung 2019

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

  • #16
    update ... doch das gewünschte Ergebniss bleibt aus.

    PHP-Code:
    <?php

    $sql
    ="SELECT tspi_country.NameDE, tspi_versand.NameDE, tspi_versand.isNachnahme, tspi_versand.isVorauskasse, tspi_versand.isKreditkarte, tspi_versand.versand_type, tspi_versand.gebuehr FROM tspi_country, tspi_landversand, tspi_versand WHERE tspi_landversand.Ctry_ID = tspi_country.ID AND tspi_landversand.Versand_ID = tspi_versand.ID AND tspi_versand.versand_type = 0 AND tspi_versand.gebuehr > 0 AND tspi_versand.NurIntern = 0 ORDER BY tspi_country.NameDE";

    $res=send_sql($db,$sql);
    $row=mysql_fetch_row($res);

    echo 
    "<table width='100' border='1'><tr><td width='120'>Land</td><td width='100'>Nachname</td><td width='100'>Vorauskasse</td><td width='100'>Kreditkarte</td></tr></table>";

    $tmpvorkasse 0;
    $tmpnachname 0;
    $tmpkreditkarte 0;

    while(
    $row mysql_fetch_array($res)) {

    $landname $row[0];
    $versandname $row[1];
    $nachname $row[2];
    $vorauskasse $row[3];
    $kreditkarte $row[4];
    $versand_type $row[5];
    $gebuehr $row[6];

        if (
    $landname == $tmplandname && isset($tmplandname))
        {
        if(
    $vorauskasse == 1)
        {        if (
    $nachname == 1)
                {    if (
    $kreditkarte == 1)
                        {
    $tmpkreditkarte=1;
                        
    $tmpnachname=1;
                        
    $tmpvorkasse=1;}
                    else{
    $tmpkreditkarte=0;
                        
    $tmpnachname=1;
                        
    $tmpvorkasse=1;}
                }
            else(
    $nachname == 0)
                {    if (
    $kreditkarte == 1)
                        {
    $tmpkreditkarte=1;
                        
    $tmpnachname=0;
                        
    $tmpvorkasse=1;}
                    else{
    $tmpkreditkarte=0;
                        
    $tmpnachname=0;
                        
    $tmpvorkasse=1;}
                }
        }
        else
        {        if (
    $nachname == 1)
                {
                    if (
    $kreditkarte == 1)
                        {
    $tmpkreditkarte=1;
                        
    $tmpnachname=1;
                        
    $tmpvorkasse=0;}
                    else{
    $tmpkreditkarte=0;
                        
    $tmpnachname=1;
                        
    $tmpvorkasse=0;}
                }
            else(
    $nachname == 0)
                {    if (
    $kreditkarte == 1)
                        {
    $tmpkreditkarte=1;
                        
    $tmpnachname=0;
                        
    $tmpvorkasse=0;}
                    else{
    $tmpkreditkarte=0;
                        
    $tmpnachname=0;
                        
    $tmpvorkasse=0;}
                }
        }
        }
        
        else{echo 
    "<table width='100' border='1'><tr><td width='120'>";    
            echo 
    $tmplandname;
            echo 
    "</td><td width='100'>".$tmpnachname."</td><td width='100'>".$tmpvorkasse."</td><td width='100'>".$tmpkreditkarte."        <br />\n</td></tr></table>";
            
            
    $tmplandname $landname;
            
    $tmpvorkasse $vorauskasse;
            
    $tmpnachname $nachname;
            
    $tmpkreditkarte $kreditkarte;
            }
        }

    ?>

    Kommentar


    • #17
      Das wäre das Schema:
      PHP-Code:
      $sql "SELECT tspi_country.NameDE, tspi_versand.NameDE, tspi_versand.isNachnahme, tspi_versand.isVorauskasse, tspi_versand.isKreditkarte, tspi_versand.versand_type, tspi_versand.gebuehr FROM tspi_country, tspi_landversand, tspi_versand WHERE tspi_landversand.Ctry_ID = tspi_country.ID AND tspi_landversand.Versand_ID = tspi_versand.ID AND tspi_versand.versand_type = 0 AND tspi_versand.gebuehr > 0 AND tspi_versand.NurIntern = 0 ORDER BY tspi_country.NameDE";
      $result mysql_query($sql);

      $country "";
      $charge "";
      $supply_type "";

      echo 
      '<table>';
      for (
      $i 1$row mysql_fetch_assoc($result); $i++) {
          if (
      $country != $row["NameDE"] || $i == mysql_num_rows($result)) {
              echo 
      '<tr>'."\n";
              echo 
      '<td>'.$row["NameDE"].'</td>';
              
      // hier dasselbe für die nächsten Felder 
              
               
      if ($i || $i == mysql_num_rows($result)) {
                   echo 
      '<td>'.$charge.', '.$row["gebuehr"].'</td>';
                   echo 
      '<td>'.$supply_type.', '.$row["versand_type"].'</td>';
                   echo 
      '</tr>';
               }
              
              
      $country $row["NameDE"];
              
      $charge $row["gebuehr"];
              
      $supply_type $row["versand_type"];
          } else {
              
      $charge .= $row["gebuehr"];
              
      $supply_type .= $row["versand_type"];
          }
      }
      echo 
      '</table>'
      Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

      Kommentar


      • #18
        Hi Manko10,

        also ich habe jetzt den Code von dir verwendet und etwas ausgebaut.
        Länder werden richtig ausgegeben aber Zahlungsarten leider immer noch nicht!

        PHP-Code:
        <?php
         
        $sql 
        "SELECT tspi_country.NameDE, tspi_versand.isNachnahme, tspi_versand.isVorauskasse, tspi_versand.isKreditkarte, tspi_versand.versand_type, tspi_versand.gebuehr FROM tspi_country, tspi_landversand, tspi_versand WHERE tspi_landversand.Ctry_ID = tspi_country.ID AND tspi_landversand.Versand_ID = tspi_versand.ID AND tspi_versand.versand_type = 0 AND tspi_versand.gebuehr > 0 AND tspi_versand.NurIntern = 0 ORDER BY tspi_country.NameDE";
         
        $doener=send_sql($db,$sql);
         
        $country "";
        $charge "";
        $supply_type "";
         
        echo 
        '<table>';
        for (
        $i 1$row mysql_fetch_assoc($doener); $i++) {
            if (
        $country != $row["NameDE"] || $i == mysql_num_rows($doener)) {
                echo 
        '<tr>'."\n";
                echo 
        '<td>'.$row["NameDE"].'</td>';
             echo 
        '<td>'.$row["isVorauskasse"].'</td>';
          echo 
        '<td>'.$row["isNachnahme"].'</td>';
          echo 
        '<td>'.$row["isKreditkarte"].'</td>';
                
                 if (
        $i || $i == mysql_num_rows($doener)) {
                     echo 
        '<td>'.$charge.', '.$row["gebuehr"].'</td>';
                     echo 
        '<td>'.$supply_type.', '.$row["versand_type"].'</td>';
                     echo 
        '</tr>';
                 }
                
                
        $country $row["NameDE"];
                
        $charge $row["gebuehr"];
                
        $supply_type $row["versand_type"];
            } else {
                
        $charge .= $row["gebuehr"];
                
        $supply_type .= $row["versand_type"];
            }
        }
        echo 
        '</table>';  
         
        ?>
        Ausgabe:



        Was fehlt noch oder was habe ich falsch gemacht?

        Nochmals Danke für deine Zeit .

        Kommentar


        • #19
          PHP-Code:
              } else {
                  
          $charge .= $row["gebuehr"];
                  
          $supply_type .= $row["versand_type"];
              } 
          Da fehlen die Kommata (sorry, habe ich vergessen - das Listing oben war aus dem Kopf - ungetestet, da ich dein Datenbank nicht habe).
          PHP-Code:
              } else {
                  
          $charge .= ', '.$row["gebuehr"];
                  
          $supply_type .= ', '.$row["versand_type"];
              } 
          Wenn du aber meist, dass es nicht stimmt, dass die Zahlen ausgegeben werden, so musst du nicht das Skript sondern die DB-Felder überprüfen. Wenn du noch nach einer Möglichkeit suchst, wie du jede Zahlungs-/Lieferungs-Art nur 1x ausgibst, so würde ich das nicht in einer String-Variablen ausgeben, sondern in einem Array prüfen. Jedesmal, bevor du ein neues Element anhängst, prüfst du mit in_array(), ob der Eintrag schon vorhanden ist. Die Ausgabe des ganzen geschieht dann so:
          PHP-Code:
          echo implode(', '$supply_type); 
          Dass nur Zahlen ausgegeben werden, liegt auch daran, dass ich einfach die nächst liegenden Felder genommen habe. Die musst du noch korrigieren.
          Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

          Kommentar


          • #20
            Hi Manko10,
            ich habe eine Lösung gefunden .... nach so langer Zeit. Nochmal Merci

            Hier der Code, vielleicht hilft er einmal anderen!

            PHP-Code:
            <?php

            $mysql 
            = new SQL();
            $mysql2 = new SQL();

            function 
            getVersandGebuehr($mysql$land$feld){
                return 
            $mysql->getdbfeld("SELECT v.gebuehr FROM tspi_landversand l 
                    JOIN tspi_versand v ON v.ID = l.Versand_ID 
                    AND 
            $feld = 1 
                    AND v.versand_type = 0 
                    AND v.isRatenfinanz = 0
                    AND v.ID != 86
                    AND v.ID != 73
                    AND v.gebuehr > 0
                    AND v.NurIntern = 0
                    WHERE l.Ctry_ID = '
            $land'"0);
            }

            echo 
            "<table cellpadding='15px' style='width: 100%; border:1px; cellpadding:15px; cellspacing:15px;'>";
            echo 
            "<tr style='font-weight: bold; background-color:#28ABE3; color:#ffffff;'>";

            // Zweisprachige Ausgabe
            if ($ln==""$ln="de"; echo "<td>".$dict2['country'][$ln]."</td>";
            if (
            $ln==""$ln="de"; echo "<td>".$dict2['cashinadvanced'][$ln]."</td>";
            if (
            $ln==""$ln="de"; echo "<td>".$dict2['cashondelivery'][$ln]."</td>";
            if (
            $ln==""$ln="de"; echo "<td>".$dict2['creditcard'][$ln]."</td>";

            echo 
            "</tr>";

            $query "SELECT ID, name$ln FROM $DB_COUNTRY ORDER BY name$ln";

            if(
            $mysql->query($query)){
                while(
            $row mysql_fetch_assoc($mysql->getResult())){
                    
                    
            $land         $row[ID];
                    
            $land_txt     $row["name".$ln];
                    
            $gebuehr_vorkasse         getVersandGebuehr($mysql2$land'isVorauskasse'); 
                    
            $gebuehr_nachnahme         getVersandGebuehr($mysql2$land'isNachnahme'); 
                    
            $gebuehr_kreditkarte     getVersandGebuehr($mysql2$land'isKreditkarte'); 
                        
                    
            $style "style='background-color:#EBEBEB; width:150px'";
                    
                    if (
            $gebuehr_vorkasse || $gebuehr_nachnahme || $gebuehr_kreditkarte 0){
                        echo 
            "<tr>";
                        echo 
            "<td style='background-color:#EBEBEB; width:200px;'>$land_txt</td>";
                        
                        
            //VORAUSKASSE
                        
            echo "<td $style>";
                        if (
            $gebuehr_vorkasse 0)
                            echo 
            $gebuehr_vorkasse." &euro;";
                        else 
                            echo 
            "-";
                        echo 
            "</td>";
                        
                        
            //NACHNAHME
                        
            echo "<td $style>";
                        if (
            $gebuehr_nachnahme 0)
                            echo 
            $gebuehr_nachnahme." &euro;";
                        else 
                            echo 
            "-";
                        echo 
            "</td>";
                        
                        
            //KREDITKARTE
                        
            echo "<td $style>";
                        if (
            $gebuehr_kreditkarte 0)
                            echo 
            $gebuehr_kreditkarte." &euro;";
                        else 
                            echo 
            "-";
                        echo 
            "</td>";
                        
                        echo 
            "</tr>";
                    }
                }
            }
            echo 
            "</table>";  

            ?>

            Kommentar

            Lädt...
            X