Hi. Habe Probleme, meine Scripte ein zu fügen. Ich Teste mal...
Ankündigung
Einklappen
Keine Ankündigung bisher.
Sortierung meiner Daten
Einklappen
Neue Werbung 2019
Einklappen
X
-
Ich hatte eben Probleme meine Scripte hoch zu laden. Also werde ich nochmal beginnen und die Sachen als Textfile einfügen.
Hallo. Ich bin im PHP-Sektor vor einigen Wochen eingestiegen und habe mir mit Hilfe von diversen PHP-Seiten und vielen Stolpersteinen meine erste Datenbank erstellt. Nun fehlt mir das Wissen, um diese zu erweitern. Zur Information. Ich erstellte eine Datenbank zum Verwalten von Büchern. Mittels Admin-Login-Rechten kann ich von der PHP-Seite dann auch Werte ändern oder auch löschen. Das funktioniert auch bestens. Da aber mittlerweile schon 800 Datensätze vorhanden sind, fehlt mir für die Übersichtlichkeit eine Sortierfunktion. Sortiert werden soll von A-Z. Die Daten ID, Titel, Autor, Sparte, Inhaltsangabe und Bemerkungen sind vorhanden. Nur wird leider immer nach ID sortiert. Wünschenswert wäre eine Sortierreihenfolge nach meinen Wünschen. Also per Klick auf einer meiner Daten zum Beispiel "Titel" oder "Autor" oder "Sparte".
Folgende Scripte sind vorhanden.
PHP-Code:<table>
<thead>
<tr>
<th style="width: 147px">Nutzeraktion</th>
<th style="width: 18px">ID</th>
<th>Titel</th>
<th>Autor</th>
<th>Sparte</th>
<th>Inhaltsangabe</th>
<th>Bemerkungen</th>
</tr>
</thead>
<tbody>
und
if (isset($_GET['aktion']) and $_GET['aktion'] == 'anzeigen') {
if ( isset($_GET['id'])) {
$id_einlesen = (INT) $_GET['id'];
if ($id_einlesen > 0) {
echo "<h1>Daten anzeigen von $id_einlesen</h1>";
$dseinlesen = $db->prepare("SELECT id, titel, autor, sparte, inhaltsangabe, bemerkungen
FROM datenfiles WHERE id = ? ");
$dseinlesen->bind_param('i', $id_einlesen);
$dseinlesen->execute();
$dseinlesen->bind_result($id, $titel, $autor, $sparte, $inhaltsangabe, $bemerkungen);
$dseinlesen->fetch();
echo "<p>ID: <b> $id </b>$<br>";
echo "Titel: <b> $titel </b><br>";
echo "Autor: <b> $autor </b><br>";
echo "Sparte: <b> $sparte </b><br>";
echo "Inhaltsangabe: <b> $inhaltsangabe </b></p>";
echo "Bemerkungen: <b> $bemerkungen </b></p>";
echo '<p><a href="internal.php">Tabelle anzeigen</a>';
$dseinlesen->close();
include_once('inc/bereich-fuss.inc.php');
exit;
}
}
}
Ich hoffe, das sind die 2 Sachen, die dafür benötigt werden. Falls sich jemand durchkämpfen möchte, bzw. ich etwas übersehen habe, poste ich hier die komplette Seite.
<?php
session_start();
?>
<head>
<style type="text/css">
.auto-style1 {
font-size: small;
}
</style>
</head>
<?php
session_start();
require_once("inc/config.inc.php");
require_once( "inc/db.php");
require_once("inc/functions.inc.php");
$user = check_user();
include("templates/header1.inc.php");
$ds_pro_seite = 10;
if (isset($_POST['aktion']) and $_POST['aktion']=='speichern' ) {
$titel = "";
if (isset($_POST['titel'])) {
$titel = trim($_POST['titel']);
}
$autor = "";
if (isset($_POST['autor'])) {
$autor = trim($_POST['autor']);
}
$sparte = "";
if (isset($_POST['sparte'])) {
$sparte = trim($_POST['sparte']);
}
$inhaltsangabe = "";
if (isset($_POST['inhaltsangabe'])) {
$inhaltsangabe = trim($_POST['inhaltsangabe']);
}
$bemerkungen = "";
if (isset($_POST['bemerkungen'])) {
$bemerkungen = trim($_POST['bemerkungen']);
}
if ( $titel != '' or $autor != '' or $sparte != '' or $inhaltsangabe != '' or $bemerkungen != '' )
{
$einfuegen = $db->prepare("INSERT INTO datenfiles
(titel, autor, sparte, inhaltsangabe, bemerkungen)
VALUES (?, ?, ?, ?, ?)");
$einfuegen->bind_param('sssss', $titel, $autor, $sparte, $inhaltsangabe, $bemerkungen);
if ($einfuegen->execute()) {
header('Location: internal.php?aktion=feedbackgespeichert');
die();
}
echo "<p>Daten werden gespeichert</p>";
}
}
include_once('inc/bereich-kopf.inc.php');
if (isset($_GET['aktion']) and $_GET['aktion'] == 'allesanzeigen') {
unset($_SESSION['suchbegriff']);
$_SESSION['seite_nr_normal'] = 0;
}
if (isset($_GET['aktion']) and $_GET['aktion'] == 'sicherheitsabfrage') {
if ( isset($_GET['id'])) {
$id_einlesen = (INT) $_GET['id'];
echo '<h1>Sicherheitsabfrage Loeschen</h1>';
echo '<p>Soll der folgende Datensatz unwiderruflich geloescht werden?</p>';
echo '<p><a href="?aktion=loeschen&id='. $id_einlesen.'">permanently delete!!</a></p>';
$_GET['aktion'] = 'anzeigen';
}
}
if (isset($_GET['aktion']) and $_GET['aktion'] == 'anzeigen') {
if ( isset($_GET['id'])) {
$id_einlesen = (INT) $_GET['id'];
if ($id_einlesen > 0) {
echo "<h1>Daten anzeigen von $id_einlesen</h1>";
$dseinlesen = $db->prepare("SELECT id, titel, autor, sparte, inhaltsangabe, bemerkungen
FROM datenfiles WHERE id = ? ");
$dseinlesen->bind_param('i', $id_einlesen);
$dseinlesen->execute();
$dseinlesen->bind_result($id, $titel, $autor, $sparte, $inhaltsangabe, $bemerkungen);
$dseinlesen->fetch();
echo "<p>ID: <b> $id </b>$<br>";
echo "Titel: <b> $titel </b><br>";
echo "Autor: <b> $autor </b><br>";
echo "Sparte: <b> $sparte </b><br>";
echo "Inhaltsangabe: <b> $inhaltsangabe </b></p>";
echo "Bemerkungen: <b> $bemerkungen </b></p>";
echo '<p><a href="internal.php">Tabelle anzeigen</a>';
$dseinlesen->close();
include_once('inc/bereich-fuss.inc.php');
exit;
}
}
}
if (isset($_GET['aktion']) and $_GET['aktion'] == 'loeschen') {
// loeschen von Datensatz
if (isset($_GET['id'])) {
$id = (INT) $_GET['id'];
if ( $id > 0)
{
$loeschen = $db->prepare("DELETE FROM datenfiles WHERE id=? LIMIT 1");
$loeschen->bind_param('i', $id);
if ($loeschen->execute()) {
echo "<p>Datensatz $id wurde gelöscht</p>";
}
}
}
}
if (isset($_GET['aktion']) and $_GET['aktion'] == 'feedbackgespeichert') {
echo '<p class="feedbackerfolgreich">Datensatz wurde gespeichert</p>';
}
$modus_aendern = false;
if (isset($_GET['aktion']) and $_GET['aktion'] == 'bearbeiten') {
$modus_aendern = true;
}
if (isset($_POST['aktion']) and $_POST['aktion'] == 'korrigieren') {
$id = "";
if ( isset ($_POST['id'])) {
$id = (INT) trim($_POST['id']);
}
$titel = "";
if (isset($_POST['titel'])) {
$titel = trim($_POST['titel']);
}
$autor = "";
if (isset($_POST['autor'])) {
$autor = trim($_POST['autor']);
}
$sparte = "";
if (isset($_POST['sparte'])) {
$sparte = trim($_POST['sparte']);
}
$inhaltsangabe = "";
if (isset($_POST['inhaltsangabe'])) {
$inhaltsangabe = trim($_POST['inhaltsangabe']);
}
$bemerkungen = "";
if (isset($_POST['bemerkungen'])) {
$bemerkungen = trim($_POST['bemerkungen']);
}
if ( $id != '' AND ( $titel != '' or $autor != '' or $sparte != '' or $inhaltsangabe != '' or $bemerkungen != '')) {
$update = $db->prepare("UPDATE datenfiles SET
titel = ?, autor = ?, sparte = ?, inhaltsangabe = ?, bemerkungen = ?
WHERE id = ? LIMIT 1");
$update->bind_param("sssssi", $titel, $autor, $sparte, $inhaltsangabe, $bemerkungen, $id);
if ( $update->execute() ) {
echo '<p class="feedbackerfolg">Datensatz wurde geaendert</p>';
$modus_aendern = false;
}
}
}
?>
<form action="" method="get">
suchen nach:
<input type="hidden" name="aktion" value="suchen">
<input type="text" name="suchbegriff" id="suchbegriff">
<input type="submit" value="suchen">
</form>
<?php
if ( $modus_aendern == false ) {
$daten = array();
if ( isset($_GET['suchbegriff']) ) {
$_SESSION['seite_nr_suche'] = 0;
}
if ( ! isset($_GET['suchbegriff']) and isset($_SESSION['suchbegriff']) )
{
$_GET['suchbegriff'] = $_SESSION['suchbegriff'];
}
if ( isset($_GET['suchbegriff']) and trim ($_GET['suchbegriff']) != '' )
{
$_SESSION['suchbegriff'] = $_GET['suchbegriff'];
$suchbegriff = trim ($_GET['suchbegriff']);
echo "<p>Gesucht wird nach: <b>$suchbegriff</b>";
echo ' - wieder <a href="?aktion=allesanzeigen">alle Daten anzeigen</a>';
echo "</p>";
$suche_nach = "%{$suchbegriff}%";
$suche = $db->prepare("SELECT id, titel, autor, sparte, inhaltsangabe, bemerkungen
FROM datenfiles WHERE autor LIKE ? OR titel LIKE ? OR sparte LIKE ? OR inhaltsangabe LIKE ? OR bemerkungen LIKE ?");
$suche->bind_param('sssss', $suche_nach,$suche_nach,$suche_nach,$suche_nach,$s uche_nach);
$suche->execute();
$suche->store_result();
echo "<p>Treffer: ". $suche->num_rows ."</p>";
$ds_gesamt = $suche->num_rows;
if ( isset($_GET['seite']) ) {
$seite = $_GET['seite'];
$_SESSION['seite_nr_suche'] = $_GET['seite'];
}
else
{
if ( ! isset($_SESSION['seite_nr_suche'])) {
$_SESSION['seite_nr_suche'] = 0;
$seite = 0;
}
else
{
$seite = $_SESSION['seite_nr_suche'];
}
}
$suche = $db->prepare("SELECT id, titel, autor, sparte, inhaltsangabe, bemerkungen
FROM datenfiles WHERE autor LIKE ? OR titel LIKE ? OR sparte LIKE ? OR inhaltsangabe LIKE ? OR bemerkungen LIKE ?
LIMIT $seite, $ds_pro_seite
");
$suche->bind_param('sssss', $suche_nach,$suche_nach,$suche_nach,$suche_nach,$s uche_nach);
$suche->execute();
$suche->bind_result($id, $titel, $autor, $sparte, $inhaltsangabe, $bemerkungen);
while ($suche->fetch()) {
$daten[] = (object) array('id' => $id,
'titel' => $titel,
'autor' => $autor,
'sparte' => $sparte,
'inhaltsangabe' => $inhaltsangabe,
'bemerkungen' => $bemerkungen);
}
$suche->close();
$id = '';
$titel = '';
$autor = '';
$sparte = '';
$inhaltsangabe = '';
$bemerkungen = '';
}
else
{
if ($erg = $db->query("SELECT * FROM datenfiles")) {
if ($erg->num_rows) {
$ds_gesamt = $erg->num_rows;
$erg->free();
if ( isset($_GET['seite']) ) {
$seite = $_GET['seite'];
$_SESSION['seite_nr_normal'] = $_GET['seite'];
}
else
{
if ( ! isset($_SESSION['seite_nr_normal']) )
{
$_SESSION['seite_nr_normal'] = 0;
$seite = 0;
}
else
{
$seite = $_SESSION['seite_nr_normal'];
}
}
if ($erg = $db->query("SELECT * FROM datenfiles LIMIT $seite, $ds_pro_seite ")) {
while ($datensatz = $erg->fetch_object()) {
$daten[] = $datensatz;
}
}
$erg->free();
}
}
}
if ( ! count($daten) ) {
echo "<p>Es liegen keine Daten vor </p>";
} else {
?>
<table>
<thead>
<tr>
<th style="width: 147px">Nutzeraktion</th>
<th style="width: 18px">ID</th>
<th>Titel</th>
<th>Autor</th>
<th>Sparte</th>
<th>Inhaltsangabe</th>
<th>Bemerkungen</th>
</tr>
</thead>
<tbody>
<?php
foreach ($daten as $inhalt) {
?>
<tr>
<td style="width: 147px">
<a href="?aktion=anzeigen&id=<?php echo $inhalt->id; ?>">show</a>
<?php
if ( isset($_SESSION['einloggen']['rechte']) and ($_SESSION['einloggen']['rechte'] == 'alles' OR $_SESSION['einloggen']['rechte'] == 'datenpflege') )
{
?>
<a href="?aktion=bearbeiten&id=<?php echo $inhalt->id; ?>">
change</a>
<?php
}
if ( isset($_SESSION['einloggen']['rechte']) and $_SESSION['einloggen']['rechte'] == 'alles' )
{
?>
<a href="?aktion=sicherheitsabfrage&id=<?php echo $inhalt->id; ?>">
clear</a>
<?php
}
?>
</td>
<td style="width: 18px"><?php echo $inhalt->id; ?></td>
<td><?php echo bereinigen($inhalt->titel); ?></td>
<td><?php echo bereinigen($inhalt->autor); ?></td>
<td><?php echo bereinigen($inhalt->sparte); ?></td>
<td><?php echo bereinigen($inhalt->inhaltsangabe); ?></td>
<td><?php echo bereinigen($inhalt->bemerkungen); ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
echo "<p>Seite: ";
$durchgang = 1;
for ($i = 0; $i < $ds_gesamt; $i=$i+$ds_pro_seite) {
if ( $i == $seite )
{
echo '<span class="seite_aktuell">'. $durchgang .'</span> ';
}
else
{
echo '<a class="seite_nr" href="?seite='. $i .'">'. $durchgang .'</a> ';
}
$durchgang++;
}
}
} else {
echo "<h1>Data change</h1>";
if ( isset($_GET['id'])) {
$id_einlesen = (INT) $_GET['id'];
if ($id_einlesen > 0) {
$dseinlesen = $db->prepare("SELECT id, titel, autor, sparte, inhaltsangabe, bemerkungen
FROM datenfiles WHERE id = ? ");
$dseinlesen->bind_param('i', $id_einlesen);
$dseinlesen->execute();
$dseinlesen->bind_result($id, $titel, $autor, $sparte, $inhaltsangabe, $bemerkungen);
while ($dseinlesen->fetch()) {
}
}
}
}
if ( ! isset($titel) ) {
$titel = '';
}
if ( ! isset($autor) ) {
$autor = '';
}
if ( ! isset($sparte) ) {
$sparte = '';
}
if ( ! isset($inhaltsangabe) ) {
$inhaltsangabe = '';
}
if ( ! isset($bemerkungen) ) {
$bemerkungen = '';
}
?>
<form id="datenpflege" action="" method="post">
<p class="auto-style1"><strong>Neuer Datensatz:</strong></p>
<p><label><span>Titel:</span>
<input type="text" name="titel" id="titel" value="<?php echo $titel; ?>">
</label></p>
<p><label><span>Autor:</span>
<input type="text" name="autor" id="autor" value="<?php echo $autor; ?>">
</label></p>
<p><label><span>Sparte:</span>
<input type="text" name="sparte" id="sparte" value="<?php echo $sparte; ?>">
</label></p>
<p><label><span>Inhaltsangabe:</span>
<input type="text" name="inhaltsangabe" id="inhaltsangabe" value="<?php echo $inhaltsangabe; ?>">
</label></p>
<p><label><span>Bemerkungen:</span>
<input type="text" name="bemerkungen" id="bemerkungen" value="<?php echo $bemerkungen; ?>">
</label> </p>
<?php
if ($modus_aendern != true ) {
echo '<input type="hidden" name="aktion" value="speichern">';
echo '<p><span> </span><p><input type="submit" value="speichern"></p>';
}
else
{
echo '<input type="hidden" name="aktion" value="korrigieren">';
echo '<input type="hidden" name="id" value="'. $id .'">';
echo '<p><span> </span><input type="submit" value="ändern"></p>';
}
?>
</form>
<p> </p>
<p> </p>
<?php
include_once('inc/bereich-fuss.inc.php');
?>
Ich habe die Befürchtung, dass ich mit diesem Scriptaufbau nicht weiter komme. Einige Internetseiten erzählten mir etwas von Array`s, wo ich aber nicht weiter komme bzw nicht weiß, wo ich das einfügen soll. Ich bin lerrnfähig, stehe aber noch am Anfang meiner Kentnisse.
Vielen Dank schon mal im voraus
LG Cliffi
Kommentar
-
Was du jetzt durcharbeiten muss ist ein Tutorial für SQL.
Code:SELECT `id`, `titel`, `autor`, `sparte`, `inhaltsangabe`, `bemerkungen` FROM `datenfiles` ORDER BY `titel` DESC Limit 30;
Kollation beachten wegen Umlauten ue ü etc.
Kommentar
-
Cliffi Bitte hier im Forum die Code-Tags nutzen. Danke! Ich habe das oben mal nachgeholt.The string "()()" is not palindrom but the String "())(" is.
Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
PHP.de Wissenssammlung | Kein Support per PN
Kommentar
Kommentar