Von 2 Ergebnissen bzw arrays die differenz ausgeben

thiamak

Grünschnabel
Hatte vorhin schon mal gefragt, aber es wurde irgendwie verschoben


Hallo, mein problem ist: Ich will sehen, wer sich noch nicht angemeldet hat in nem planer.

dazu habe ich 2 mysql abfragen

1te. : "SELECT member_name FROM eqdkp_members WHERE member_rank_id ='1' OR member_rank_id ='2'"

2te.: "SELECT spieler FROM raid_teilnehmer WHERE raid=$id"


die erste abfrage, gibt mir eine liste aus mit allen namen die sich anmelden können,
und die 2te abfrage, gibt mir aus wer sich schon angemeldet hat,

jetzt müsste ich abfrage1 - abfrage2 machen und das ergebnis in reihen ausgeben


kann mir vielleicht wer helfen, wollte das direkt eigentlich mit ner sql abfrage verbinden, kann ich aber nicht da mein mysql bischen zu alt ist
 
Hm ich habs mal probiert, bekomm das aber doch nixht so ganz hin, entweder gibt er mir nur ein ergebnis aus oder gar nix ^^ muss auch sagen ich kenn mich halt da net so gut aus :-) vielleicht kann mir wer da noch mal helfen
 
PHP:
$spieler = array('jan', 'hans', 'karlheinz', 'thomas');
$angemeldet = array('hans', 'karlheinz');

$result = array_diff($spieler, $angemeldet);

print_r($result);

Funktioniert bei mir einwandfrei.
 
hm, also so siehts aus:


$query_dat1="SELECT member_name FROM eqdkp_members WHERE member_rank_id ='1' OR member_rank_id ='2'";
$abfrage1=mysql_query($query_dat1);
$array_dat1=mysql_fetch_row($abfrage1);

$query_dat2="SELECT spieler FROM raid_teilnehmer WHERE raid=309";
$abfrage2=mysql_query($query_dat2);
$array_dat2=mysql_fetch_row($abfrage2);


$spieler = array($array_dat1);
$angemeldet = array($array_dat2);

$result = array_diff($spieler, $angemeldet);
print_r($spieler);
print_r($angemeldet);
print_r($result);
print $page_text;





und das ist das ergebnis:


Array ( [0] => Array ( [0] => Arbosch ) ) Array ( [0] => Array ( [0] => Apax ) ) Array ( )

das kann aber net sein, da beim ersten array ca 50 leute auftauchen müssten, und beim 2ten ca 40.

wo ist mein fehler ? :-(
 
Wo ist denn deine [phpf]while[/phpf] Schleife mit der du die Daten aus der Datenbank ausliest?

Momentan lesen beide Abfragen nur den ersten Eintrag aus.

PHP:
$query_dat1="SELECT member_name FROM eqdkp_members WHERE member_rank_id ='1' OR member_rank_id ='2'";
$abfrage1=mysql_query($query_dat1);
while($array_dat1=mysql_fetch_row($abfrage1)) {
  $spieler = $array_dat1['member_name'];
}

$query_dat2="SELECT spieler FROM raid_teilnehmer WHERE raid=309";
$abfrage2=mysql_query($query_dat2);
while($array_dat2 = mysql_fetch_row($abfrage2)) {
  $angemeldet[] = $array_dat2['spieler'];
}

$result = array_diff($spieler, $angemeldet);
print_r($spieler);
print_r($angemeldet);
print_r($result);
print $page_text;

So sollte es schon eher funktionieren.
 
Zuletzt bearbeitet:
Zurück