ilch Forum » Allgemein » HTML, PHP, SQL,... » Text aus einem Feld zur Zahl im anderen

Geschlossen
  1. #1
    User Pic
    fitzfuchs gelöschter User
    Hallo. Ich bastele derzeit an dem Raidplaner für Ilch herum und ich möchte folgendes einbauen. (Um meine Frage zu beantworten müsst ihr nicht den Raidplaner kennen, da es sich um ein Php bzw. Mysql Problem handelt was ich nicht gelößt bekomme.)


    Wenn der User sich mit seinem Charakter anmeldet, soll in einem Feld meiner Mysql Tabelle der Wert ausgetauscht werden. Dann kann ich mir anzeigen lassen wieviele von welcher Klasse angemeldet sind.

    Ich geh mal weiter ins Detail:
    In der Tabelle prefix_wowchars gibt es das Feld klasse indem die Klassen stehen (Magier, Druide usw.)
    Jede Klasse hat eine Zahl von mir zugewiesen bekommen. Der Druide hat die 1, Magier 2, Jaeger 3 usw...
    In der Tabelle prefix_RaidMember habe ich auch ein Feld klasse eingebaut, was die Zahlen beinhaltet, die ich auslesen möchte.

    Wenn jetzt ausgeführt wird, das der User sich mit seinem Char anmeldet, soll der Text Druide (aus dem klasse Feld in prefix_wowchars) ausgelesen und (in dem klasse Feld in prefix_RaidMember) auf den Wert 1 umgewandelt werden. Bei Jaeger in die 2, Magier die 3 usw.


    Diesen Brocken gibt es noch zu überwinden. Dann wäre es vollbracht. Kann mir da jemand helfen?
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    SLJ Hall Of Fame
    Registriert seit
    18.05.2004
    Beiträge
    15.492
    Beitragswertungen
    3 Beitragspunkte
    ZitatZitat geschrieben von fitzfuchs


    Wenn der User sich mit seinem Charakter anmeldet, soll in einem Feld meiner Mysql Tabelle der Wert ausgetauscht werden. Dann kann ich mir anzeigen lassen wieviele von welcher Klasse angemeldet sind.


    Kannst ja auch über einen count machen,... zwinker
    externer Link
    Ilch 1.0.4 PHP 7.0 und PDO Fähig na klar lächeln
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    fitzfuchs gelöschter User
    Ja das Problem ist das keiner standartmäßig eingebaut ist.
    Nur für insgesamte Anmeldungen. Die Klasse wird nicht übertragen bei der Anmeldung. Das ist ja mein Problem :-(

    Es gibt eine extra Tabelle names: prefix_RaidMember.
    Einträge darin werden beim anmelden erstellt diesen beinhalten Daten wie z.B. raidID, userID, zusage(angemeldet oder nicht) usw... nur eben keine Klasse.
    Dann sucht sich der "Raid" aus der prefix_RaidMember Tabelle alle Einträge mit seiner raidID raus und dann kann ich die Daten für den einzelnen Raid auslesen bzw. zählen lassen. Ein bisschen umständlich programmiert. Aber so ist es nun mal gemacht worden, ich habs mir nicht ausgesucht ^^

    Welche Klasse der Charakter hat steht nur in der prefix_wowchars drin. Deswegen möchte ich gerne die Daten in die andere Tabelle transferieren. Steht ja oben wie ichs machen möcht, nur nicht hinbekomme...
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    fitzfuchs gelöschter User
    Ich poste mal die raid.php mit der ich mich die ganze Zeit rumschlage. Vielleicht hat man dann nen besseren Überblick:

    <?php
    #   Copyright by: Benjamin Brauns
    #   Support: www.Manticors-Thorn.de
    
    
    defined ('main') or die ( 'no direct access' );
    $akttime = date('Y-m-d');
    $akttime1 = date('d.m.Y');
    $gastRight = "-1";
    
    // was kommt als n?chstes nach Datum / OFFEN
    if ( $menu->get(2) == '' OR $menu->getA(2) == 'p' ) {
    	$title = $allgAr['title'].' :: Raids';
    	$hmenu = 'Raids';
    	$design = new design ( $title , $hmenu);
    	$design->header();
    
    	$ergOffen = db_query('SELECT COUNT(id) FROM `prefix_Raid` WHERE status = "1"');
    	$anzOffen = db_result($ergOffen,0);
    	$ergBeendet = db_query('SELECT COUNT(id) FROM `prefix_Raid` WHERE status = "2"');
    	$anzBeendet = db_result($ergBeendet,0);
    	$ergAbgesagt = db_query('SELECT COUNT(id) FROM `prefix_Raid` WHERE status = "3"');
    	$anzAbgesagt = db_result($ergAbgesagt,0);
    	
    	$tpl = new tpl ( '/raid/raid.htm' );
    	$tpl->set_ar_out ( array('OFFEN' => $anzOffen, 'BEENDET' => $anzBeendet, 'ABGESAGT' => $anzAbgesagt) , 0 );
    
    	$class = '';
    	$erg = db_query("SELECT DATE_FORMAT(datime,'%d.%m.%Y - %H:%i') as time,
    									instanz, 
    									leader,
    									groese, 
    									datime,
    									status,
    									prefix_Raid.id as Rid, 
    									prefix_Raid.uid,
    									prefix_RaidInstanz.RIID as Iid, 
    									prefix_RaidInstanz.name as Iname,
    									prefix_RaidInstanz.pix
    							FROM prefix_Raid 
    							LEFT JOIN prefix_RaidInstanz ON prefix_RaidInstanz.RIID = prefix_Raid.instanz
    							ORDER BY datime DESC,status");
    	if ( db_num_rows ( $erg ) == 0 ) {
    		echo '<tr class="Cmite"><td colspan="4"><strong><font color="#FF4242">kein Raid vorhanden</font></strong></td></tr>';
    	} else {
    		while ($row = db_fetch_assoc($erg) ) {
    			if ( $class == 'Cmite' ) { $class = 'Cnorm'; } else { $class = 'Cmite'; }
    			$row['pix'];
    			$row['instanz'];
    			$row['groese'];
    			$row['Iname'];
    						
    #--------Anmeldungen Pro Raid Auf der ?bersichts seite
    	$ergANM = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE zusage = "1" AND rid = "'.$row['Rid'].'" ');
    	$anzANM = db_result($ergANM,0);	//print_r ($anzANM);
    	#$row['Evon'] = $anzANM['0']." / ";
    	
    	$row['Evon'] = $anzANM." / ";
    	#Print_r ($anzANM);	// DEBUG
    #--------
    							
    			switch ( $row['status']) {
    				case '1' :	$row['status'] = '<font color="#009900">OFFEN</font>';	break;
    				case '2' :	$row['status'] = '<font color="#FF0000">BEENDET</font>';	break;
    				case '3' :	$row['status'] = '<font color="#FFEE00">ABGESAGT</font>';	break;
    				}
    			$row['class'] = $class;
    			
    			$tpl->set_ar_out($row,1);
    		}
    	}
    	$tpl->out(2);
    	
    
    	// Raid Details //
    	//--------------//
    	
      $design->footer();
      
    } elseif ( is_numeric($menu->get(2)) ) {
    	$_GET['mehr'] = escape($menu->get(2),'integer');
    
    						$abf = "SELECT 
    									DATE_FORMAT(datime,'%d.%m.%Y') as datum,
    									DATE_FORMAT(datime,'%H:%i') as zeit,
    									DATE_FORMAT(start,'%H:%i') as start,
    									DATE_FORMAT(end,'%H:%i') as end,
    									instanz, 
    									leader,
    									groese, 
    									datime,
    									status,
    									loottyp,
    									groese,
    									treff,
    									bosse,
    									level,
    									text,
    									uid,
    									prefix_RaidInstanz.pix,
    									prefix_Raid.id as Rid, 
    									prefix_RaidInstanz.RIID as Iid, 
    									prefix_RaidInstanz.name as Iname,
    									prefix_RaidInstanz.pix
    								FROM prefix_Raid LEFT 
    								JOIN prefix_RaidInstanz ON prefix_RaidInstanz.RIID = prefix_Raid.instanz 
    								WHERE prefix_Raid.id = '".$_GET['mehr']."'";
    					$erg = @db_query($abf);						
    									
    	  #db_check_erg ($erg);
      
      $row = db_fetch_assoc($erg);
    				// Filtern von html code
    				$row['text'] = bbcode($row['text']);   
    				//
    $title = $allgAr['title'].' :: Raids';
    $hmenu = '<a href="?raid" class="smalfont">Raids</a><b> &raquo; </b>Deteils';
    $design = new design ( $title , $hmenu );	// SOLL
    $design->header();
    $tpl = new tpl ('/raid/raid_next');
    
    	$ergANM = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE zusage = "1" AND rid = "'.$row['Rid'].'" ');
    	$anzANM = db_result($ergANM,0);	//print_r ($anzANM);
    	#$row['Evon'] = $anzANM['0']." / ";
    	
    	$row['Evon'] = $anzANM." / ";
    	#Print_r ($anzANM);	// DEBUG	
    	$ergDruide = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "1" AND rid = "'.$row['Rid'].'" ');
    	$anzDruide = db_result($ergDruide,0);	//print_r ($anzANM);
    	$row['druide'] = $anzDruide."";
    	$ergJaeger = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "2" AND rid = "'.$row['Rid'].'" ');
    	$anzJaeger = db_result($ergJaeger,0);	//print_r ($anzANM);
    	$row['jaeger'] = $anzJaeger."";
    	$ergMagier = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "3" AND rid = "'.$row['Rid'].'" ');
    	$anzMagier = db_result($ergMagier,0);	//print_r ($anzANM);
    	$row['magier'] = $anzMagier."";
    	$ergPriester = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "4" AND rid = "'.$row['Rid'].'" ');
    	$anzPriester = db_result($ergPriester,0);	//print_r ($anzANM);
    	$row['priester'] = $anzPriester."";
    	$ergSchurke = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "5" AND rid = "'.$row['Rid'].'" ');
    	$anzSchurke = db_result($ergSchurke,0);	//print_r ($anzANM);
    	$row['schurke'] = $anzSchurke."";
    	$ergHexenmeister = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "6" AND rid = "'.$row['Rid'].'" ');
    	$anzHexenmeister = db_result($ergHexenmeister,0);	//print_r ($anzANM);
    	$row['hexenmeister'] = $anzHexenmeister."";	
    	$ergKrieger = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "7" AND rid = "'.$row['Rid'].'" ');
    	$anzKrieger = db_result($ergKrieger,0);	//print_r ($anzANM);
    	$row['krieger'] = $anzKrieger."";
    	$ergPaladin = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "8" AND rid = "'.$row['Rid'].'" ');
    	$anzPaladin = db_result($ergPaladin,0);	//print_r ($anzANM);
    	$row['paladin'] = $anzPaladin."";
    	$ergSchamane = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "9" AND rid = "'.$row['Rid'].'" ');
    	$anzSchamane = db_result($ergSchamane,0);	//print_r ($anzANM);
    	$row['schamane'] = $anzSchamane."";
    			
    		#-------
    		switch ( $row['loottyp'] ) {
    				case '0' :	$row['loottyp'] = ''; break;
    				case '1' :	$row['loottyp'] = 'Pl?ndern als Gruppe';	break;
    				case '2' :	$row['loottyp'] = 'Pl?ndermeister';	break;
    				case '3' :	$row['loottyp'] = 'Bedarf vor Gier';	break;
    				case '4' :	$row['loottyp'] = 'DKP';	break;
    				case '5' :	$row['loottyp'] = 'DKP/W?rfeln';	break;}
    		#-------
    		
    		// rechte check Locked Anzeige f?r G?ste!
    		#if ( $_SESSION['authright'] <= $allgAr['raid_anz_gast'] ) {	F?R DB CONFIG WERT
    		if ( $_SESSION['authright'] <= $gastRight ) {	// ab user level  fixer wert
    			$row['treff']=$row['treff'];
    			$row['bosse']=$row['bosse'];
    			$row['loottyp']=$row['loottyp'];
    			$row['leader']=$row['leader'];
    			$row['text']=$row['text'];
    		} else{
    			$row['treff']='locked';
    			$row['bosse']='locked';
    			$row['loottyp']='locked';
    			$row['text']='locked';
    			$row['leader']='locked';
    			
    		}	
    		
    		// editrecht
    		$reditL = $allgAr['raid-edit-L'];
    		if ( $_SESSION['authid'] == $row['uid'] OR $_SESSION['authright'] <= $allgAr['raid-edit-L'] ) {
    				$row['rechtD'] = "";
    				$row['rechtE'] = '<a href="admin.php?raid-show-'.$row['Rid'].'"><img src="include/images/icons/edit.gif" alt="Edit" border="0" title="Edit" /></a> ';
    			} else {
    				$row['rechtD'] = "";
    				$row['rechtE'] = "";
    			}
    				
    		$tpl->set_ar_out($row,0);  // Raid Info Anzeige!
    	// END
    
    			// checke zusagen / absagen / ersatz 
    	  		$zusagen = db_count_query("SELECT COUNT(zusage) FROM prefix_RaidMember WHERE (zusage = '1' AND (eingeteilt = '0' OR eingeteilt = '1' OR eingeteilt = '4')) AND rid = ".$_GET['mehr']);
    			$ersatz = db_count_query("SELECT COUNT(zusage) FROM prefix_RaidMember WHERE (zusage = '2' AND (eingeteilt = '0' OR eingeteilt = '2')) AND rid = ".$_GET['mehr']);
    			$absagen = db_count_query("SELECT COUNT(zusage) FROM prefix_RaidMember WHERE (zusage = '3' AND (eingeteilt = '0' OR eingeteilt = '3')) AND rid = ".$_GET['mehr']);
    			$aout1 = array (
    					'zusagen' => $zusagen,
    					'ersatz' => $ersatz,
    					'absagen' => $absagen,
    					'id' => $_GET['mehr']
    				);
    			
    				$tpl->set_ar_out($aout1,1);
    			// END
    					
    		$ergU = db_query("SELECT * FROM prefix_RaidMember WHERE rid = '".$_GET['mehr']."' AND uid = '".$_SESSION['authid']."'");	// Check ob an gemeldet
    	if ( db_num_rows ( $ergU ) != 0 ) {
    		echo '<tr class="Cmite"><td colspan="4"><font color="#009900">Du bist angemeldet</font></td></tr>';	// Anmelde Anzeige
    		#------ Update -------------
    	if ( isset($_POST['sub']) AND $row['status'] == 1 ) {
    			db_query("UPDATE prefix_RaidMember 
    								SET	zusage = '".$_POST['zusageNEW']."'
    								,kom = '".$_POST['komNEW']."'
    								,WoWc = '".$_POST['WoWcNEW']."'
    								,zsdate = '". date("d.m.Y / H:i") ."'
    								WHERE RMID = '".$_POST['RMID']."'
    											");
    			echo mysql_error();
    			
    	}
    
    	} else {
    							#---- Anmeldung ------------------------------------------------
    	if ( isset ($_POST['sub']) AND $ergU != 2 AND $row['status'] == 1 ) {
    							#if ( $_POST['Sub'] == "Anmelden" ) {
    								$kom = escape($_POST['Ckom'],'string');
    		#---- Check --
    		$ergCH = db_query("SELECT uid, rid, zusage FROM prefix_RaidMember WHERE uid = '".$_SESSION['authid']."' AND rid = '".$_GET['mehr']."' ");	//CH
    	if ( db_num_rows ( $ergCH ) == 0 ) { 
    		#echo mysql_error();	// f?r DEBUG
    		#-------
    		db_query("INSERT INTO prefix_RaidMember (uid,rid,zusage,kom,WoWc) VALUES ('".$_SESSION['authid']."','".$_POST['ID']."','".$_POST['zusage']."','".$_POST['Ckom']."','".$_POST['WoWc']."')");
    		echo '<tr class="Cmite"><td colspan="4"><font color="">DU HAST DICH SOEBEN ANGEMELDET!</font></td></tr>';
    
    	}	// Check				
    								#echo "<br>ID '".$_POST['ID']."', Char '".$_POST['WoWc']."', authid '".$_SESSION['authid']."', kom '".$_POST['Ckom']."'<br>";	// f?r DEBUG
    								#echo mysql_error();	// f?r DEBUG
    	}
    							#---------------------------------------------------------------	
    					
    					#-------------Chars pro User Auslesen, --------- schei? code, mu? verbessert werden!!!
    					$ergUC = db_query("SELECT CID FROM prefix_wowchars WHERE UID = '".$_SESSION['authid']."' LIMIT 0,1");	
    							#echo '<form name="form1" method="post" action="?raid-deteil-'.$_GET['mehr'].'">';
    
    						while ($rowUC = db_fetch_assoc($ergUC) ) {
    
    								$rowUC['WoWC'] = dblistee ( $rowUC['WoWC'], "SELECT CID,name FROM prefix_wowchars WHERE UID = '".$_SESSION['authid']."' AND onoff = 0");
    								$rowUC['ID'] = $_GET['mehr'];
    							$rowUC['class'] = "cdark";
    							$tpl->set_ar_out($rowUC,2);
    								}
    					#------------Anmelde Anzeige----------------	
    						#if ( $_SESSION['authright'] == "-1"){ // Check Rechte ( gast?)
    //BUG
    							if ( db_num_rows ( $ergUC ) == 0 ) {
    								echo '<tr class="Cmite"><td colspan="4"><b><font color="#CC6600" size="2">
    								Du mu&szlig;t erst einen <a href="?user-mychars">Char</a> erstellt haben um dich anmelden zu k&ouml;nnen! 
    								<b></font></td></tr>';	// Char Anlegen Anzeige
    							} else {
    								echo '<br><br>
    										<input type="submit" name="sub" value="Anmelden">
    										<br><br>
    										<font color="#FF0000">Du bist noch NICHT angemeldet!</font>
    										<form>
    									';	// Anmelde Anzeige
    							}	
    						/*	}	//BUG
    							 else {
    							echo '<tr class="Cmite"><td colspan="4"><b><font color="#CC6600" size="2">
    							Du mu&szlig;t <a href="?user-regist">Registriert</a> und freigeschaltet sein um dich anmelden zu k&ouml;nnen! 
    							<b></font></td></tr>';
    							}
    						*/
    								#$tpl->out(2);
    
    	}
    						
    $SORT = "eingeteilt";								
    #--- User Listen Anzeige ----			
    	
    						$ergC = db_query("SELECT
    									prefix_RaidMember.zusage,
    									prefix_RaidMember.eingeteilt,
    									prefix_RaidMember.kom as Ukom,
    									prefix_RaidMember.WoWc,
    									prefix_RaidMember.zsdate as zsdate,
    									prefix_RaidMember.RMID,
    									prefix_RaidMember.uid as Ruid,
    									prefix_RaidMember.rid as Rid,
    									prefix_wowchars.UID as Cuid,
    									prefix_wowchars.CID as Cid, 
    									prefix_wowchars.name as charname
    							FROM prefix_RaidMember
    							LEFT JOIN prefix_wowchars 
    									ON prefix_wowchars.CID = prefix_RaidMember.WoWc 
    							WHERE prefix_RaidMember.rid = '".$_GET['mehr']." ORDER BY $SORT'
    							");
    							
    	$a = 0; 		// F?r die Anzeige wenn die Raidanmeldung abgelaufen ist.
    				while ($row2 = db_fetch_assoc($ergC) ) {
    				
    	#--- Anzeige angemeldeter Char mit ?nderungs funktion!
    				if ( $_SESSION['authid'] == $row2['Ruid'] AND $row['status'] == 1 )	{
    					$row2['Kicon'] ="";
    					$row2['charname'] =
    						'<form name="form1" method="post" action="?raid-deteil-'.$_GET['mehr'].'">
    						<input name="RMID" value="'.$row2['RMID'].'" size="5" type="hidden">
    						<select name="WoWcNEW">'.
    							$row2['charname'] = dblistee ( $row2['charname'], "SELECT CID,name FROM prefix_wowchars WHERE UID = '".$_SESSION['authid']."' AND onoff = 0 ORDER BY name != '".$row2['charname']."'")
    						.'</select> ';
    				$row2['Ukom'] = 
    						'<input name="komNEW" type="text" value="'
    							.$row2['Ukom'].
    						'">
    						<input type="submit" name="sub" value="Update"></form>
    						';
    				$row2['zusage'] =
    						'<select name="zusageNEW">'.
    							$row2['zusage'] = arlistee ( $row2['zusage'] , get_zusage_array() )
    						.'</select>';
    						
    								#$row2['Kicon'] = '<img src="include/images/icons/charpix/'.$row['klasse'].'.jpg" alt="" border="0" height="18" width="19"></a>';
    								#$row2['Kicon'] = dbwert ( $row2['Kicon'], "SELECT CID,klasse FROM prefix_wowchars WHERE CID = '".$row2['Cid']."' AND onoff = 0");
    
    						
    					}else {
    			$row2['Kicon'] = dbwert ( $row2['Kicon'], "SELECT CID,klasse FROM prefix_wowchars WHERE CID = '".$row2['Cid']."' AND onoff = 0");
    			$row2['Kicon'] = '<img src="include/images/icons/charpix/'.$row2['Kicon'].'.jpg" alt="" border="0" height="18" width="19"></a>';
    				
    /*	*/		// ROLLOVER
    			$rowR['name'] = dbwert ( $rowR['name'], "SELECT CID,name FROM prefix_wowchars WHERE CID = '".$row2['WoWc']."'");
    			$rowR['level'] = dbwert ( $rowR['level'], "SELECT CID,level FROM prefix_wowchars WHERE CID = '".$row2['WoWc']."'");
    			$rowR['klasse'] = dbwert ( $rowR['klasse'], "SELECT CID,klasse FROM prefix_wowchars WHERE CID = '".$row2['WoWc']."'");
    			$rowR['sex'] = dbwert ( $rowR['sex'], "SELECT CID,sex FROM prefix_wowchars WHERE CID = '".$row2['WoWc']."'");
    			$rowR['skill'] = dbwert ( $rowR['skill'], "SELECT CID,skill FROM prefix_wowchars WHERE CID = '".$row2['WoWc']."'");
    			$rowR['rasse'] = dbwert ( $rowR['rasse'], "SELECT CID,rasse FROM prefix_wowchars WHERE CID = '".$row2['WoWc']."'");
    			$rowR['gilde'] = dbwert ( $rowR['gilde'], "SELECT CID,gilde FROM prefix_wowchars WHERE CID = '".$row2['WoWc']."'");
    		
    		$ro = "'Level : ".$rowR['level']." - ".$rowR['klasse']."<br />Skill : ".$rowR['skill']."<br />Rasse : ".$rowR['rasse']."<br />Geschlecht : ".$rowR['sex']."<br />',CAPTION,'".$rowR['name']." : ".$rowR['gilde']."',WRAP";
    
    			$row2['charname'] = '<a href="index.php?user-wowchars-detail-'.$row2['Cid'].'" onmouseover="return overlib('.$ro.');" onmouseout="return nd();">'.$rowR['name'].'</a>';
    			// ROLLOVER ENDE			
    				
    					}
    	#----------------------------------------------------
    			$row2['charname'];
    			
    				$row2['Cid'];
    				$row2['UPD'] = "";
    				#$row2['Ukom'];
    			switch ( $row2['zusage'] ) {
    				case '0' :	$row2['zusage'] = '<font color="#FFFFFF">noch keine Angabe</font>';	break;
    				case '1' :	$row2['zusage'] = '<font color="#009900">zugesagt</font>';	break;
    				case '2' :	$row2['zusage'] = '<font color="#CC6600">ersatz</font> angemeldet';	break;
    				case '3' :	$row2['zusage'] = '<font color="#FF0000">abgesagt</font>';	break;}
    				
    			switch ( $row2['eingeteilt'] ) {
    				case '0' :	$row2['eingeteilt'] = '<font color="#FFFFFF">noch keine Einteilung</font>';	break;	// wei?
    				case '1' :	$row2['eingeteilt'] = '<font color="#009900">ZUSAGE</font>';	break;				// gr?n
    				case '2' :	$row2['eingeteilt'] = '<font color="#CC6600">ERSATZ</font> angemeldet';	break;		// orage
    				case '3' :	$row2['eingeteilt'] = '<font color="#FF0000">ABSAGE</font>';	break;				// rot
    				case '4' :	$row2['eingeteilt'] = '<font color="#66FFFF">LEADER</font>';	break;		}		// t?rkies
    				
    					
    	#$ergdkp = db_query("SELECT COUNT(dkp) FROM prefix_RaidMember WHERE UID = '".$_SESSION['authid']."' AND rid = '".$_GET['mehr']."'");
    	#$anzdkp = db_result($ergdkp,0);
    	#array('dkp' => $anzdkp) , 0 );
    
    // Zwei Stunden vorher keine zusage mehr.	
    		$RAID_CLOSE = db_result(db_query("SELECT start FROM prefix_Raid WHERE id = '".$menu->get(2)."'"), 0);
    		$RAID_CLOSE = explode(" ", $RAID_CLOSE);
    		$jetztDatum = date("Ymd");
    		$jetztZEIT = date("Gis");
    		$RAID_CLOSE[1] = explode(":",$RAID_CLOSE[1]);
    		$RAID_CLOSE[1][0] = $RAID_CLOSE[1][0] - $allgAr['raid-anmeldeschluss'];
    		if (strlen($RAID_CLOSE[1][0]) == 1) {
    			$RAID_CLOSE[1][0] = "0".$RAID_CLOSE[1][0]; 
    		}
    		$RAID_CLOSE[1] = implode("", $RAID_CLOSE[1]);
    		$RAID_CLOSE[0] = str_replace("-", "", $RAID_CLOSE[0]);
    		$RAID_CLOSE[1] = str_replace(":", "", $RAID_CLOSE[1]);
    		$jetzt = $jetztDatum. $jetztZEIT;
    		$jetzt = str_replace("-", "0",$jetzt);
    		$dbTime = $RAID_CLOSE[0].$RAID_CLOSE[1];
    		$dbTime = str_replace("-", "0", $dbTime);
    		
    		//echo $jetzt."<- Zeit DB Time minus abzug aus Config-> ".$dbTime;
    	if ($dbTime >= $jetzt) {
    		
    		#if ( $_SESSION['authright'] <= $allgAr['raid_anz_gast'] ) {	F?R DB CONFIG WERT
    		if ( $_SESSION['authright'] <= $gastRight ) {	// ab user level  fixer wert
    			$tpl->set_ar_out($row2,3); // User (Char) Anzeige	
    			}
    	} else {
    		if ($a == 0){
    		echo '<tr class="Cmite"><td colspan="4" align="center"><font color="#009900">Die Anmeldezeit ist Abgelaufen!</font></td></tr>';
    		$a = $a + 1;
    		}
    	}
    	}
    
    
    #--------------------------------------------------------------------------------------------------------------------------------								
    	$tpl->out(4);
    
    
      $design->footer();
    	if($_POST['sub']) {
    		echo('<meta http-equiv="refresh" content="0;URL=index.php?raid-deteil-'.$row['Rid'].'">');
    	}
    	}
    /*
    TODO
    
     -Char rollover efekte mit info?s! ?!?
     -Instanzen Informationen ?!?
     -Item Datenbank ?!?
    
    */
    
    ?>



    Zuletzt modifiziert von fitzfuchs am 16.08.2007 - 17:59:50
    0 Mitglieder finden den Beitrag gut.
  5. #5
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Es wäre wohl hilfreicher zu wissen, wie nun genau die Klasse zugewiesen wird, also mal die Datenbankstruktur hier posten, wowchars, da muss ja doch irgendwie die userid oder so mit drin stehen?

    Letztendlich denke ich, dass du die Anzahl der verschiedenen Klassen einfach mit einer GROUP BY Abfrage machen kannst.


    Zuletzt modifiziert von Mairu am 16.08.2007 - 18:18:54
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  6. #6
    User Pic
    fitzfuchs gelöschter User
    Ok, da könntest du recht haben. Ich poste sie mal:
    0 Mitglieder finden den Beitrag gut.
  7. #7
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Ja du da könnte man sicher so abfragen
    SELECT COUNT(UID) AS anzahl, klasse FROM prefix_wowchars GROUP BY klasse;
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  8. #8
    User Pic
    fitzfuchs gelöschter User
    Hm, da könntest du recht haben. Aber wo genau setzte ich das ein? Ich hab mal diesen Code verändert mit dem ich es mir anzeigen lasse:

    $ergDruide = db_query('SELECT COUNT(UID) AS anzahl, klasse FROM prefix_wowchars GROUP BY Druide AND rid = "'.$row['Rid'].'" ');
    	$anzDruide = db_result($ergDruide,0);	//print_r ($anzANM);
    	$row['druide'] = $anzDruide."";


    Dann hole ich es mir in der template mit {druide} raus.
    So funktioniert es aber nicht wie ich es gemacht habe.

    Diese Fehlermeldung bekomme ich:
    ../include/includes/func/db/mysql.php on line 44

    und angezeigt bekomme ich nichts.


    Zuletzt modifiziert von fitzfuchs am 16.08.2007 - 19:36:13
    0 Mitglieder finden den Beitrag gut.
  9. #9
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Du kannst nicht GROUP BY Druide machen, die Abfrage muss schon so sein wie ich es geschrieben habe. Nichts hinzufügen oder verändern, du kannst die Abfrage ja auch mal in phpmyadmin testen, damit du siehst was rauskommt.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  10. #10
    User Pic
    fitzfuchs gelöschter User
    Ok jetzt hab ich verstanden was du meinst mit:

    SELECT COUNT(UID) AS anzahl, klasse FROM prefix_wowchars GROUP BY klasse;


    Problem ist nur das Feld klasse in der Tabelle prefix_wowchars keine Zahl ist, sondern Text. Da steht als Text Druide, Magier, Schurke... usw. drin.

    Mit dem Befehl den du mir gepostet hast könnte ich ja nur ne Zahl aus der einen Tabelle in die andere übertragen, oder?
    Ich muss aber den Text selbst noch umwandeln lassen in die richtige Zahl. Druide = 1, Jäger = 2, Magier = 3, Priester = 4, Schurke = 5, Hexenmeister = 6, Krieger = 7, Paladin = 8 und Hexenmeister = 9. Doch das ist noch nirgends festgesetzt. Das muss noch gemacht werden.
    Und diesen Befehl suche ich :-)

    Wenn er jetzt weis das der User sich mit einem Krieger anmeldet und der Krieger die Zahl 7 hat, soll er die Zahl 7 in das Feld klasse der Tabelle prefix_RaidMember übernehmen. Das kann ich dann auslesen.

    Ich möchte ja nicht alle zusammen zählen (das wird gibt es schon), sondern jede Klasse einzeln. Nicht das wir aneinander vorbeireden...


    Zuletzt modifiziert von fitzfuchs am 16.08.2007 - 23:29:12
    0 Mitglieder finden den Beitrag gut.
  11. #11
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Also ich hatte es so verstanden, als möchtest du die Anzahl, wie oft jede Klasse benutzt wird, ich verstehe ehrlich gesagt nicht, warum du dich so auf deine Zahlen versteifst, die brauchst du bestimmt nicht, das geht auch alles so, wie es jetzt ist.
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  12. #12
    User Pic
    fitzfuchs gelöschter User
    Das kann sein. Aber dann weis ich nicht wie es es programmieren soll, bzw. es ausgeben kann.

    Bisher nutze ich diesen Befehl um es mir dann im Template mit {Druide}, {Magier} usw. auszugeben
    $ergDruide = db_query('SELECT COUNT(RMID) FROM `prefix_RaidMember` WHERE klasse = "1" AND rid = "'.$row['Rid'].'" '); 
        $anzDruide = db_result($ergDruide,0);    //print_r ($anzANM); 
        $row['druide'] = $anzDruide."";



    Jetzt dachte ich halt es ginge nur so. Aber wenn du noch eine einfachere Lösung hast bin ich gerne dafür offen :-)
    0 Mitglieder finden den Beitrag gut.
  13. #13
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    $sql = db_query('SELECT COUNT(UID) AS anzahl, klasse FROM prefix_wowchars GROUP BY klasse');
    while ($r = db_fetch_row($sql)) {
      $row[$r[0]] = $r[1];
    }

    Eigentlich ist Groß und Kleinschreibung relevant, du hattest $row['druide'], was nicht mit {Druide} funktionieren sollte? Auf jeden Fall gibt es nach der Schleife von jeder Klasse einen eintrag, meinetwegen wir $row['Druide'] = 15; solltest du also ausgeben können, und das mit sowenig Code und ohne Änderung der Datenbank zwinker


    Zuletzt modifiziert von Mairu am 17.08.2007 - 10:01:42
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  14. #14
    User Pic
    fitzfuchs gelöschter User
    Ja groß und kleinschreibung hatte ich bedacht, nur falsch in Forum geschrieben.

    Ok ich verstehe was du meinst. Aber die Tabelle prefix_wowchars ist eine Aufzählung alles Charakter von allen Usern. Wenn ich diese zusammenzählen lasse, habe ich nur eine gesamt Anzahl aller einzelnen Klassen. Aber ich brauche ja nur die, die im dazugehörigen Raid angemeldet sind. Ich habe 5 Druiden in der Gilde (was in der prefix_wowchars aufgelistet ist) aber nur 2 wollen am Mittwoch mit zum Raid.

    Wer sich zum Raid angemeldet hat, holt er sich aus der Tabelle prefix_RaidMember.
    Ich glaube das hast du nicht bedacht bzw. nicht gewusst.
    Weil ich möchte mir anzeigen lassen wieviele von jeder Klasse zum einzelnen Raid angemeldet sind und nicht wieviele ich von jeder Klasse insgesamt habe...

    Aber diesmal Sorge ich vor. Hier ein Überblick über die prefix_RaidMember Tabelle:


    Diesen Befehl führt er bei der Anmeldung aus:
    #---- Anmeldung ------------------------------------------------
    	if ( isset ($_POST['sub']) AND $ergU != 2 AND $row['status'] == 1 ) {
    							#if ( $_POST['Sub'] == "Anmelden" ) {
    								$kom = escape($_POST['Ckom'],'string');
    		#---- Check --
    		$ergCH = db_query("SELECT uid, rid, zusage FROM prefix_RaidMember WHERE uid = '".$_SESSION['authid']."' AND rid = '".$_GET['mehr']."' ");	//CH
    	if ( db_num_rows ( $ergCH ) == 0 ) { 
    		#echo mysql_error();	// f?r DEBUG
    		#-------
    		db_query("INSERT INTO prefix_RaidMember (uid,rid,zusage,kom,WoWc) VALUES ('".$_SESSION['authid']."','".$_POST['ID']."','".$_POST['zusage']."','".$_POST['Ckom']."','".$_POST['WoWc']."')");
    		echo '<tr class="Cmite"><td colspan="4"><font color="">DU HAST DICH SOEBEN ANGEMELDET!</font></td></tr>';
    
    	}	// Check				
    								#echo "<br>ID '".$_POST['ID']."', Char '".$_POST['WoWc']."', authid '".$_SESSION['authid']."', kom '".$_POST['Ckom']."'<br>";	// f?r DEBUG
    								#echo mysql_error();	// f?r DEBUG
    	}
    							#---------------------------------------------------------------	
    					
    					#-------------Chars pro User Auslesen, --------- schei? code, mu? verbessert werden!!!
    					$ergUC = db_query("SELECT CID FROM prefix_wowchars WHERE UID = '".$_SESSION['authid']."' LIMIT 0,1");	
    							#echo '<form name="form1" method="post" action="?raid-deteil-'.$_GET['mehr'].'">';
    
    						while ($rowUC = db_fetch_assoc($ergUC) ) {
    
    								$rowUC['WoWC'] = dblistee ( $rowUC['WoWC'], "SELECT CID,name FROM prefix_wowchars WHERE UID = '".$_SESSION['authid']."' AND onoff = 0");
    								$rowUC['ID'] = $_GET['mehr'];
    							$rowUC['class'] = "cdark";
    							$tpl->set_ar_out($rowUC,2);
    								}
    					#------------Anmelde Anzeige----------------	
    						#if ( $_SESSION['authright'] == "-1"){ // Check Rechte ( gast?)
    //BUG
    							if ( db_num_rows ( $ergUC ) == 0 ) {
    								echo '<tr class="Cmite"><td colspan="4"><b><font color="#CC6600" size="2">
    								Du mu&szlig;t erst einen <a href="?user-mychars">Char</a> erstellt haben um dich anmelden zu k&ouml;nnen! 
    								<b></font></td></tr>';	// Char Anlegen Anzeige
    							} else {
    								echo '<br><br>
    										<input type="submit" name="sub" value="Anmelden">
    										<br><br>
    										<font color="#FF0000">Du bist noch NICHT angemeldet!</font>
    										<form>
    									';	// Anmelde Anzeige
    							}	
    						/*	}	//BUG
    							 else {
    							echo '<tr class="Cmite"><td colspan="4"><b><font color="#CC6600" size="2">
    							Du mu&szlig;t <a href="?user-regist">Registriert</a> und freigeschaltet sein um dich anmelden zu k&ouml;nnen! 
    							<b></font></td></tr>';
    							}
    						*/
    								#$tpl->out(2);
    
    	}


    Er legt also in der prefix_RaidMember für jeden Char einen Eintrag an, der die UID und die CID beinhaltet. Im Feld zusage steht ob er angemelt, oder inder Warte schlange usw. ist. Das ist nicht weiter wichtig.
    Dann zählt er wieviele Einträge in der prefix_RaidMember sind mit der RID (z.B.) 7 für den Raid am Mittwoch. Der Raid Am Sonntag hat dann die 8 usw.
    Dann kann er mir auszählen wieviele sich insgesamt für den Raid angemeldet haben, aber leider nicht welche einzelne Klasse wie oft.

    Und das wollte ich mit einem weiteren Feld in der Prefix_RaidMember lösen was für jede Klasse eine Zahl beinhaltet. Dann soll er zählen wie oft für den Raid am Mittwoch (mit der RID 7) sich der Druide (mit dem Wert 1) im Feld Klasse zu finden ist.

    Man Man, schwere Geburt, ich hoffe du hast es verstanden ^^


    Ich suche jetzt den Befehl: Der mir überprüft in der prefix_wowchars anhand der CID welche klasse (Text: z.b. Magier) befindet und das soll er in die 3 (magier = 3) umwandeln und in das Feld klasse in der prefix_RaidMember ersetzen. Das kann ich dann auslesen.
    0 Mitglieder finden den Beitrag gut.
  15. #15
    User Pic
    Mairu Coder
    Registriert seit
    16.06.2006
    Beiträge
    15.334
    Beitragswertungen
    386 Beitragspunkte
    Eine einfache Änderung der Abfrage reicht doch aus zunge

    SELECT COUNT(UID) AS anzahl, klasse FROM prefix_wowchars WHERE uid IN (SELECT uid FROM prefix_raidmember WHERE rmid = RAIDID) GROUP BY klasse


    Du musst dann eben noch die RAIDID einfügen zwinker
    Kann auch sein, dass du nach was anderem als rmid aussortieren willst, aber das solltest du ja dann auch selbst schaffen, der Grundstein ist gelegt.

    Wenn die Abfrage so nicht geht, musst du ggf. prefix_wowchars.uid und prefix_raidmember.uid verwenden.

    Also ich hoffe das reicht, ich hab keine Lust mich mehr damit zu beschäftigen, tut mir leid und bin auch nur noch bis heute da, dann ne Woche weg.

    Zuletzt modifiziert von Mairu am 17.08.2007 - 13:33:27
    Und auch immer mal ein Blick auf die FAQ werfen. | Mairus Ilchseite
    0 Mitglieder finden den Beitrag gut.
  16. #16
    User Pic
    fitzfuchs gelöschter User
    Ich probiers mal aus. Danke für deine Hilfe :-)
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten