Benötige Hilfe bei Navigation
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgeben
auslese
boxen
code
feld
frage
frei belegt auslesen
http
image
index
inhalt
klasse array
niemand
ordern
problem
server
show
text
url
werbung
-
Hallo,
ich möchte auf meiner Seitehttp://show-ts.bplaced.net/aws/ links in der navigation für jeden server einen grünen bzw rotern hintergrund. Habe in meiner MySQL DB für jeden server eine ID (0-19) und dazu einen Wert (1 oder 2).
1=Server frei->grün
2=Server belegt->rot
Mein bisheriger Code sieht so aus:
/*[...]*/ <?PHP } elseif ($page=="site=p31") { ?> <?PHP include_once("include/nav1.php"); ?> <?php //Auslesen $werte = mysql_query("SELECT ts_server_frei_besetzt FROM ts_server ORDER BY ts_server_id ASC"); //Ausgeben while($inhalt = mysql_fetch_array($werte, MYSQL_ASSOC)){ $feld[] = $inhalt['ts_server_frei_besetzt']; echo " <br /> <br /> <h1>Teamspeak 3 Server</h1> <ul> <li><a href=\"index.php?site=p31\"";if($feld[1]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 1</a></li> <li><a href=\"index.php?site=p32\"";if($feld[2]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 2</a></li> <li><a href=\"index.php?site=p33\"";if($feld[3]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 3</a></li> <li><a href=\"index.php?site=p34\"";if($feld[4]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 4</a></li> <li><a href=\"index.php?site=p35\"";if($feld[5]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 5</a></li> <li><a href=\"index.php?site=p36\"";if($feld[6]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 6</a></li> <li><a href=\"index.php?site=p37\"";if($feld[0]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 7</a></li> <li><a href=\"index.php?site=p38\"";if($feld[7]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 8</a></li> <li><a href=\"index.php?site=p39\"";if($feld[8]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 9</a></li> <li><a href=\"index.php?site=p40\"";if($feld[9]==1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server 10</a></li> </ul> <h2 style=\"padding:220px 0 0 0;\"></h2> "; } ?> <?PHP include_once("include/nav3.php"); ?> /*[...]*/
Mein Problem ist nun, das es sich auf der Seite ziemlich oft wiederholt...
Ein Kollege meinte ich soll es mit foreach machen, aber da ich noch eine ganze Weile brauche, um PHP zu checken, biete ich demjeniger, der es schafft das es so aussieht wie es sein soll, 5 Euro.
Gerne auch per ICQ / Skype ->PN
Ein weiteres Problem, das Mousehover an der Stelle nicht funktioniert.
Beitrag zuletzt geändert: 14.8.2010 18:56:01 von show-teamspeak -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
was soll ich runternehmen?
was ist travian werbung?
ich versteh überhaupt nicht, was du meinst..
EDIT: sorry, link war falsch
Beitrag zuletzt geändert: 14.8.2010 18:56:15 von show-teamspeak -
Wenn ich richtig verstanden habe, was du vor hast.<?PHP //auslesen $werte = mysql_query("SELECT ts_server_frei_besetzt FROM ts_server ORDER BY ts_server_id ASC"); while($inhalt = mysql_fetch_array($werte, MYSQL_ASSOC)){ $feld[] = $inhalt['ts_server_frei_besetzt']; } //predefine $klasse = array('', 'frei', 'belegt'); //ausgeben echo '<br /><br />\n<h1>Teamspeak 3 Server</h1>\n <ul>'; foreach($feld as $k => $v){ echo '<li><a href="index.php?site=p31" class="'.$klasse[$v].'">Server '.$k.'</a></li>\n'; } echo '</ul>'; ?>
EDIT: Korrektur, ich denke ich habe da was falsch verstanden. Sollte nun stimmen.
Beitrag zuletzt geändert: 14.8.2010 19:09:47 von nerdinator -
mir scheint es zumindest so, das mousehover überll klappt...
€dit: müsste es nicht heißen
?????????<?PHP //predefine $klasse = array('', 'frei', 'belegt'); //auslesen $werte = mysql_query("SELECT ts_server_frei_besetzt FROM ts_server ORDER BY ts_server_id ASC"); while($inhalt = mysql_fetch_array($werte, MYSQL_ASSOC)){ $feld[] = $inhalt['ts_server_frei_besetzt']; //ausgeben echo '<br /><br />\n<h1>Teamspeak 3 Server</h1>\n <ul>'; foreach($feld as $k => $v){ echo '<li><a href="index.php?site=p31" class="'.$klasse[$v].'">Server '.$k.'</a></li>\n'; } echo '</ul><h2 style="padding:220px 0 0 0;"></h2>'; } ?>
Beitrag zuletzt geändert: 14.8.2010 19:24:40 von t-li -
schauts euch an.
bei nerdinator sieht man die /n und
bei t-li gibt es mehrere boxen, nur jede weitere hat eine zeile mehr
was mir auffällt, das überall der gleiche link ist, sollte aber p31, p32, p33... sein
so hatte ich es vorher:
<?php //Auslesen $werte = mysql_query("SELECT ts_server_frei_besetzt FROM ts_server ORDER BY ts_server_id ASC"); //Ausgeben while($inhalt = mysql_fetch_array($werte, MYSQL_ASSOC)){ $feld[] = $inhalt['ts_server_frei_besetzt']; } echo"<h1>Teamspeak 3 Server</h1>\n"; echo"<ul>\n"; foreach($feld as $id => $count) { echo"<li><a href=\"index.php?site=p31\"";if($id == 1) {echo "class=\"free\"";} else {echo "class=\"belegt\"";}echo ">Server ".$count."</a></li>\n"; } echo"</ul>\n"; ?>
Beitrag zuletzt geändert: 14.8.2010 19:41:27 von show-teamspeak -
sag das doch gleich!
das ist der code von nerdinator etwas abgewandelt:
<?PHP //predefine $klasse = array('', 'frei', 'belegt'); //auslesen $werte = mysql_query("SELECT ts_server_frei_besetzt FROM ts_server ORDER BY ts_server_id ASC"); while($inhalt = mysql_fetch_array($werte, MYSQL_ASSOC)){ $feld[] = $inhalt['ts_server_frei_besetzt']; } //ausgeben echo '<br /><br />'; echo '<h1>Teamspeak 3 Server</h1>'; echo '<ul>'; foreach($feld as $k => $v){ echo '<li><a href="index.php?site=p3'.$k.'" class="'.$klasse[$v].'">Server '.$k.'</a></li>'; } echo '</ul>'; ?>
€dit: soll nummer 10 dann index.php?site=p310 oder index.php?site=p40 sein?
€dit2: ich würd das predefine vor auslese setzen
Beitrag zuletzt geändert: 14.8.2010 19:57:32 von t-li -
Ehm... Dann lass meinetwegen die \n's weg. Hab ich übersehen, dass man das sieht :D
das mit dem p31 und so weiter kannst du lösen, indem du
benutzt. Oder so ähnlich ^^echo '<li><a href="index.php?site=p'.intval($k)+30.'" class="'.$klasse[$v].'">Server '.$k.'</a></li>';
-
echo '<li><a href="index.php?site=p'.intval($k+30).'" class="'.$klasse[$v].'">Server '.($k+1).'</a></li>';
so!
1. Kann man das auch so machen, das er die ersten 10 links nur auflistet und in einer 2. box ab dem 11. link wieder anfängt?
2. Bei mir geht das Mouseover nicht, wo die class-Grafiken sind.
Beitrag zuletzt geändert: 14.8.2010 20:07:31 von show-teamspeak -
Vielleicht solltest du dir zuerst überlegen, wie du das ganze haben willst, dein Problem ausreichend spezifizieren und dann nochmal die Frage komplett stellen.
Es lässt sich nahezu alles machen. Allerdings bieten sich für verschiedene Dinge verschiedene Möglichkeiten an. -
zu 1) etwa so...
if($k <= 10){//erste box code reinpacken echo '<li><a href="index.php?site=p'.intval($k+30).'" class="'.$klasse[$v].'">Server '.($k+1).'</a></li>'; }elseif($k > 10 && <= 20){//neue box code reinpacken echo '<li><a href="index.php?site=p'.intval($k+30).'" class="'.$klasse[$v].'">Server '.($k+1).'</a></li>'; }elseif($k > 20 && <= 30){...}
€dit: hatte bis eben noch n fehler drin, ...
Beitrag zuletzt geändert: 14.8.2010 20:15:07 von t-li -
Ich möchte, das ich die Server in 10er Packs habe, wie auf www.show-ts.tk
also Server 0-9 in der 1. Box und Server 10-19 in der 2. Box
EDIT: ok, danke t-li
und dann halt das mouseover. hier mal ein ausschnitt auf meiner css
#menu ul li a:link, #menu ul li a:visited {
color:#6392bc;
display: block;
margin-left:4px;
width:170px; /*200-30 wegen padding*/
float:left;
background: url(../images/button.png);
background-repeat:no-repeat;
padding: 0 0 0 30px;
}
#menu ul li a:hover {
color: #6392bc;
background: url(../images/buttonhover.png);
text-decoration:underline;
background-repeat:no-repeat;
padding: 0 2px 0 28px;
font-weight:600;
}
#menu ul li a.active {
color:#6392bc;
background: url(../images/buttonhover.png);
background-repeat:no-repeat;
padding: 0 0 0 30px;
}
#menu ul li a.frei {
color:#6392bc;
background: url(../images/buttonfree.png);
background-repeat:no-repeat;
padding: 0 0 0 30px;
text-decoration:none;
font-weight:500;
}
#menu ul li a.belegt {
color:#6392bc;
background: url(../images/buttonbelegt.png);
background-repeat:no-repeat;
padding: 0 0 0 30px;
text-decoration:none;
font-weight:500;
}
Beitrag zuletzt geändert: 14.8.2010 20:12:39 von show-teamspeak -
also bei mir scheint das hovern zu funktionieren, allerdings sehe ich nicht, welcher belegt ist & welcher nicht...
-
http://www.youtube.com/watch?v=gS-v-NaiJts
wie sieht es denn bei dir aus? screenshot oder so
Beitrag zuletzt geändert: 14.8.2010 20:45:06 von show-teamspeak -
Du hast noch den alten Code auf Deiner Startseite.
Meine diese:
http://show-ts.bplaced.net/aws/index.php
Wenn man auf die server klickt ist's auf dem neuesten Stand:
http://show-ts.bplaced.net/aws/index.php?site=p31
€dite :
anscheinend nur auf p31 aktuell.....
Beitrag zuletzt geändert: 14.8.2010 21:58:40 von simuliertes -
ja, ich mache der erst komplett fertig, wenn alles funktioniert.
jemand ne ahnugn, wieso das hovern auf p31 ncith funktioniert?
muss ich evtl. zu
#menu ul li a.belegt { }
ein
#menu ul li a.belegt:hover { }
hinzufügen?
Beitrag zuletzt geändert: 15.8.2010 13:06:10 von show-teamspeak -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage