Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
1 Wert wird 2 Mal ausgegeben - Besser Lösung gesucht [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
1 Wert wird 2 Mal ausgegeben - Besser Lösung gesucht


 
iBumsti
01-03-2010, 18:28 
 
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:

$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:
ID: 1
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...

 
AmicaNoctis
01-03-2010, 19:03 
 
Hallo,

nimm einfach SELECT DISTINCT ...

Gruß,

Amica

 
iBumsti
02-03-2010, 02:03 
 
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?

 
AmicaNoctis
02-03-2010, 02:16 
 
Hast du das DISTINCT bei beiden Abfragen hinzugefügt?

 
iBumsti
07-03-2010, 19:48 
 
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


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:46 Uhr.