Seite 2 von 2

Verfasst: 24.10.2006 19:47
von Miriam
killerbees19 hat geschrieben:Ich will doch nur den SQL-Befehl Count(*) ausführen und darauf wie gewohnt mit der DB-Klasse von phpBB zugreifen...
Ups, da habe ich was falsch verstanden: Ich dachte gewohnt bedeutet, Du machst es desöfteren, so dass Du es gewöhnt bist. *Mein Fehler*

Zu Deinem jetzigen Problem:
Reicht es nicht, wenn Du die Funktionen sql_query() und sql_fetchrow() aus der Klasse sql_db mit den dazugehörigen Variablen (aus der Variablendeklaration) übernimmst?

Verfasst: 24.10.2006 19:56
von Jensemann
Wie Miriam angedeutet hat, es sind für count(*) keine gesonderten Vorkehrungen notwendig.

Ich werde dir also mal den Query erklären, vielleicht wird es dir dann klarer:

SELECT count(*) heisst: Zähle die in der DB vorhandenen Zeilen und gebe mir diese Zahl als Datensatz zurück. mit "as total" vereinfachen wir den Zugriff nur ein wenig, in dem wir MySQL sagen: nenne diesen einen Datensatz "total". Das bedeutet für dich: Das was du zurück bekommst ist ein ganz normaler MySQL Datensatz den du mit einer der diversen mysql_fetch_* Funktionen die dir PHP anbietet auslesen kannst. Das was du hier zurück bekommst, ist im Grunde mal das selbe als würdest du sagen "SELECT username FROM phpbb_users WHERE user_id=4711".

Verfasst: 24.10.2006 20:06
von killerbees19
Ich habe wohl wirklich einen kleinen Fehler gemacht, eigentlich lustig:
Wie ich das erste mal bei meiner eigenen DB-Klasse Coun(*) verwendet habe, habe ich nicht gewusst, dass man "as xxx" schreiben muss, dadurch hat es mit dem Querie auch nicht auf normale Weiße geklappt...

Vor wenigen Tagen habe ich dann ein neues Script gemacht (MOD für phpBB) wo ich es erneut brauchte, nur wusste ich hier bereits, dass ich "as xxx" schreiben muss.

Also eigentlich habe ich mich jetzt wirklich dumm angestellt :oops:
Vielen Dank für Eure nette Hilfe.

Habe es jetzt wirklich normal lösen können:

Code: Alles auswählen

  $sql = "SELECT Count(*) as 'total' FROM ".downcount." ".$like;
    //$result1 = mysql_query($sql);
    //$result = mysql_result($result1,0,0);
    //$result = $db->result($sql);
    $result = $db->execute($sql);
    if (!$result)
    {
      message_die(GENERAL_ERROR, "Error!", "", __line__, __file__, $sql);
    }
    
    $total = $result['1']['total'];

MfG Christian