Tabellen Problem

Mad-Line

Mitglied
Hallo
ich Bastel jetzt schon Stunden lang an einer php Seite rum nun bin ich an meine Grenzen gestoßen ich komm einfach nicht mehr weiter.
Damit möglichst viele Maps auf eine Seite gehen möchte ich das die maps zwei reihig nebeneinander auf einer seite erscheinen. Da ich im Editor keine Tabellen sehe komm ich damit nicht klar.

hier einmal der link
http://213.133.100.248/ratemap/rateweb.php

Ich hoffe einer hat Lust und Zeit mir dabei mal zuhelfen.

Biiitttttte^^

Code:
<?php
include "config.php";
mysql_connect($host, $username, $password) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<title><? echo $title ?></title>
	<link rel="stylesheet" href="css/style.css" type="text/css" media="screen" />

</head>
<body>
<body bgcolor="#84753c">


<div id="container">

<div id="pagewrapper">
	<div id="page">
		<div class="maincolumn">
			<div class="post">
				<h2><a>Fehde RateMap v1.5 Ingame</a></h2>
				<?
				if (isset($_GET["delete"]))
				{ ?>
			  <div class="entry"></div>
				<br />
				<? }
				$t = mysql_query("SELECT * FROM maps");
				if(!$t) die(mysql_error());
				$a = mysql_fetch_object($t);
				$total_items = mysql_num_rows($t);
				$limit = $_GET['limit'];
				$type = $_GET['type'];
				$page = $_GET['page'];
				if((!$limit)  || (is_numeric($limit) == false) || ($limit < 1) || ($limit > 25)) {
				     $limit = 15; //default
				}
				if((!$page) || (is_numeric($page) == false) || ($page < 0) || ($page > $total_items)) {
				      $page = 1; //default
				}
				$total_pages = ceil($total_items / $limit);
				$set_limit = $page * $limit - ($limit);
				$type = $_GET["type"];
				if (!$type)
				{
					$type = "map";
				}
				$order = $_GET["order"];
				if (!$order)
				{
					$order = "ASC";
				}
				if (isset($_POST["login"]))
				{
					if ($_POST["susername"] == $username)
					{
						if ($_POST["password"] == $password)
						{
							$ress = mysql_query("SELECT * FROM maps WHERE map='$_POST[delete]'") or die(mysql_error());
							if (mysql_num_rows($ress) == 1)
							{
								mysql_query("DELETE FROM maps WHERE map='$_POST[delete]'") or die(mysql_error());
								mysql_query("INSERT INTO deleted(map) VALUES('$_POST[delete]')") or die(mysql_error());
								echo "<table align='center' cellpadding='4' class='border'>
									<tr align='center' valign='middle'>
										<td bgcolor='#E4EDF7'>
											<div style='clear: both;'>
												<div class='smallfont' style='clear: both;'><b>$_POST[delete] Maü wurde gelöscht!</b></div>
											</div>
										</td>
									</tr>
								</table><br />";
							}
							else
							{
								echo "<table align='center' cellpadding='4' class='border'>
									<tr align='center' valign='middle'>
										<td bgcolor='#E4EDF7'>
											<div style='clear: both;'>
												<div class='smallfont' style='clear: both;'><b>$_POST[delete] doesn't exist!</b></div>
											</div>
										</td>
									</tr>
								</table><br />";
							}
						}
						else
						{
							echo "<table align='center' cellpadding='4' class='border'>
								<tr align='center' valign='middle'>
									<td bgcolor='#E4EDF7'>
										<div style='clear: both;'>
											<div class='smallfont' style='clear: both;'><b>Falsches Password!</b></div>
										</div>
									</td>
								</tr>
							</table><br />";
						}
					}
					else
					{
						echo "<table align='center' cellpadding='4' class='border'>
							<tr align='center' valign='middle'>
								<td bgcolor='#E4EDF7'>
									<div style='clear: both;'>
										<div class='smallfont' style='clear: both;'><b>Falscher Username!</b></div>
									</div>
								</td>
							</tr>
						</table><br />";
					}
				}
					echo "<table align='center' cellpadding='4' class='border'>
						<tr align='center' valign='middle'>
							<td bgcolor='#E4EDF7'>
								<div style='clear: both;'>";
										echo "<div class='smallfont' style='clear: both;'><b>Momentan sind $total_items maps in unserer Datenbank!</b></div>";
								echo"</div>
							</td>
						</tr>
					</table><br/>
					<table align='center' cellpadding='4' class='border'>
						<tr align='center' valign='middle'>
							<td bgcolor='#E4EDF7'>
								<div style='clear: both;'>
									<div class='smallfont' style='clear: both;'> | <a href=rateweb.php?limit=$limit&amp;page=$page&amp;type=map&amp;order=$order> Nach Namen</a> | <a href=rateweb.php?limit=$limit&amp;page=$page&amp;type=votes&amp;order=$order>Nach Abgegebene stimmen</a> | <a href=rateweb.php?limit=$limit&amp;page=$page&amp;type=rating&amp;order=$order>Bestbewertete</a> | <a href=rateweb.php?limit=$limit&amp;page=$page&amp;type=runs&amp;order=$order>Am Längsten gelaufen</a> | <a href='rateweb.php?limit=$limit&amp;page=$page&amp;type=$type&amp;order=ASC'>Aufsteigend</a> | <a href='rateweb.php?limit=$limit&amp;page=$page&amp;type=$type&amp;order=DESC'>Absteigend</a></div>
								</div>
								
				?>
				<div class="entry">
					<?php


					$query = mysql_query("SELECT * FROM maps");
					if(!$query) die(mysql_error());
					while($row = mysql_fetch_array($query))
					{
					      $mapname = $row['map'];
						$fivestars = $row['fivestars'];
						$fourstars = $row['fourstars'];
						$threestars = $row['threestars'];
						$twostars = $row['twostars'];
						$onestars = $row['onestars'];
						$fivestars2 = $fivestars * 5;
						$fourstars2 = $fourstars * 4;
						$threestars2 = $threestars * 3;
						$twostars2 = $twostars * 2;
						$onestars2 = $onestars;
						$votes = $fivestars + $fourstars + $threestars + $twostars + $onestars;
						$votes2 = $fivestars2 + $fourstars2 + $threestars2 + $twostars2 + $onestars2;
						if ($votes == 0)
						{
							mysql_query("UPDATE maps SET votes=0 WHERE map='$mapname'") or die(mysql_error());
							mysql_query("UPDATE maps SET rating=0 WHERE map='$mapname'") or die(mysql_error());
						}
						else
						{
							$total = $votes2 / $votes;
							$rating = round($total, 2);
							mysql_query("UPDATE maps SET votes=$votes WHERE map='$mapname'") or die(mysql_error());
							mysql_query("UPDATE maps SET rating=$rating WHERE map='$mapname'") or die(mysql_error());
						}
					}
					$query = mysql_query("SELECT * FROM maps ORDER BY $type $order LIMIT $set_limit, $limit");
					if(!$query) die(mysql_error());
						$err = mysql_num_rows($query);
					if($err == 0) die("No maps or rating have been recorded yet.");
					while($row = mysql_fetch_array($query))
					{
						$runs = $row['runs'];
						$fivestars = $row['fivestars'];
						$fourstars = $row['fourstars'];
						$threestars = $row['threestars'];
						$twostars = $row['twostars'];
						$onestars = $row['onestars'];
						$fivestars2 = $fivestars * 5;
						$fourstars2 = $fourstars * 4;
						$threestars2 = $threestars * 3;
						$twostars2 = $twostars * 2;
						$onestars2 = $onestars;
						$votes = $fivestars + $fourstars + $threestars + $twostars + $onestars;
						$votes2 = $fivestars2 + $fourstars2 + $threestars2 + $twostars2 + $onestars2;
					      $mapname = $row['map'];
						if ($votes == 0)
						{
							$total = 0;
							$rating = 0.00;
						}
						else
						{
							$total = $votes2 / $votes;
							$rating = round($total, 2);
						}
						$percent = $total * 20;
						if (@fopen("maps/$mapname.jpg","r"))
						{


						}
						echo "<table cellpadding='4' class='border'>
								<tr valign='top'>
									<td bgcolor='#E4EDF7' width='188'>
										<center><div style='clear: both;'>
											<div class='bigfont' style='clear: both;'><b>$mapname </a></b></div>
										</div>
										$image
										<div class='smallfont' style='clear: both; margin-top: 8px;'>
											<ul class='star-rating'><li class='current-rating' style='width:$percent%'></li></ul>
										</div></center>
									</td>
									<td bgcolor='#FFFFFF' width='482'>

										<strong>Abgegebene Stimmen: </strong>$votes<br>";
										$length = strlen($rating);
										if ($length == 1)
										{
											echo "<strong>Punkte: </strong>$rating.00/5.00<br />";
										}
										if ($length == 3)
										{
											echo "<strong>Punkte: </strong>".$rating."0/5.00<br />";
										}
										if ($length == 4)
										{
											echo "<strong>Punkte: </strong>$rating/5.00<br />";
										}
										if ($runs == 1)
										{
											echo "<strong>Noch nie gelaufen   :( </strong>1 time.";
										}

									echo "</td>
								</tr>
							</table>
							<br />";
					}
					echo "<table align='center' cellpadding='4' class='border'>
						<tr align='center' valign='middle'>
							<td bgcolor='#E4EDF7'>
								<div style='clear: both;'>
									<div class='smallfont' style='clear: both;'>";
					if($prev_page >= 1) {
						echo("<b>&lt;&lt;</b> <a href=rateweb.php?limit=$limit&amp;page=$prev_page&amp;type=$type&amp;order=$order><b>Prev.</b></a> | ");
					}
					for($a = 1; $a <= $total_pages; $a++)
					{
						if($a == $page) {
							echo("<b> $a</b> | ");
						} else {
							echo("  <a href=rateweb.php?limit=$limit&amp;page=$a&amp;type=$type&amp;order=$order> $a </a> | ");
						}
					}
					$next_page = $page + 1;
					if($next_page <= $total_pages) {
						echo("<a href=rateweb.php?limit=$limit&amp;page=$next_page&amp;type=$type&amp;order=$order><b>Next</b></a> <b>&gt;&gt;</b>");
					}
					echo "</div>
								</div>
							</td>
						</tr>
					</table>";
					?>
				</div>
			</div>
		</div>
	</div>
</div>
</body>
</html>
 
Mach es mit

PHP:
if(($i %2) == "0"){}

ich denke weiter schaffst du es schon selber.
Noch ein kleines Beispiel:
PHP:
<?
$i = 0;
while($i < 30){
$i++;
echo "- $i -";
if(($i %2) == "0"){echo "<br>";}
}
?>

So wird immer erst nach dem zweiten ein <br> gestellt, man kann
dass gleiche auch mit 3 oder 4 … machen

% - ist dass was nach der Teilung übrig bleibt und immer wen die Teilung ohne Rest geht bz. Das Ergebnis gleich Null ist macht er einen <br>.

Beispiel :
12 % 3 = 0
11 % 3 = 2
10 % 3 = 1
9 % 3 = 0
 
Zuletzt bearbeitet von einem Moderator:
Danke für den Tipp aber ich verstehe nur Bahnhof ich hab die php Seite nur verändert nicht selber geschrieben .

Das ist so als wenn du einem einen neandertaler mit einer geladenen UZI in new york los lässt.

Dein code erstellt eine zahlen reihenfolge mit zahlen 1-30 zwei reihig soweit kann ich folgen
aber ich kann das nicht umsetzten bzw weiter verwenden dafür fehlt es mir an verständniss. :confused:
 
Also ich habe mal dein Code studiert und ein wenig abgeändert.
Da man nur die letzte while schleife ändern musste ist es eigentlich gar nicht so schwer.

Als erstes führe ich 2 neue variablen ein($counti, $spalten).
Bei $spalten kannst du eingeben wie viele spalten du habe willst.
Dann mache ich eine neue Tabelle in der deine vorherigen Tabellen stehen werden.
Und immer wen die while schleife ausgeführt wird die variable $counti um eins erhöht.
Am Schluss wird dass gleiche gemacht was ich dir schon oben zu erklären versucht habe.
So ich habe nur die letzte while schleife verändert, also brauchst du auch nur sie zu ersetzen.
(Das was grün ist, ist das was ich dazugeschrieben habe.)


$counti = 0;
$spalten = "2"; // Wie viele spalten du haben willst
echo"<table border='0'><tr>";

while($row = mysql_fetch_array($query))
{

echo "<td>";
$counti++;


$runs = $row['runs'];
$fivestars = $row['fivestars'];
$fourstars = $row['fourstars'];
$threestars = $row['threestars'];
$twostars = $row['twostars'];
$onestars = $row['onestars'];
$fivestars2 = $fivestars * 5;
$fourstars2 = $fourstars * 4;
$threestars2 = $threestars * 3;
$twostars2 = $twostars * 2;
$onestars2 = $onestars;
$votes = $fivestars + $fourstars + $threestars + $twostars + $onestars;
$votes2 = $fivestars2 + $fourstars2 + $threestars2 + $twostars2 + $onestars2;
$mapname = $row['map'];
if ($votes == 0)
{
$total = 0;
$rating = 0.00;
}
else
{
$total = $votes2 / $votes;
$rating = round($total, 2);
}
$percent = $total * 20;
if (@fopen("maps/$mapname.jpg","r"))
{

}
echo "<table cellpadding='4' class='border'>
<tr valign='top'>
<td bgcolor='#E4EDF7' width='188'> //Musst du wahrscheinlich auch etwas abändern dass deine spalten etwas kleiner werden.
<center><div style='clear: both;'>
<div class='bigfont' style='clear: both;'><b>$mapname </a></b></div>
</div>
$image
<div class='smallfont' style='clear: both; margin-top: 8px;'>
<ul class='star-rating'><li class='current-rating' style='width:$percent%'></li></ul>
</div></center>
</td>
<td bgcolor='#FFFFFF' width='482'> //Musst du wahrscheinlich auch etwas abändern dass deine spalten etwas kleiner werden.

<strong>Abgegebene Stimmen: </strong>$votes<br>";
$length = strlen($rating);
if ($length == 1)
{
echo "<strong>Punkte: </strong>$rating.00/5.00<br />";
}
if ($length == 3)
{
echo "<strong>Punkte: </strong>".$rating."0/5.00<br />";
}
if ($length == 4)
{
echo "<strong>Punkte: </strong>$rating/5.00<br />";
}
if ($runs == 1)
{
echo "<strong>Noch nie gelaufen :( </strong>1 time.";
}

echo "</td>
</tr>
</table>
<br />";

if(($counti % $spalten) == "0"){echo"</td></tr>";}else{echo"</td>";}
}
echo "</table>";
 
Zuletzt bearbeitet von einem Moderator:
Hallo ROXON

Ich danke dir für deine Hilfe.
Sry das ich jetzt erst schreibe aber hatte vorher keine zeit.
Ich hab das ganze mal umgesetzt von dir und es Funktioniert Prima :)

Gibt nur eine kleinichkeit die mich stört und das ist das die map's beim laden der Seite immer nach Namen sortiert werden.

Die Links hab ich geschaft zu ändern das sie immer absteigen sortiert werden, aber ich erkennen nicht richtig wo man das ändern kann das sie nach der bestenbewertung absteigend geladen werden. :confused:

Haste da noch ein Tipp?

Dann bin ich wunsch los Glücklich und freu mich meines Leben xD

Danke noch mal das du dir die zeit genommen hast.

Gruß Mad
 
Da musst du :

PHP:
if (!$type)
{
$type = "map";
}

Mit dem ersetzen:

PHP:
if (!$type)
{
$type = "votes"; 
}
 
Zurück