php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 23.12.2005, 09:17  
Gast
 
Beiträge: n/a
Standard !Abfrge wenn mehr als ein datensatz... vergleich...

Moin...

ich bräuchte mal einen Denkanstoß... und zwar habe ich eine Tabelle mit
Kundennummern. In diese Tabelle ist leider nicht in der 3. Normalform. Es
gibt eine Spalte "kdnr". In dieser können redundanzen auftauchen.
bedeutet... wenn ein Kunde mehrere Produkte hat, hat er eine kdnr und
mehrere Datensätze. Nun möchte ich abfragen, wenn dieser Fall auftritt,
dass mir die Unterschiede zb. rot Makiert werden.


Bei mir hakt es momentan an der Schleife, die zwischen den einzelnen Datensätzen vergleicht.

hier mal ein wenig code...

PHP-Code:
       $result mysql_query("SELECT * FROM tbl_kd WHERE kdnr = '$vkdnr' ORDER BY kdnr");
        
$anzkd mysql_query("SELECT COUNT(kdnr) AS anzkd FROM tbl_kd WHERE kdnr = '$vkdnr'");
        
$rowanzkd mysql_fetch_array($anzkd);
        if (
$rowanzkd['anzkd'] > 1)
            {
            
//vergleiche Datensaetze....
            
}
        while (
$row mysql_fetch_array($result))
            {
            
//zeige datensze
            

Es gibt 6 Spalten die verglichen werden müssen...
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 23.12.2005, 11:18  
Benutzer
 
Registriert seit: 02.02.2005
Beiträge: 41
Netspire
Standard

Hakt es wirklich in der Schleife oder geht er nicht in die Schleife hinein?

Da fehlt n�mlich in der 2. Zeile das Group By.
Netspire ist offline  
Alt 23.12.2005, 11:25  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Wenn du eh alle Datensätze holst, kannst du die Anzahl der Datensätze auch einfach mit mysql_num_rows() ermitteln.
xabbuh ist offline  
Alt 23.12.2005, 12:05  
Gast
 
Beiträge: n/a
Standard

Also...

mein problem ist die logische definition...

was ich mir jetzt überlegt hatte ist, wenn ich in der while schleife, in welcher mir die datensätze angezeigt werden einfach ne zählvariable einbaue und dann alle daten in ein mehrdimensionales array packe müsste ich doch auf diese zurückgreigen können und mit in_array() vergleichen können...

nur am erstellen des codes hapert es...

oder leige ich da ganz falsch?

gut die zählung werde ich mir durch mysql_num_rows() sparen...
 
Alt 23.12.2005, 12:06  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Könntest du mal anhand eines Beispiels demonstrieren, was genau du überhaupt vorhast?
xabbuh ist offline  
Alt 23.12.2005, 13:01  
Gast
 
Beiträge: n/a
Standard

jo... ich versuchs ma mir pseudocode...

- wenn mehr als ein datensatz zu kundennummer x
- vergleiche datensätze in feld 1 2 3 4 5 und 6 immer zum datensatz mit der kleinsten(eindeutigen) id
- wenn felder unterschiedlich makiere diese in der ausgabe als roten text.

bedeutet... ich habe eine Kundendatenbank, in welcher Kunden redundant erfasst werden. Es gibt z.b. eine spalte die heisst stasse. Wenn dieser Kunde z.b. 2 oder 3 wohnsitze hat. sollen mir in der ausgabe alle 2 oder 3 datensätze angezeigt werden und mit dem ersten verglichen werden. Alle Abweichungen zum ersten Datensatz sollen rot makiert werden.
 
Alt 23.12.2005, 14:06  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Dann schreibe beim 1. Durchlauf der Schleife alle Werte des Datensatzes in ein Array und überprüfe bei jedem Durchlauf der Schleife, ob der gerade aktuelle Datensatz Unterschiede aufweist.
xabbuh ist offline  
Alt 23.12.2005, 14:10  
Gast
 
Beiträge: n/a
Standard

jo so habe ich es gerade auch ungefair gemacht... und es funzt...

danke für die vielen tipps.. und frohe weihnachten...
 
Alt 23.12.2005, 14:46  
Gast
 
Beiträge: n/a
Standard

Geht leider immer noch nicht richtig... war nur zufall das es bei diesem datensatz stimmte....

beim ersten durchlaufen der schleife schreibt er daten ins array... beim 2. durchlauf kann ich aufs erste array nicht mehr zurückgreifen...

ich hab mir vor der while schleife eine zählvariable eingebaut namens $arraynumber = 1 und in der schleife mach ich folgendes:

PHP-Code:
<?php
                $kdarray 
= array($arraynumber => array("duid" => $duid"dkdnr" => $dkdnr"dtarif" => $dtarif));
                
//wenn tarif != zum ersten datensatz
                
if ($kdarray[$arraynumber]['dtarif'] == $kdarray[1]['dtarif'])
                    {
                    
$colortarif "green";
                    }
                else
                    {
                    
$colortarif "red";
                    }
                
$arraynumber++;
?>
nur funktioniert es so leider nicht....
 
 


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
Bei UPDATE erkennen, ob der Datensatz existiert? Anotherone Datenbanken 7 01.04.2008 14:49
Wieso wird nur ein Datensatz angezeigt? Minimi Datenbanken 14 08.02.2008 02:54
auf nächsten Datensatz zugreifen cycap Datenbanken 5 18.12.2007 14:32
Datensatz zu max() simsalabim Datenbanken 8 02.10.2007 08:56
datensatz problem 24bits PHP Tipps 2006 1 30.08.2006 18:52
while schleife - spezial datensatz einblenden Buschdieb PHP Tipps 2006 2 09.04.2006 13:05
einen variablen datensatz löschen PHP Tipps 2007 3 04.11.2005 12:41
nächsten datensatz bei klick auf button weiter... PHP Tipps 2005-2 1 14.08.2005 12:19
Datensatz ändern funktioniert nicht PHP Tipps 2005 3 03.03.2005 23:09
Datensatz geändern? patr1k PHP Tipps 2005 12 14.02.2005 12:46
Leeren Datensatz editierbar machen Anuschka PHP Tipps 2004-2 1 27.12.2004 13:28
mehrere Benutzer arbeiten an einem Datensatz ajo_silent Datenbanken 6 20.11.2004 13:52
Datensatz abfragen und in Formularfeldern ausgeben Datenbanken 1 25.08.2004 09:24
[Erledigt] datensatz vergessen, nachträglich einfügen? PHP Tipps 2004 17 08.08.2004 23:31
gespeicherten Datensatz auslesen PHP Tipps 2004 1 02.06.2004 14:42

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
datensatz vergleich php, datensatzvergleich

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:33 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.