[erledigt] While Schleife.. (geht schnell)

VIPbanner_de

www.VIPbanner.de
ID: 72674
L
1 Mai 2006
2.598
150
entweder bin ich jetzt verblödet oder steh heute wirklich nur aufm schlauch:

PHP:
$allpoints=$db->query_first("SELECT pointscounter FROM bb".$n."_users");
$allpoints = $allpoints[0];
while ($myrow = mysql_fetch_row($allpoints)) {
$allpointsausgabe = $allpoints + $allpoints;
};

wo is der fehler...?
 
Zuletzt bearbeitet:
PHP:
$allpoints=$db->query_first("SELECT pointscounter FROM bb".$n."_users");
while($myrow = mysql_fetch_row($allpoints)) 
{
  $allpointsausgabe += $myrow[0];
}
 
PHP:
$allpoints=$db->query_first("SELECT pointscounter FROM bb".$n."_users");
while($myrow = mysql_fetch_row($allpoints)) 
{
  $allpointsausgabe += $myrow[0];
}

Gleicher Fehler wie bei mir:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result

Ich will das der von allen Usern aus der Tabelle bb2_users den pointcounter ausliest und die gesamtpoints aller user usgibt.
 
Liegt es evtl. daran
in deinem Post pointcounter
in der query pointscounter?

*edit
Lass doch mal ein mysql_error(); sprechen.
 
wo is der fehler...?
Oh Mensch, wenn du eine Fehlermeldung bekommst, solltest du die auch gleich dazu schreiben..

Der Fehler sagt dir, dass das was du aus dem Objekt $db bekommst, kein MySQL Ergebnis ist. Um welche Klasse es sich bei diesem Objekt handelt, kann aber niemand ohne Glaskugel riechen, also solltest du mal die Methode query_first() oder gleich die komplette Klasse dieser Methode hier reinschreiben..

@strolch00: Ich glaube nicht, dass es an der DB Abfrage selbst liegt, denn dieser Fehler würde bei einem leeren Ergebnis nicht auftauchen
 
Sorry da komm ich nicht mit..
Kannst du mal mehr aus dem Code holen oder schreiben was du überhaubt machen willst?
 
@strolch00: Ich glaube nicht, dass es an der DB Abfrage selbst liegt, denn dieser Fehler würde bei einem leeren Ergebnis nicht auftauchen[/QUOTE]

steh ich auf dm Schlauch??? Du meinst doch auch diesen fehler oder
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result
 
Allgemein kannste das Codestück eh vergessen und den ganzen Bereich abkürzen, in dem Du folgendes Query für Dich anpasst:
Code:
SELECT SUM(foo)
FROM table
Wozu alles in PHP aufaddieren, wenn Du den Wert schon direkt aus der DB lesen kannst...
 
ich möchte für das wwb2 ein neue ausgabe machen. Und zwar einen Punktecounter der bei jedem user schaut wieviele dieser hat und die gesamtpunkte dann ausgibt. Mehr Code dazu habe ich nicht, da ich vorab die tabellen angelegt habe, Standartwerte für diese festgelegt habe einigen usern punkte für meine testzwecke gutgeschrieben habe und jetzt möchte ich erst die ausgabe testen.

der oeben gepostet code ist alles was ich derzeit habe. es ist eigendlich ein ganz einfaches auslesen mit einer while schleife. Ich habe für das wbb2 ein hmportal und wollte dann das Ergebnis in einer hmbox ausgeben lassen.

Hier mal die ganze datei:

PHP:
<?
if(!(@hmp_check())) exit();
//
// HM-Portal 3.1
// box_stats.php
// Statistik
//

eval("print(\"".$hm_boxhead_tpl."\");");

// Woltlab stats
$stats=$db->query_first("SELECT s.*, u.username FROM bb".$n."_stats s 
                                                LEFT JOIN bb".$n."_users u ON (u.userid = s.lastuserid)");

$newestuser = htmlconverter($stats['username']);
$members    = $stats['usercount'];
$threads    = $stats['threadcount'];
$posts      = $stats['postcount'];


$newestuser = "<a href=\"profile.php?userid=$stats[lastuserid]{$SID_ARG_2ND}\">$newestuser</a>";
$foren=$db->query_first("SELECT COUNT(*) AS foren, MAX(parentid) AS parentid FROM bb".$n."_boards WHERE parentid <> 1");
$foren = $foren[0];
$kategorien=$db->query_first("SELECT COUNT(*) AS kategorie, MAX(parentid) AS parentid FROM bb".$n."_boards WHERE parentid = 0");
$kategorien = $kategorien[0];
$waiting=$db->query_first("SELECT COUNT(*) AS inaktiv, MAX(userid) AS userid FROM bb".$n."_users WHERE activation <> 1");
$waiting = $waiting[0];
$gesperrt=$db->query_first("SELECT COUNT(*) AS blocked, MAX(userid) AS userid FROM bb".$n."_users WHERE blocked = 1");
$gesperrt = $gesperrt[0];
$threadsclosed=$db->query_first("SELECT COUNT(*) AS close, MAX(threadid) AS threadid FROM bb".$n."_threads WHERE closed = 1");
$threadsclosed = $threadsclosed[0];
$umfragen=$db->query_first("SELECT COUNT(*) AS polls, MAX(pollid) AS pollid FROM bb".$n."_polls");
$umfragen = $umfragen[0];
if ($wbbuserdata['userid'] == 0) {
  // Gast
  eval ("\$lang->items['LANG_HMPORTAL_PERS_GWELC'] = \"".$lang->get4eval("LANG_HMPORTAL_PERS_GWELC")."\";");
  eval("\$mboxhtml .= \"".$tpl->get("hm_box_pers_guest")."\";");

} else {
  // User

  $avatarid = $wbbuserdata['avatarid'];

  $chatpoints   = floor($wbbuserdata['chatpoints']);
  $usersms   = floor($wbbuserdata['smscounter']);
  $usersmscredits   = floor($wbbuserdata['sms_credits']);
   if ($usersmscredits > 0){
   $usersmscreditsausgabe = "<tr>
<td width=\"60%\" class=\"tableb\" align=\"left\" ><span class=\"smallfont\"><i><font color=\"#CCFF33\">Free-SMS übrig:</font></i></span></td>
<td class=\"tablea\" align=\"center\" colspan=\"9\"><span class=\"smallfont\"><font color=\"#CCFF33\"><b>$usersmscredits</b></font></span></td>
</tr>";
}
  $coins   = floor($wbbuserdata['guthaben']);
  $actdate   = date($wbbuserdata['dateformat'],$wbbuserdata['lastvisit']);
  $acttime   = date($wbbuserdata['timeformat'],$wbbuserdata['lastvisit']);
  $activtime = date($wbbuserdata['timeformat'],$wbbuserdata['lastactivity']);
  $regdate   = date($wbbuserdata['dateformat'],$wbbuserdata['regdate']);
  $datenow   = date($wbbuserdata['dateformat']);

  $username = htmlconverter($wbbuserdata['username']);

  $rankrow = $db->query_first("SELECT ranktitle, rankimages FROM bb".$n."_ranks WHERE rankid=".$wbbuserdata['rankid']);
  $rankimages = formatRI($rankrow['rankimages']);

  if ($wbbuserdata['title']) 
    $ranktitle = htmlconverter($wbbuserdata['title']);
  else 
    $ranktitle = getlangvar($rankrow['ranktitle'], $lang);
    
  if ($avatarid) {
    list($avaext,$avawidth,$avaheight) = $db->query_first("SELECT avatarextension, width, height FROM bb".$n."_avatars WHERE avatarid='$avatarid'");
  }
  if($wbbuserdata['can_use_pms']) {
    // check PM inbox 

    if (isset($wbbuserdata['pminboxcount'])) {
      // wbb 2.3 or higher
      $counttotal  = $wbbuserdata['pminboxcount'];
      $countunread = $wbbuserdata['pmunreadcount'];
      $countnew    = $wbbuserdata['pmnewcount'];
    } else {
      // up to wbb 2.2  
      $counttotal=0; $countunread=0; $countnew=0;
      $result = $db->query("SELECT view, sendtime FROM bb".$n."_privatemessage WHERE deletepm <> 1 AND recipientid = '$wbbuserdata[userid]'");
      while($row=$db->fetch_array($result)) {
        $counttotal++;
        if($row['view']==0) {
          $countunread++;
          if($row['sendtime']>$wbbuserdata['lastvisit']) $countnew++;
        }
      }
    }  
  }

  // if user is moderator, check for threads and posts to moderate (zum Freischalten)
  $boardids="";
  $modthreadcount = 0;
  if (checkAdminPermissions("a_can_threads_moderate",0)) {
    // is super mod?
    if($wbbuserdata['m_is_supermod']==0) {
      $boardids="";
      $result=$db->query("SELECT boardid FROM bb".$n."_moderators WHERE userid='".$wbbuserdata['userid']."'");
      while($row=$db->fetch_array($result))	$boardids .= ",".$row['boardid'];
     
      list($modthreadcount)=$db->query_first("SELECT count(threadid) FROM bb".$n."_threads WHERE visible=0 AND boardid IN (0".$boardids.") ORDER BY starttime DESC");	
    }	
    else list($modthreadcount)=$db->query_first("SELECT count(threadid) FROM bb".$n."_threads WHERE visible=0 ORDER BY starttime DESC");	
  }  
 
  }

eval("print(\"".$tpl->get("hm_box_stats")."\");");

eval("print(\"".$hm_boxtail_tpl."\");");
?>
 
okay nun habe ich es selber gelöst:


PHP:
$resultx=$db->query("SELECT pointscounter FROM bb".$n."_users");
      while($rowx=$db->fetch_array($resultx))	$pointscounter = ($rowx['pointscounter']+$pointscounter);

Danke trotzdem allen!