Hallo nochmal!
drucko, danke erstmal für Deine Antwort. Es war sehr hilfreich, in Gästebuch- und anderen Tutorials nach entsprechenden Herangehensweisen zu schauen. Inzwischen hab ich mir auch ein Buch zum Thema geleistet
Nun bin ich schon einigermaßen weit. Die DB steht, das Ein- und Ausgeben von Links funktioniert. Aber ich hab ein paar Bedenken was die Performance betrifft bzw. ob ichs so richtig gemacht habe..
Drum hier mal mein bisheriges "Werk":
Die DB hat die Felder:
ID (is klar)
category (jeder Link ist einer category zugeordnet)
name (der Name des Links)
link (der Link selbst)
fuctions.inc.php:
Code:
<?php
// Zugangsdaten
$dbserver = "###";
$nutzer = "###";
$passwort = "###";
$dbname = "startsite";
// Fehlermeldungen
$db_fehler1 = "...";
$db_fehler2 = "...";
//Verbindung aufbauen
@$db = mysql_connect($dbserver,$nutzer,$passwort) OR die($db_fehler1);
//Datenbank als Standard definieren
@mysql_select_db($dbname,$db) OR die($db_fehler2);
$ResultPointer = mysql_query("SELECT category FROM content", $db);
// verschiedene categories holen
for($i = 0; $i < mysql_num_rows($ResultPointer); $i++){
$cat_temp = mysql_fetch_object($ResultPointer);
$allCategories[$i] = $cat_temp->category;
}
$categories = array_keys(array_flip($allCategories)); // remove duplicate categories
// $categories auf $left und $middle aufteilen
$categoriesSize = sizeof($categories);
$half = ceil($categoriesSize / 2); // aufrunden
for($i = 0; $i < $half; $i++){
$left[$i] = $categories[$i];
}
for($i = $half; $i < $categoriesSize; $i++){
$middle[$i] = $categories[$i];
}
?>
startsite-einfuegen.php:
Code:
<?php
include 'functions.inc.php';
?>
<html>
<head>
<title>Eintrag hinzufügen</title>
</head>
<body>
<?php
$SQL = "INSERT INTO content (category, name, link) VALUES ('".$_REQUEST['category']."', '".$_REQUEST['name']."', '".$_REQUEST['link']."')";
mysql_query($SQL, $db);
if(mysql_affected_rows($db) == 1)
{
?>
<p>Eintrag erfolgreich!<br>
<a href="startsite-admin.php">Zurück</a></p>
<?php
}
else
{
?>
<p>Beim Eintragen ist ein Fehler aufgetreten.<br>
<a href="javascript:history.back();">Zurück</a></p>
<?php
}
?>
</body>
</html>
startsite.php:
Code:
<div id="left">
<?php
// einzelne categories samt links auflisten
foreach($left as $singleCat){
?>
<div class="box">
<h1>Headline <?php echo($singleCat); ?></h1>
<ul>
<?php
$ResultPointer = mysql_query("SELECT * FROM content", $db); // resultPointer auf Anfang
for($i = 0; $i < mysql_num_rows($ResultPointer); $i++){
$element = mysql_fetch_object($ResultPointer);
if($element->category == $singleCat){
?>
<li><a href="<?php echo($element->link); ?>"><?php echo($element->name); ?></a></li>
<?php
}
}
?>
</ul>
</div>
<?php
}
?>
</div><!-- end of left -->
<div id="middle">
<?php
// einzelne categories samt links auflisten
foreach($middle as $singleCat){
?>
<div class="box">
<h1>Headline <?php echo($singleCat); ?></h1>
<ul>
<?php
$ResultPointer = mysql_query("SELECT * FROM content", $db); // resultPointer auf Anfang
for($i = 0; $i < mysql_num_rows($ResultPointer); $i++){
$element = mysql_fetch_object($ResultPointer);
if($element->category == $singleCat){
?>
<li><a href="<?php echo($element->link); ?>"><?php echo($element->name); ?></a></li>
<?php
}
}
?>
</ul>
</div>
<?php
}
?>
</div><!-- end of middle -->
Nicht erschrecken, ist gar nicht so viel wies ausschaut
Wenn sich niemand die Mühe machen möchte, das alles zu lesen (kann keiner verübeln) dann bitte nur die functions.inc.php anschauen.
Ich hole mir category aus der DB und durchlaufe alle Reihen der DB und schreibe die Werte in einen Array. Danach lösche ich öfter vorkommende Werte aus dem Array wieder raus.
Wenn ich nun eine Liste von mehreren tausend Werten hätte, dann drückt das doch die Performance, oder? Gibts da ne schlauere Lösung?
Ich bin natürlich auch dankbar für jeden anderen Tip zu meinem (Anfänger-)Code!!
Danke schonmal!!