Anzahl anzeigen lassen

Megaman2044

Lt. Junior Grade
Registriert
Feb. 2005
Beiträge
365
Servus Jungs,

ich bin grade an einem Warscript. Ich will mir anzeigen lassen wieviele Matches unter derjenigen Kategorie ist. Ich habe es mal mit COUNT versucht aber da bekomme ich keine richtite Abfrage hin.

MYSQL Struktur:
PHP:
-- 
-- Tabellenstruktur für Tabelle `mega_matches`
-- 

CREATE TABLE `mega_matches` (
  `id` int(11) NOT NULL auto_increment,
  `catID` int(11) NOT NULL,
  `opponent` varchar(255) collate latin1_general_ci NOT NULL,
  `opponent_hp` varchar(100) collate latin1_general_ci NOT NULL,
  `date` int(11) NOT NULL,
  `xonx` varchar(10) collate latin1_general_ci NOT NULL,
  `maps` varchar(255) collate latin1_general_ci NOT NULL,
  `players` varchar(255) collate latin1_general_ci NOT NULL,
  `description` text collate latin1_general_ci NOT NULL,
  `result1` int(11) NOT NULL,
  `result2` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=16 ;

-- 
-- Daten für Tabelle `mega_matches`
-- 

-- --------------------------------------------------------

-- 
-- Tabellenstruktur für Tabelle `mega_matches_cats`
-- 

CREATE TABLE `mega_matches_cats` (
  `catID` int(11) NOT NULL auto_increment,
  `name` varchar(255) collate latin1_general_ci NOT NULL,
  `url` varchar(255) collate latin1_general_ci NOT NULL,
  PRIMARY KEY  (`catID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=14 ;

-- 
-- Daten für Tabelle `mega_matches_cats`
--

Danke schon mal :)
 
Hey, wie wärs damit. Hier kannst du die jeweilige Einträge in der Spalte zählen lassen. Mit dem zusätzlichen Wert "LIKE" kannst du nach spiezellen Wörter zählen lassen z.B. das er nur die Wörter "Matches" zählen soll. Ansonsten zählt er alle Einträge/Werte in der Spalte.

PHP:
<?
$MysqlServer = mysql_connect("$host", "$user", "$pass") or die (mysql_error());

mysql_select_db($daba, $MysqlServer) or die (mysql_error());

$Result = mysql_query("SELECT * FROM $tabl WHERE kategorie LIKE '???'") or die (mysql_error());

$zaehlen = mysql_num_rows($Result);

print $zaehlen1; ?>

mfg digiTALE
 
Ich müsste nach catID suchen geht das ?

Edit: wenn ich es so habe

PHP:
$hh = mysql_query("SELECT * FROM ".PREFIX."_matches WHERE catID LIKE ".$id."") or die (mysql_error());                   
             $hh1 = mysql_num_rows($hh);

und es kommt raus

Resource id #13

wieso ?
 
Zuletzt bearbeitet:
Megaman2044 schrieb:
Ich müsste nach catID suchen geht das ?

Edit: wenn ich es so habe

PHP:
$hh = mysql_query("SELECT * FROM ".PREFIX."_matches WHERE catID LIKE ".$id."") or die (mysql_error());                   
             $hh1 = mysql_num_rows($hh);

und es kommt raus

Resource id #13

wieso ?


so sollte es gehen

PHP:
$hh = mysql_query("SELECT * FROM mega_matches WHERE catID LIKE '$id'") or die (mysql_error());

Resource id bedeutet das kein Wert übergeben worden ist, oder so ähnlich
 
PHP:
$hh = mysql_query("SELECT * FROM mega_matches WHERE catID LIKE '$id'") or die (mysql_error());                   
             $hh1 = mysql_num_rows($hh);

so gibt es das gleiche aus.
 
Dann kann es eigentlich nur an "$id" liegen. Wie wird die ID übermittelt, per GET oder per POST?

Dann versuch einfach mal anstatt $id => $_GET['id'] oder $_POST['id'].

Das sollte dann funktionieren. aber lass dir trotzdem auf der Seite die $id vorher ausgeben um zu checken ob überhaupt ein Wert übermittelt wird.
 
Die ist schon so definiert so:

PHP:
while($row = mysql_fetch_assoc($result)) 
             { 
             $id=$row['catID'];
             $name=$row['name'];                              
             $url=trim($row['url']);     
             
             $hh = mysql_query("SELECT * FROM mega_matches WHERE catID LIKE '$id'") or die (mysql_error());                   
             $hh1 = mysql_num_rows($hh);
                                     
             if($url != "") $url=$row['url']; else $url="&nbsp";	   
              
             $content .="<tr><td width=\"15px\" class=\"line3\"><input type=\"checkbox\" name=\"categories[]\" value=\"".$id."\"></td>
											   <td width=\"20px\" class=\"line4\">$id</td>
											   <td width=\"235px\" class=\"line4\"><a href=\"index.php?site=matches&cID=$id\">$name</a></td>
											   <td width=\"260px\" class=\"line4\"><a href=\"http://$url\">$url</a></td>
											   <td width=\"50px\" class=\"line4\">$hh1</a></td>";	                                                                    															                                                    
              }
 
Moin

$hh = mysql_query("SELECT * FROM mega_matches WHERE catID LIKE '$id'") or die (mysql_error());
$hh1 = mysql_num_rows($hh);
Wenn du mit den Daten, die du aus der SQL-Abfrage bekommst außer zählen noch irgendwas anderes machen willst oder musst, ist das völlig in Ordnung.

Falls du einfach nur die Anzahl haben willst kannst du auch folgendes SQL-Query verwenden:
PHP:
$hh1 = mysql_query("SELECT count(*) FROM mega_matches WHERE catID LIKE '$id'") or die (mysql_error());
 
Er gibt das gleiche wieder aus:

Resource id #13

was ist daran falsch ?
 
mach es so:

PHP:
$hh = mysql_query("SELECT COUNT(*) FROM mega_matches");
$hh1 = mysql_result($hh, 0, 0);

Das liefert dir jetzt die anzahl der datensätze in `mega_matches`.

Das ganze würde ich übrigens nicht in der while-schleife machen (weil du dann IMMER wieder die datenbank abfragst, sondern nur einmal am anfang des scripts!)
 
Aber ich brauche nur die Anzahl von den datensätzen die die jeweilige ID hat.
 
dann mach halt:

PHP:
$hh = mysql_query("SELECT COUNT(*) FROM mega_matches WHERE id = '$id'");
$hh1 = mysql_result($hh, 0, 0);

da dürfte eigentlich das gewünschte rauskommen..
 
Zurück
Oben