• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

SELECT COUNT

Status
Für weitere Antworten geschlossen.

philipp

Neues Mitglied
jo kurze frage:

kann ich auch die anzahl der verschiedenen werte ermitteln, die sich in einer spalte befinden?

ich hab nämlich ne tabelle mit mannschaften und die sind gruppen zugewiesen. A, B vllt. sogar C

ich brauch jetz ein script, dass pro gruppe eine eigene tabelle erzeugt.

es geht mir nur um diesen befehl.. den rest schaff ich dann schon

kennt den wer?/gibts den?

edit:
habs gefunden ;)
für all die, die es nicht kennen:

SELECT COUNT(DISTICT $spalte)...
 
Werbung:
noch ne frage:
kann es sein, dass man while-schleifen nicht verschachteln darf?
aufgrund eines schlechten tabellenlayouts war ich gezwungen ein script so zu lösen...

mal kurz beschreiben:
tabelle teams(mannschaften sind darin gespeichert)
->teamname
->ID
->gruppe
->spiele
->Punkte
->Tore
->Gegentore
->Bezirk

also und ich muss ein tabellensystem machen. das wollt ich so lösen:

[php:1:f7efd07509]<?php
while ($gruppe = mysql_fetch_array(@mysql_query($sql))) {
$Gruppenname = $gruppe['Gruppenname'];
echo "
<p align=\"center\" class=\"para\">".$Gruppenname."</p>
<table width=\"600px\" align=\"center\" cellspacing=\"0px\" cellpadding=\"0px\" class=\"datenblatt\">
<tr>
<th width=\"300px\" align=\"left\">

Team</p></td> \n
<th width=\"50px\" align=\"center\">

Gruppe</p></td> \n
<th width=\"50px\" align=\"center\">

Spiele</p></td> \n
<th width=\"50px\" align=\"center\">

Tore</p></td> \n
<th width=\"100px\" align=\"center\">

Gegentore</p></td> \n
<th width=\"50px\" align=\"center\">

Punkte</p></td> \n
</tr> \n";
$sql2 = "SELECT TeamName, Tore, GTore, PKT, Gruppe, Spiele WHERE Gruppe='".$Gruppenname."'";
while ($rows = mysql_fetch_array(@mysql_query($sql2))) {
$teamName = $rows['TeamName'];
$Tore = $rows['Tore'];
$GTore = $rows['GTore'];
$PKT = $rows['PKT'];
$gruppe = $rows['Gruppe'];
$spiele = $rows['Spiele'];
echo "
<tr> \n
<td width=\"300px\" align=\"left\">

$teamName</p></td> \n
<td width=\"50px\" align=\"center\">

$gruppe</p></td> \n
<td width=\"50px\" align=\"center\">

$spiele</p></td> \n
<td width=\"50px\" align=\"center\">

$Tore</p></td> \n
<td width=\"100px\" align=\"center\">

$GTore</p></td> \n
<td width=\"50px\" align=\"center\">

$PKT</p></td> \n
</tr> \n"; }
echo "</table> \n";
}
?>[/php:1:f7efd07509]

der ober teil is vielleicht auch interessant, also hier das ganze:

[php:1:f7efd07509]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


<head>
<title>Bezirke</title>
<meta name="Author" content="L2Agentur GmbH. -Philipp Wrann" />
<meta name="Owner" content="L2Agentur GmbH" />
<meta name="Description" content="Der Interspar Juniorcup 2006 ist ein Fussballturnier fuer die kleinen Kicker &Ouml;sterreichs." />
<meta name="Keywords" content="Interspar Juniorcup, Juniorcup, Fussball, nachwuchsfussball, fussballturnier" />
<meta name="language" content="Deutsch" />
<link href="css/locs.css" rel="stylesheet" type="text/css" />

</head>

<body>
<?php
$loc = $_GET['loc'];
echo "<h1>$loc</h1>";
include 'connect.inc.php';
//LocID herausfinden
$sql = "SELECT ID FROM locs WHERE Bezirk = '".$loc."' LIMIT 1";
$res = mysql_fetch_array(@mysql_query($sql));
$locID = $res['ID'];
//Anzahl der Gruppen herausfinden
$sql = "SELECT COUNT(DISTINCT Gruppe) AS anzahlGruppen FROM teams WHERE locID = '".$locID."'";
$res = mysql_fetch_array(@mysql_query($sql));
$anzahlGruppen = $res['anzahlGruppen'];
//Gruppenwerte herausfinden
$sql = "SELECT DISTINCT Gruppe AS Gruppenname FROM teams WHERE locID = '".$locID."'";
while ($gruppe = mysql_fetch_array(@mysql_query($sql))) {
$Gruppenname = $gruppe['Gruppenname'];
echo "
<p align=\"center\" class=\"para\">".$Gruppenname."</p>
<table width=\"600px\" align=\"center\" cellspacing=\"0px\" cellpadding=\"0px\" class=\"datenblatt\">
<tr>
<th width=\"300px\" align=\"left\">

Team</p></td> \n
<th width=\"50px\" align=\"center\">

Gruppe</p></td> \n
<th width=\"50px\" align=\"center\">

Spiele</p></td> \n
<th width=\"50px\" align=\"center\">

Tore</p></td> \n
<th width=\"100px\" align=\"center\">

Gegentore</p></td> \n
<th width=\"50px\" align=\"center\">

Punkte</p></td> \n
</tr> \n";
$sql2 = "SELECT TeamName, Tore, GTore, PKT, Gruppe, Spiele WHERE Gruppe='".$Gruppenname."'";
while ($rows = mysql_fetch_array(@mysql_query($sql2))) {
$teamName = $rows['TeamName'];
$Tore = $rows['Tore'];
$GTore = $rows['GTore'];
$PKT = $rows['PKT'];
$gruppe = $rows['Gruppe'];
$spiele = $rows['Spiele'];
echo "
<tr> \n
<td width=\"300px\" align=\"left\">

$teamName</p></td> \n
<td width=\"50px\" align=\"center\">

$gruppe</p></td> \n
<td width=\"50px\" align=\"center\">

$spiele</p></td> \n
<td width=\"50px\" align=\"center\">

$Tore</p></td> \n
<td width=\"100px\" align=\"center\">

$GTore</p></td> \n
<td width=\"50px\" align=\"center\">

$PKT</p></td> \n
</tr> \n"; }
echo "</table> \n";
}
?>
</body>
</html>
[/php:1:f7efd07509]

btw: "anzahl der gruppen herausfinden" is nun doch umsonst

edit: einen sql-fehler hab ich schon gefunden und ausgebessert(hab FROM vergessen :p ) aber mir werden unbegrenzt viele tabellen berechnet...

edit2: das problem liegt definitiv in der ersten whileschleife..
 
Werbung:
damit ihr euch das nicht vollkommen ansehen müsst...

der fehler ist hier drinn:(while schleife ist endlos)
Code:
$sql3 = "SELECT DISTINCT Gruppe AS Gruppenname FROM teams WHERE locID = '".$locID."'";
while ($gruppe = mysql_fetch_array(@mysql_query($sql3))) {...}

EDIT:
PROBLEM GELÖST

hab aus dem stück oben das gemacht:
Code:
$sql3 = "SELECT DISTINCT Gruppe AS Gruppenname FROM teams WHERE locID = '".$locID."'";
$res3 = @mysql_query($sql3);
while ($gruppe = mysql_fetch_array($res3)) {
 
bei der 1. variante, die du versucht hast, hätte er ja immer ne neue abfrage gemacht und den ersten eintrag genommen, also wäre es lendlos...
 
jetzt wird einiges klar, danke!

edit:

kann ich jetz irgendwie machen, dass die ersten 2 datensätze in der 2. while schleife anders formatiert sind?

das wird schwer.... manchmal sind 5 teams in einer gruppe, manchmal 4.

edit: geschafft
einfach for die while schleife ein
$id = 0
und dann in der while schleife in die tr ein
++$id

dann is die erste zeile 1, die 2. zeile 2, die dritte zeile 3....

ging aber leicht :D
 
Werbung:
kleiner tip: bei deiner ausgabe wuerde ich mit heredoc arbeiten und vorher die reihen als objekte abrufen
also statt
[php:1:db3763410a]
<?php
while ($rows = mysql_fetch_array(@mysql_query($sql2))) {
$teamName = $rows['TeamName'];
$Tore = $rows['Tore'];
$GTore = $rows['GTore'];
$PKT = $rows['PKT'];
$gruppe = $rows['Gruppe'];
$spiele = $rows['Spiele'];
echo "
<tr> \n
<td width=\"300px\" align=\"left\">

$TeamName</p></td> \n
<td width=\"50px\" align=\"center\">

$Gruppe</p></td> \n
<td width=\"50px\" align=\"center\">

$spiele</p></td> \n
<td width=\"50px\" align=\"center\">

$Tore</p></td> \n
<td width=\"100px\" align=\"center\">

$GTore</p></td> \n
<td width=\"50px\" align=\"center\">

$PKT</p></td> \n
</tr> \n"; }
echo "</table> \n";
[/php:1:db3763410a]
so:
[php:1:db3763410a]
<?php
$result = @mysql_query($sql2)
while ($rows = mysql_fetch_object($result)) {
echo <<<TABLE
<tr>
<td width="300px" align="left">

$rows->TeamName</p></td>
<td width="50px" align="center">

$rows->Gruppe</p></td>
<td width="50px" align="center">

$rows->Spiele</p></td>
<td width="50px" align="center">

$rows->Tore</p></td>
<td width="100px" align="center">

$rows->GTore</p></td>
<td width="50px" align="center">

$rows->PKT</p></td>
</tr>
TABLE;
}
echo "</table> \n";
[/php:1:db3763410a]
 
der aufwand ist kleiner da weniger code und das script ist schneller da weniger unnoetige variablen deklariert werden
ausserdem ist es sauberer und besser erweiterbar
ps: nein das ist nicht das gleiche - informiere dich einmal was ein objekt in php ist.
 
Werbung:
mal ne frage die etwas OT is... ich hab das hier:
[php:1:51abe00281]<?php
$cssclass = 50;
while ($rows = mysql_fetch_array($res2)) {
$teamName = $rows['TeamName'];
$Tore = $rows['Tore'];
$GTore = $rows['GTore'];
$PKT = $rows['PKT'];
$spiele = $rows['Spiele'];
echo "
<tr> \n
<td width=\"300px\" align=\"left\" class=\"".($cssclass+1)."\">

$teamName</p></td> \n
<td width=\"50px\" align=\"center\" class=\"".($cssclass+1)."\">

$spiele</p></td> \n
<td width=\"50px\" align=\"center\" class=\"".($cssclass+1)."\">

$Tore</p></td> \n
<td width=\"100px\" align=\"center\" class=\"".($cssclass+1)."\">

$GTore</p></td> \n
<td width=\"50px\" align=\"center\" class=\"".++$cssclass."\">

$PKT</p></td> \n
</tr> \n"; }
echo "</table> \n";
}
?>[/php:1:51abe00281]

nun steht im quelltext genau das was ich wollte...

im css mach ich also so:

.51 td
{
background-color: #990000;
}
.52 td
{
background-color: #CC0000;
}

aber nix passiert ^^
 
aber variablen hast du genau gleich viele (das kopieren bei philipps code ist ja sinnlos...)
in einem monat beginne ich mit java.. dann hab ich genug zeit, um oop zu erlernen und werde mich evtl auch mal in php 5.x einarbeiten.. :D
 
das du gleich viele variablen hast ha nix damit zu tuen das der aufwand kleiner ist
vergleiche doch mal beide scripte :roll: (ja auc ohne das mit dem kopieren)
 
Werbung:
ja ich habs schon gemerkt... aber jeder hat sein stil und ich würde es (bis auf das kopieren) auch mit philipps methode machen; ausser noch echo '' statt echo "" zu machen...
 
aber ich muss schon zugeben, dass ich seeehr lange nur mit echo "" gearbeitet habe, und ich darum warscheinlich öfters als andere php "schliesse"...
ah ja noch zu php 5.x und oop... ich würde sowieso noch ein paar mt warten, bis mehr server php 5.x unterstützen...
 
Werbung:
mein formatierungsproblem hab ich gelöst.

heredoc hätt ich da verwenden können, jo stimmt... naja vielleicht pass ichs mal an, aber jetz gehts ja endlich alles

ich danke euch allen... ihr habt mir sehr viel geholfen
 
Fätzminator schrieb:
aber ich muss schon zugeben, dass ich seeehr lange nur mit echo "" gearbeitet habe, und ich darum warscheinlich öfters als andere php "schliesse"...
ah ja noch zu php 5.x und oop... ich würde sowieso noch ein paar mt warten, bis mehr server php 5.x unterstützen...
ich entwickle eigentlich momentan nur fuer meinen eigenen server ( quasi hausgebrauch) - also kann mir das ziehmlich egal sein :wink:
(natuerlich schon 5.1.2 mit ungefaehr 50 unsinnigen erweiterungen ) 8)
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben