1 Wert wird 2 Mal ausgegeben - Besser Lösung gesucht

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

  • 1 Wert wird 2 Mal ausgegeben - Besser Lösung gesucht

    Hallo.

    Mein Problem lautet wie folgt.
    Ich arbeite mit PHP und mach eine Abfrage in die Tabelle A.
    Hier ist Spalte 1 oder Spalte 2 befüllt.

    Da mehrere Zeilen auf meine WHERE Bedingung zutreffen, lese ich die Ergebnise mit einer Schleife aus.

    In dieser Schleife ist nun meine zweite Abfrage.
    In dieser zweiten Abfrage nehme ich nun Ergebnis 1 aus Spalte 1 und Ergebnis 2 aus Spalte 2 und füge es nun der WHERE Bedingung hinzu:
    WHERE A = Spalte - Ergebnis 1 OR B = Spalte - Ergebnis 2

    Nun ist jedoch mein Problem, dass ich in der DB 2 Zeilen eigentlich habe, auf welche meine Logik zutrifft, jedoch 3 Zeilen erscheinen, wobei die Zeile 1 und die Zeile 3 die gleiche ID aus der Tabelle besitzen (sprich eine Zeile wird zweimal ausgegeben)


    Wie würdet Ihr das lösen.
    Die Werte, welche aus der Tabelle A gelesen werden, in eine Spalte zu geben ist mir nicht möglich da dieses INT sind, welche doppelt vorkommen können, jedoch jeweils eine andere Funktion auslöst.

    Um es ein bisschen klarer zu machen hier ein Beispiel:
    PHP-Code:
    $partnerhead_id 1;

    $partnervidid_abf mysql_query("SELECT id FROM tabelleA WHERE vid_gcode = '$partnerhead_id'");
        while (
    $partnervidid_anz mysql_fetch_array($partnervidid_abf)) {
            
    $partnervid_id $partnervidid_anz[id];
            
        
    $partnerstat_abf mysql_query("SELECT  id FROM tabelleB WHERE (partnerheadID = '$partnerhead_id' OR vsm_id = '$partnervid_id') AND rsta != 0");
            while (
    $partnerstat_anz mysql_fetch_array($partnerstat_abf)) {
                
    $partnerstat_id $partnerstat_anz[id];
                
                
    Ergebnis ID:
                
    ID1
                ID
    3
                ID
    1
            

    Im Endefekt würde ich eine IF Bedingung in der Abfrage benötigen.
    IF vsm_id trifft zu mach das ansonst partnerheadID.

    Gibts da was?
    Benutzt wird mysql...

  • #2
    Hallo,

    nimm einfach
    Code:
    SELECT DISTINCT ...
    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Nein...
      Das hab ich auch schon probiert.
      Aber es ändert sich dabei gar nichts.

      Gibt es vielleicht einen ganz anderen Weg als zwei while-Schleifen hintereinander?

      Kommentar


      • #4
        Hast du das DISTINCT bei beiden Abfragen hinzugefügt?
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Hallo.

          Nachdem ich das Problem trotz vorschläge so nicht lösen konnte, bin ich nun einen anderen weg gegangen.
          Ich trage nun immer die partnerheadID zudem trage ich auch noch die partnerheadID in einer weiteren Spalte ein.
          Für den Select beim anzeigen mach ich nun ein where partnerheadID2 und beim Prüfen für die andere Aufgabe, mach ich nun die Prüfung ob die Spalte vsm_id befüllt ist.
          Wenn ja Update, wenn nein oder nicht gleich neue Zeile.
          Hab zwar leider die partnerheadID 2x mal angegeben, aber es ist eine tolle Lösung für miene zwecke mit max 11 Zeichen mehr (INT)

          Danke trotzdem für die mühen!

          LG Achim

          Kommentar

          Lädt...
          X