Hallo Leute,
ich bin ein absoluter Anfänger in Sache PHP und MySQL. Hab jetzt mein eigenes Script erstellt mit wohl sehr unprofessionellen Code-Formulierungen. Ich weiß aber, daß bestimmte Aufgaben mit unterschiedliche Methoden viel schneller und sauberer ausgeführt werden können, aber ich hab keine Ahnung wie. Auch mit MySQL Anweisungen kann es manchmal sinnvoller sein, bestimmtes richtiger zu formulieren.
Daher lege ich erst mal meine Codes hier rein, wer Zeit und Interesse hat, mir meine Codes Korektur zu lesen, dafür wäre ich sehr dankbar.
Zur Erläuterung der Codes:
Ich mache ein Webseit mit der Absicht, chinesische Rock Scene auf Englisch vorzustellen. Daher überlege ich einen Datenbank für Bänds zu erstellen und dieser Script unten dient einfach zunächst erst mal zum Anzeigen aller oder bestimmter archivierte Banddaten, auch mit Anzeigesortierung und Seitenverteilung. Suchfunktion hab ich noch nicht eingebaut.
Das ganze läuft auch schon online als test:
http://www.rockinchina.com/test/
Nun hier die Codes:
ich bin ein absoluter Anfänger in Sache PHP und MySQL. Hab jetzt mein eigenes Script erstellt mit wohl sehr unprofessionellen Code-Formulierungen. Ich weiß aber, daß bestimmte Aufgaben mit unterschiedliche Methoden viel schneller und sauberer ausgeführt werden können, aber ich hab keine Ahnung wie. Auch mit MySQL Anweisungen kann es manchmal sinnvoller sein, bestimmtes richtiger zu formulieren.
Daher lege ich erst mal meine Codes hier rein, wer Zeit und Interesse hat, mir meine Codes Korektur zu lesen, dafür wäre ich sehr dankbar.
Zur Erläuterung der Codes:
Ich mache ein Webseit mit der Absicht, chinesische Rock Scene auf Englisch vorzustellen. Daher überlege ich einen Datenbank für Bänds zu erstellen und dieser Script unten dient einfach zunächst erst mal zum Anzeigen aller oder bestimmter archivierte Banddaten, auch mit Anzeigesortierung und Seitenverteilung. Suchfunktion hab ich noch nicht eingebaut.
Das ganze läuft auch schon online als test:
http://www.rockinchina.com/test/
Nun hier die Codes:
PHP-Code:
<?php
//set amount of rows to be displayed each page:
$pagerows = 20;
include("inc_db_inf.php"); //DB infos
mysql_connect($host,$user,$pass);
mysql_select_db($db) or die( "Unable to select database");
//_GET uebernimmt Werte aus den URL Angaben xxx.php?sort=Wert
$sort = $_GET["sort"];
$Sortmethod = $_GET['sortmethod'];
//Ermittelt Werte fuer den Sortiervorgang
if ($sort == "") {
$query="SELECT * FROM BandIndex";
} else {
if ($Sortmethod == "") {
$sortmethod = "ASC";
} elseif ($Sortmethod == "DESC") {
$sortmethod = "ASC";
} elseif ($Sortmethod == "ASC") {
$sortmethod = "DESC";
}
$query="SELECT * FROM BandIndex ORDER BY $sort $sortmethod";
$sorttmp = "Sorted by $sort";
}
$result = mysql_query($query);
$num = mysql_num_rows($result);
mysql_close();
//Page Header Infos geladen:
include("inc_header.php");
//Page Codes:
echo '<div class="BandMain">
<div class="MainHeading">
[url="admin_index.php"]Band Index All[/url]
</div>
Click on each Columneheader to sort the data, click again to sort reverse.</p>
';
//Wenn Sortiervorgang aktive: Sortierweise anzeigen
if ($sort != "") echo "
$sorttmp ($sortmethod)</p>";
//Tabellenkopf mit Sortierungsangaben als Links
?>
<table border="2" width="100%">
<tr>
<td width="40%"><p class="ContentSubHeading"><a href="admin_index.php?sort=BandEN&sortmethod=<?
echo "$sortmethod"; ?>">Bandname</a> [url="admin_index.php?sort=BandCN"][chn. Pin Yin][/url]</p></td>
<td><p class="ContentSubHeading"><a href="admin_index.php?sort=Genre&sortmethod=<?
echo "$sortmethod"; ?>">Genre</a></p></td>
<td><p class="ContentSubHeading"><a href="admin_index.php?sort=City&sortmethod=<?
echo "$sortmethod"; ?>">Origin</a></p></td>
<td><p class="ContentSubHeading"><a href="admin_index.php?sort=Since&sortmethod=<?
echo "$sortmethod"; ?>">Since</a></p></td>
<td><p class="ContentSubHeading"><a href="admin_index.php?sort=Status&sortmethod=<?
echo "$sortmethod"; ?>">Status</a></p></td>
</tr>
<?
//Falls in URL angegeben, Wert fuer den aktuellen Page uebernehmen:
$page = $_GET['page'];
//Falls nicht angegeben, Page-Wert = 1. Seite:
if ($page == "") {$page = 1;}
//Berechnung der Datensatznr., die am Anfang und am Ende einer Seite angezeigt werden sollen.
$pagelastrow = $page * $pagerows;
$pagefirstrow = $pagelastrow - $pagerows + 1;
//Wenn mehr Datensaetze gefunden als 20 (passt nicht alles auf einer Seite):
if ($num > $pagerows) {
//Vorletzte Seitenzahl und letzte DatensatzNr. der vorletzte Seite ermitteln:
$pagess = (int)($num / $pagerows);
$lastpr = $pagess * $pagerows;
//Gesamtseitenzahl und letzte Datensatznr. der letzten Seite ermitteln:
if ($num > $lastpr) {
if ($page > $pagess) {
$temp = $num - $lastpr;
$pagelastrow = $lastpr + $temp;
}
$pages = $pagess + 1;
} else {
$pages = $pagess;
}
} else {
$pages = 1;
$pagelastrow = $num;
}
//Werte der auf einer jeden Seite anzuzeigenden Datensaetze ermitteln:
while ($pagefirstrow < $pagelastrow) {
$id=mysql_result($result,$pagefirstrow,"id");
$BandEN=mysql_result($result,$pagefirstrow,"BandEN");
$BandCN=mysql_result($result,$pagefirstrow,"BandCN");
$Link=mysql_result($result,$pagefirstrow,"Link");
$Genre=mysql_result($result,$pagefirstrow,"Genre");
$City=mysql_result($result,$pagefirstrow,"City");
$Since=mysql_result($result,$pagefirstrow,"Since");
$Status=mysql_result($result,$pagefirstrow,"Status");
?>
//Datenwerte in HTML-Tabelle anzeigen und mit Links versehen, die div. Zwecken erfuellen:
<tr>
<td width="30%">
<? if ($Link != "") {
//Link zu der entsprechenden Bandseite anzeigen falls es exitiert:
echo '<a href="http://www.rockinchina.com/';
echo "$Link"; echo '">';
echo "[b]$BandEN[/b]
[$BandCN]</a>";
} else {
echo "[b]$BandEN[/b]
[$BandCN]";
} ?>
</p>
</td>
<td width="30%">
<? echo "$Genre"; ?>
</p>
</td>
<td>
<? $LinK = "../Szene_$City.html";
//Link auf die Cityseite verlegen, falls es existiert:
if (file_exists($LinK)) {
echo "<a href=\"$LinK\">$City</a>";
} else {
echo "$CityK";
}
?>
</p>
</td>
<td>
<? echo "$Since"; ?>
</p>
</td>
<td>
<? echo "$Status"; ?>
</p>
</td>
</tr>
<?
++$pagefirstrow;
}
echo "</table>\n
Page(s): ";
//Links zu den uebrigen Seiten anzeigen mit Angaben fuer Sortieranforderungen und Seitenzahlen
$p = 0;
while ($p < $pages) {
++$p;
echo "[<a href=\"admin_index.php?page=$p&pages=$pages&sort=$sort&sortmethod=$Sortmethod\">$p</a>] ";
}
echo "</p>";
//Editors Notes:
echo "
[b]New Functions that work sofar[/b]:
1) Sort displayed data ASC or DESC by click on the Columne Header.
2) City Value automatically linked the City Scene Page if exist.
3) Edit and Delete Data (for Administrators only!).
4) Add a new Datarecord (for Adnimistrators only!).
5) Seperate all found data on Subpages (Works also for sorted Data).</p>
[b]To Do List[/b]:
1) Search Function for various properties like Origin, Stlye, Genre, Since etc.
2) Set display Genre as a Link for Genre-Search-Funktions.</p>
[b]Yang's Comment[/b]: it's so fuxxing [b]COOL[/b]
to have all this running so far!!! I didnt have any knowledge about PHP or
MySQL before starting this Project, now the baby is growing just fine and I
hope we can offer you a much comfortable way to access to our data and
info archive incl. Band Index, Rereases, Gig Dates etc. Since I am not
finished with all functions on my wish list, this project will remain a test.
Try to navigate throu all links on the page and report buggs on our forum
or per Email to [email]yang@rockinchina.com[/email], have fun!</p>";
echo "</div>\n
</div>\n
</html>\n
</body>";
?>
Kommentar