Zum Inhalt springen

Einfache Datenbankabfrage

Erstellt am 31. Januar 2007 · 6 Antworten · letzte Antwort am 5. Februar 2007

Tags: Frage

bball ·

hallo,

wollte folgenden sql-query "typo3" freundlich machen:

standard

$query = "SELECT COUNT(ap-status) FROM aa_tagungen WHERE id= ".$_GET[tid]." GROUP BY ap-status"

typo3

$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
  'COUNT(ap-status)', #felder
  'aa_tagungen',  #from
  'id= '.$_GET[tid].'', #where
  $groupby='ap-status', #group
  '', #order
  ''  #limit
);

$l = mysql_fetch_array($res);

leider bekomme ich immer die ausgabe

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/xxx.php on line 20

gibt es bei dem typo3 query noch etwas zu beachten?

thanx
bball

bball ·

danke,

habs angepasst aber das problem bleibt....?

$res=$GLOBALS['TYPO3_DB']->exec_SELECTquery(
  'COUNT(ap-status)', 		//felder
  'aa_tagungen',  		//from
  'id= '.$_GET[tid].'', 	//where
  'ap-status', 			//group
  '', 				//order
  ''  				//limit
);

$l = mysql_fetch_array($res);

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/xxx.php on line 13

thanx
bball

just2b ·

Hallo,

im 1. Parameter kommen nur die Felder rein und kein COUNT, deswegen wirds zB mit '*' funktionieren

georg

steffenk ·

Bei diesen Problemen hilft es, sich die erzeugte Query im Reinformat anzuschauen:

t3lib_div::debug($GLOBALS['TYPO3_DB']->SELECTquery(
  'COUNT(ap-status)',     //felder
  'aa_tagungen',              //from
  'id= '.$_GET[tid].'',         //where
  'ap-status',    //group
  '',         //order
  ''          //limit
));

PS // und # sind beides gültige kommentarzeichen.

bball ·

danke für euer feedback. das problem lag am feldnamen (ap-status), dieser wird als minus von mysql interpretiert...

wie bekomme ich dann einen COUNT hin, wenn das nicht im feld erlaubt ist?

thanx
bball

steffenk ·

dafür gibts Konventionen.

Bei count reicht ein count(*), das Feld musst Du mit Backticks angeben:

`ap-status`