php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 17.03.2008, 13:46  
Neuer Benutzer
 
Registriert seit: 17.03.2008
Beiträge: 12
momonov befindet sich auf einem aufstrebenden Ast
momonov eine Nachricht über ICQ schicken
Standard Daten aus Datenbank (richtig) ausgeben.

Hallo,
zu meinem Problem.

Die Daten werden soweit ausgelesen wie gewünscht.
Ich möchte aber nicht ein Land vier Mal untereinander stehen haben, sondern jedes Land nur ein Mal.

Die Versandkosten/arten sollen dann auch in einer Zeile bei dem jeweiligen Land stehen und nicht aufgeteilt in mehreren Zeilen.

Im Anhang befindet sich ein Screenshot der Ausgabe in PHP.

Ich freue mich über jede Art von Lösungsansatz!

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";
$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><td width='130'>Versandname</td><td>Gebuehr</td></tr></table>";

while(
$row mysql_fetch_array($res)) {

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

    if (
$nachnahme == &&  $vorauskasse == &&  $kreditkarte == 0){
        }else{
        
    if (
$nachnahme == 1){
        
$nachnahme "<img src='../img/ja.jpg'>";
    
        }
    else  if(
$nachnahme == 0){ 
         
$nachnahme "<img src='../img/nein.jpg'>";
        
         }
    if (
$vorauskasse == 1){
        
$vorauskasse "<img src='../img/ja.jpg'>";
        
        }
    else  if(
$vorauskasse == 0){ 
         
$vorauskasse "<img src='../img/nein.jpg'>";
        
         }
    if (
$kreditkarte == 1){
        
$kreditkarte "<img src='../img/ja.jpg'>";
        
        }
    else  if(
$kreditkarte == 0){ 
         
$kreditkarte "<img src='../img/nein.jpg'>";
        
         }
        
        
        echo 
"<table width='100%' border='1'><tr><td width='120'>".$landname."</td><td width='100'>".$nachnahme.$gebuehr."</td><td width='100'>".$vorauskasse.$gebuehr."</td>
        <td width='100'>"
.$kreditkarte.$gebuehr."<br />\n</td><td width='130'>".$versandname."<br />\n</td><td >".$gebuehr."<br />\n</td></tr></table>";

        
    }
    
}

?>
momonov ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 17.03.2008, 13:55  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Hi,

vielleicht hilft dir die GROUP BY-Klausel.
Manko10 ist offline  
Alt 17.03.2008, 14:28  
Neuer Benutzer
 
Registriert seit: 17.03.2008
Beiträge: 12
momonov befindet sich auf einem aufstrebenden Ast
momonov eine Nachricht über ICQ schicken
Standard

Hi Manko10,
ich habe mir mal das GOUP BY angeschaut. Der Ansatz geht in die richtige Richtung! Ich erziele nur das gewünschte Ergebniss nicht!

Wenn du ein wenig mehr Zeit hättest und ein bisschen ins Detail gehen könntest wäre nett.

Geändert von momonov (17.03.2008 um 14:32 Uhr).
momonov ist offline  
Alt 17.03.2008, 15:05  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Es wird schwierig, die Versandarten und die Gebühren wirklich in eine Zeile zu schreiben, da es doch immer noch unterschiedliche Datensätze aus verschiedenen Tabellen sind.

Im Grunde müsstest du für jedes Land einzelne Abfragen starten. GROUP BY wäre nur ein Ansatz. Es bewirkt zwar, dass du jedes Land nur einmal in der Liste hast, aber zu diesem Land wird auch nur eine Zahlungsart und eine Gebühr angezeigt.
Manko10 ist offline  
Alt 17.03.2008, 15:15  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
Es wird schwierig, die Versandarten und die Gebühren wirklich in eine Zeile zu schreiben, da es doch immer noch unterschiedliche Datensätze aus verschiedenen Tabellen sind.
Schwierig eingentlich nicht. Er muss eben einfach bei der Ausgabe prüfen ob das Land verglichen zum vorherigen Schleifendurchlauf gewechselt hat - falls ja eine neue Tabellen-Zeile anfangen falls nein eben nicht (dazu muss natürlich ensprechend mir ORDER BY sortiert sein...)
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 17.03.2008, 15:19  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Ja, gut. Auf diese Weise ist es nicht schwer. Das ist mir schon klar.
Nur habe ich immer den Ansatz, das direkt mit MySQL zu machen und da wird es schwer, bzw. unmöglich.

*Verteidigung beendet*
Manko10 ist offline  
Alt 17.03.2008, 15:59  
Neuer Benutzer
 
Registriert seit: 17.03.2008
Beiträge: 12
momonov befindet sich auf einem aufstrebenden Ast
momonov eine Nachricht über ICQ schicken
Standard

Hi agrajag,

wie würde eine solche Prüfung aussehen?
Hab grad ein bisschen rum getüftelt aber "leider" ohne Erfolg.
momonov ist offline  
Alt 17.03.2008, 16:11  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Das ganze machst du per PHP.
In der Schleife, die du bei der Ausgabe durchläufst, speicherst du in einer Variablen das Land. Im nächsten Durchlauf prüfst du dann, ist das aktuelle Land dasselbe wie das gespeicherte? Wenn ja, dann mache ich dies, ansonsten jenes und speichere das neue Land in der Variablen.
Manko10 ist offline  
Alt 17.03.2008, 16:35  
Neuer Benutzer
 
Registriert seit: 17.03.2008
Beiträge: 12
momonov befindet sich auf einem aufstrebenden Ast
momonov eine Nachricht über ICQ schicken
Standard

Zitat:
Zitat von Manko10 Beitrag anzeigen
Das ganze machst du per PHP.
Hehe, nichts für ungut aber soweit war ich auch schon ..

Ich hatte mehr an ein Beispiel gedacht. Versucht es so zu machen habe ich ja schon, ohne Erfolg. Ich werde jetzt noch ein paar Dinge testen und dann schlafen gehen.... PHP macht Kopfschmerzen . Ich danke euch beiden schon mal für eure Zeit.
momonov ist offline  
Alt 17.03.2008, 16:47  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Keine Ursache.
Also ich würde es in etwa so machen:
PHP-Code:
$data = array();
$key  0;

for (
$i 0$row mysql_fetch_assoc($res); $i++) {
    if (
$row["NameDE"] == $data[$key]["NameDE"]) {
        
$data[$key]["versand_type"] .= ", ".$row["versand_type"];
        
$data[$key]["gebuehr"]      .= ", ".$row["gebuehr"];
    } else {
        
$data[] = $row;
        
$key    $i;
    }


Geändert von Manko10 (17.03.2008 um 16:51 Uhr).
Manko10 ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Daten als Rotation ausgeben superskunk PHP Tipps 2008 16 24.05.2008 21:15
Daten in Datenbank übergeben Bebre PHP Tipps 2008 2 11.02.2008 11:41
Daten von Datenbank durch Klick in Feld holen Taktaky PHP Tipps 2008 23 22.08.2007 17:20
Daten werden nicht in die Datenbank eingetragen picco PHP Tipps 2005-2 17 06.10.2005 11:38
Formular Daten in die Datenbank schreiben… sunset PHP Tipps 2005-2 3 26.08.2005 11:49
[Erledigt] Variable Links mit daten aus SQL Datenbank PHP Tipps 2005-2 8 05.08.2005 13:10
XML Daten in eine MySQL Datenbank Datenbanken 8 24.07.2005 16:03
Daten aus der Datenbank in 3 Spalten pro Zeile darstellen? ThaRider PHP Tipps 2005-2 7 14.07.2005 23:00
Datenbank weg? Account gelöscht, aber Daten vorhanden! Datenbanken 3 21.04.2005 12:29
Daten in Datenbank ändern PHP Tipps 2005 3 27.01.2005 14:40
web daten in datenbank erfassen ???insert??? PHP Tipps 2004-2 2 10.12.2004 13:07
[Erledigt] Daten in Datenbank schreiben Datenbanken 2 09.12.2004 13:12
[Erledigt] Daten in Datenbank einfügen Datenbanken 2 18.10.2004 21:11
[Erledigt] Nur bestimmte Daten auslesen und in Datenbank schreiben PHP Tipps 2004 2 26.09.2004 14:33
[Erledigt] Daten aus Formular in Datenbank eingeben ??? PHP Tipps 2004 6 14.08.2004 23:17


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:25 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum