Id aus einem Array für einen SELECT übergeben

mkoeni1

Erfahrenes Mitglied
Hallo zusammen,

ich habe hier ein Problem und benötige Eure Hilfe. ich habe eine Seite auf der ich die Besten Torschützen der laufenden Saison ausgeben möchte.

Ich habe dazu folgende Tabelle:
Code:
-- Tabellenstruktur für Tabelle `saison_tore_0708`
-- 

CREATE TABLE `saison_tore_0708` (
  `id` int(4) NOT NULL auto_increment,
  `spieltag_id_fk` int(4) NOT NULL default '0',
  `scorer_id_fk` int(4) NOT NULL default '0',
  `minute` char(3) collate latin1_general_ci NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci COMMENT='alle Tore in der Saison 07/08' AUTO_INCREMENT=12 ;

-- 
-- Daten für Tabelle `saison_tore_0708`
-- 

INSERT INTO `saison_tore_0708` (`id`, `spieltag_id_fk`, `scorer_id_fk`, `minute`) VALUES 
(1, 1, 3, '28'),
(2, 1, 3, '55'),
(11, 4, 5, '90'),
(10, 4, 4, '90'),
(9, 4, 3, '90');

mit folgenden Daten als Inhalt.
Mein Script das ich bis jetzt habe sieht so aus:
PHP:
...
// count scorer
// wie viele Eintraege
$sqltest = "SELECT count(scorer_id_fk) FROM `saison_tore_0708`";
$counttest=mysql_query($sqltest);
if (!$counttest) {
  die(mysql_error());
}
echo $sqltest."<br>";
$row1=mysql_fetch_array($counttest);
$countcontent=$row1["count(scorer_id_fk)"];
echo "<br>".$countcontent."<br>";


$sqltest1 = "SELECT * FROM `saison_tore_0708`";
$scorerintable=mysql_query($sqltest1);
if (!$scorerintable) {
  die(mysql_error());
}
echo $sqltest1."<br>";

while($row2 = mysql_fetch_assoc($scorerintable)){
  $test[] = $row2['scorer_id_fk'];
}

echo "<br>";
echo count($test);
echo "<br>";
print_r($test);

for($j=0;$j < $countcontent; $j++){
  $sql = "SELECT count(scorer_id_fk) FROM `saison_tore_0708` WHERE scorer_id_fk = {$test[$j]} ORDER BY scorer_id_fk LIMIT 1";
  echo "<br>".$sql."<br>";
  $count=mysql_query($sql);
}
  
  while($row=mysql_fetch_row($count)){
  $wieoft=$row["count(scorer_id_fk)"];
  echo "<br>".$wieoft[2];
  }

  
if (!$count) {
  die(mysql_error());
}
...


Damit bekomme ich diese Bildschirmausgabe:
SELECT count(scorer_id_fk) FROM `saison_tore_0708`

5
SELECT * FROM `saison_tore_0708`

5
Array ( [0] => 3 [1] => 3 [2] => 5 [3] => 4 [4] => 3 )
SELECT count(scorer_id_fk) FROM `saison_tore_0708` WHERE scorer_id_fk = 3 ORDER BY scorer_id_fk LIMIT 1

SELECT count(scorer_id_fk) FROM `saison_tore_0708` WHERE scorer_id_fk = 3 ORDER BY scorer_id_fk LIMIT 1

SELECT count(scorer_id_fk) FROM `saison_tore_0708` WHERE scorer_id_fk = 5 ORDER BY scorer_id_fk LIMIT 1

SELECT count(scorer_id_fk) FROM `saison_tore_0708` WHERE scorer_id_fk = 4 ORDER BY scorer_id_fk LIMIT 1

SELECT count(scorer_id_fk) FROM `saison_tore_0708` WHERE scorer_id_fk = 3 ORDER BY scorer_id_fk LIMIT 1

Ich habe einfach das Problem dass ich jetzt sagen will, im sortierten Array[0] steht der Spieler mit der scorer_id_fk (zufällig 3) der 3 mal getroffen hat. Den er hat 3 Einträge in der oberen Tabelle!

Vielleicht bin ich auch auf dem Holzweg und es geht anderst.
Kann mir bitte jemand helfen?

Vielen Dank und Gruß
Matze
 
Hallo Leute,

denjenigen den es interessert ich habe das Problem mit einem SELECT Befehl erschlagen:
PHP:
$sql = "SELECT COUNT( * ) AS repititions, `scorer_id_fk`
FROM `saison_tore_0708`
GROUP BY `scorer_id_fk`
HAVING repititions > 1";

Gibt mir die Wiederholung (der Einträge) einer Zeile anhand der Spalte `scorer_id_fk` aus.
Das kann jetzt zum Besipiel so aussehen:
Code:
repititions -> 6
scorer_id_fk -> 2

Somit hat der Spieler mit der `scorer_id_fk` = 2 schon 6 mal in der laufenden Saison getroffen.

Viele Grüße
Matze
 
Zurück