Das hier ist auch gut: http://www.spassfieber.de/funp…nde-tag-auf-grabstein.jpg
Beiträge von Jan_Ph
-
-
Hallo Wolf, ich habe deine Anleitung befolgt und wenn ich das richtig verstehe, dann soll durch
der Inhalt der Datenbank ausgegeben werden. Auf der Website wird aber kein Fehler
und auch kein Inhalt sondern
Array
(
)ausgegeben. Da ich dachte das könnte auch gewollt sein (wüsste dann aber nicht wieso
) habe ich auch noch den dritten Schritt probiert, dort wird ein "unexpected" Fehler (also scheinbar zu beheben
) ausgegeben, also sag mir bitte, ob das gewollt ist oder nicht.
-
Ich verstehe, was du machen möchtest, und was dann passiert, habe aber ehrlich gesagt keinen Schimmer davon, wie ich das umsetzen kann. Danke schonmal für die schnelle Antwort.
-
Hallo zusammen,
ich habe vor einiger Zeit auch mit Hilfe dieses Forums eine Datenbank in meine Website eingebunden. Die Datenbank funktioniert korekt und problemlos, nur würde ich gerne,
Mehrere Inhalte (je inhalt eine zeile in der Datenbank) nach Datum sortiert anzeigenlassen. Mein Problem ist, dass bisher nur eine Zeile abgerufen wird.Hier der bisherige Quelltext der Seite:
PHP
Alles anzeigen<?php error_reporting(E_ALL); ?> <?php require_once ("config.php"); ?> <?php require_once ("functions.php"); ?> <?php $page = trim($_GET['page']); ?> <!DOCTYPE html> <html> <head> <title>PolitikKritikDE - Aktuell</title> <meta charset="ISO-8859-1"> <meta name="description" content=""> <meta name="author" content=""> <meta name="keywords" content=""> <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)"> <link href="design.main.css" type="text/css" rel="stylesheet"> </head> <body> <div id="complete"> <div id="kopf"> <a name="begin" /> <h1>Politik (-kritik) für Jung und Alt</h1> <h2>Wissenswertes über aktuelle Themen der Politik - In</h2><h3>Deutschland und Weltweit</h3> </div> <div id="ticker"> <h6>NEWS-Ticker</h6> <br /> <p><b>Keine Aktualisierung der Website vom 18.04.14 bis zum 28.04.14!</b></p> </div> <div id="menue"> <ol> <a href="home.html"><li>Allgemeines</li></a> <li>Aktuelles - Kritik</li> <a href="parteien.html"><li>Parteien - Kritik <div id="parteilinks"> <ul> <a href="parteien.html#cdu-csu"><li>CDU/CSU</li></a> <a href="parteien.html#spd"><li>SPD</li></a> <a href="parteien.html#fdp"><li>FDP</li></a> <a href="parteien.html#gruene"><li>Bündnis 90´/Die Grünen</li></a> <a href="parteien.html#linke"><li>Die Linke</li></a> <a href="parteien.html#afd"><li>Alternative für Deutschland</li></a> <a href="parteien.html#piraten"><li>Die Piraten</li></a> </ul> </div> </li></a> <a href="kommentare.html"><li>Kommentare</li></a> <a href="kontakt.html"><li>Kontakt und Linksammlung</li></a> <a href="impressum.html"><li>Impressum</li></a> </ol> </div> <div id="text"> <div id="textalone"> <h4>Aktuelles - Kritik</h4> </div> </div> <section> <?php echo getPage($page); ?> <article> <div id="linkbegin"> <a href="#begin"><p>Zum Seitenanfang</p></a> </div> <br /> </article> <br /> </section> <div id="fuss"> <h6>© by PolitikKritikDE. Alle Rechte vorbehalten. Wir übernehmen keine Verantwortung für verlinkte Seiten.</h6> </div> </div> </body> </html>
Hier die function.php:
PHP
Alles anzeigen<?php function getPage($pagename) { global $database_host; global $database_name; global $database_user; global $database_pass; global $database_pers; // neu und optional (persistant connection ^= bestehende verbindung) try{ // versuche $dbh = new PDO( // erzeuge neues objekt von PDO 'mysql:host='.$database_host.';dbname='.$database_name, // verbinde zu host und datenbank $database_user, // mit username $database_pass, // und passwort array(PDO::ATTR_PERSISTENT => $database_pers) // und nutze parameter ... beim verbinden ); }catch(PDOException $e){ // wenn "versuche" einen fehler erzeugt, dann "fange" diesen fehler in var $e // (wenn kein try/catch genutzt wird, dann wird das programm mit einem fatal error abgebrochen) // fehler ausgabe/kontrolle /* $e->getMessage() ^= gib mit von $e (wo der fehler "drin steckt" die meldung) du kannst mal testweise mit absicht ein falsches pw angeben und mit var_dump( $e->getMessage() ); den fehler ausgeben lassen */ die ("<article><br /><h5>404 - ERROR <br /> Die Artikel können nicht geladen werden, da eine Verbindung mit der Datenbank nicht möglich war!</h5><br /></article>"); } // ab hier sind wir verbunden. $sql = 'SELECT * FROM `aktuelles` WHERE `slug` = :pagename ORDER BY `aktuelles`.`datum` DESC;'; // :pagename ist ein platzhalter // LIMIT 1 (nur ein datensatz), weil du ja nur einen erwartest //SELECT * FROM `aktuelles` WHERE `slug` = :pagename ORDER BY `aktuelles`.`datum` DESC LIMIT 1; $para = array( ':pagename' => $pagename // hier wird der wert für den platzhalter hinterlegt ); // die query wird vorbereitet: $stmt = $dbh->prepare($sql); // die query (das statement) wird ausgeführt: if(!$stmt->execute($para)){ // wenn "nicht execute", also fehler - // dann hier fehler handling (speichern, ausgeben, wie auch immer): var_dump($stmt->errorInfo()); die; }else{ // wenn das staement ausgeführt werden konnte: $content = $stmt->fetchAll(); // fetch all (hole alle) // return das, was du brauchst if(isset($content[0]["artikel"])){ return $content[0]["artikel"]; } } // wenn wir hier sind, haben wir noch nicht "returned", also keine daten. return false; } ?>
-
Nein, Wolf hat recht, im Impressum steht weder der Name, noch die Adresse. Das weiß ich und ist so beabsichtigt, da noch nicht klar ist, wer sie hostet (ich oder ein Kumpel). Das das nicht rechtens ist, weiß ich, aber danke für den Hinweis.
Basiii du hast mit dem paragraph und anchor tag recht, jedoch ist auch dass beabsichtigt, da das Design sonnst nicht funktioniert. Die Designverschiebung könnte damit zusammenhängen, dass ich während der Erstellung mit 2 verschiedenen versionen von Firefox gearbeitet habe, ich werde da nochmal drübergucken. Deine Faulheit, finde ich nicht schlimm, da ich erstens selber auch nicht unbedingt nen ganzen quelltext für jemanden verfassen würde und 2. ich mich irgendwie fühle als könnte ich es nicht selbst, wenn mir das jemand macht (ich weiß aber wie es gemeint ist).
Und zu guterletzt, ich habe eine Liste (papier), die ich bei den Videos von Webmastercrashcurs / Axel (Owner von HTML Seminar) mitgeschieben habe.
-
Erst einmal vielen Dank, ich werde mich der Kritik annehmen und mal sehen, was ich verbessern kann.
1. Das mit der Eigenwerbung tut mir leid ;), das kommt wahrscheinlich vom Titel "Eure Werke", da bin ich davon ausgegangen, eine Vorstellung währe angebracht...
2. Design: Ich verstehe deine Anmerkungen und werde sie unter allen Umständen berücksichtigen, was mich wundert, das bisher alle, die ich gefragt habe meinten, dass das Design ansprechend sei
.
2.1 Für wie schlimm hältst du die Asymmetrie, dass sie vorhanden ist weiß ich teilweise, den Grund kenne ich allerdings nicht, alle CSS Einstellungen sind "richtig", und ich finde, es kommt nicht darauf an, wie die Formatierung tatsächlich ist, sondern wie sie wirkt (natürlich sollte man alles gerade anordnen aber wenn man fertig ist, kann man das ein wenig ändern, um das aussehen an zu passen).
2.2 Wo liegen die Asymmetrien und wie hast du sie entdeckt ?3.Inhalt: Ich verstehe nicht, warum ich nicht geschrieben habe, das ich die Website inhaltmäßig erst "angetippt" habe und auch schon mögliche weitere Autoren sowie Leute die sich auch mit dem Thema befassen kontaktiert habe.
4. Quellcode: Die Fehler im Quellcode rühren daher, dass ich Elemente verwende, die es zwar gibt und die funktionieren, die aber als Fehler angesehen werden leider gibt es für sie keinen Ersatz, falls doch gebt mir bitte bescheid.
Ich möchte mich nicht rausreden bitte nicht falsch verstehen. Ich werde nun noch einige Datenbank spezifische Dinge einfügen und dann geht es an den Inhalt (endlich
). Und bevor ich es vergesse, vielen dank an whismor, die Idee mit den Zeitungsbeiträgen ist gut, andere Medien einzubinden, da muss ich nochmal drüber nachdenken.
-
Das. Ist. Extrem. Traurig.
Und dann wundern sich wieder alle, wie die NSA so leicht Daten abhören kann, schließlich wurden auch modernere Übertragungsmethoden in neuere Versionen eingebaut, oder irre ich mir da?
Das stimmt allerdings, aber die Hintertüren wurden auch modernisiert ;D(soll ne art von Beruhigung darstellen, im sinne, dann brauch ich auch keine Verschlüsselungen)
Win XP bleibt so sicher wie vorher, wenn man sich updates von drittanbietern zieht, die gibts, weil alle Börsen-, Bank- und Kassensysteme sowie Fahrkartenautomaten auf XP laufen.PS: Hab Win7, will aber ne zweite Partition mit Linux...
-
Verstehe ich das richtig, dass 'bspwebsite' der Name der Tabelle ist?
-
So, nachdem das Adrenalin von Deutschland gegen Frankreich und einem AÜßERST knappen 1:0 Sieg noch in meinen Adern steckt, hier nochmal eine Frage:
Wenn ich dort deinen Code einsetze, ich habe es auch mit leicht veränderten Versionen des Selbigen versucht, kommt immer folgender Fehler:
Notice: Array to string conversion in E:\xampp\htdocs\testwebsite\aktuell.php on line 95
Array
Warum kommt er, der Fehler muss im Abschnitt hinter dem letzten else in der functions php liegen, wie gesagt, in folgendem code:
PHP
Alles anzeigen// die query (das statement) wird ausgeführt: if(!$stmt->execute($para)){ // wenn "nicht execute", also fehler - // dann hier fehler handling (speichern, ausgeben, wie auch immer): // den fehler bekommst du via: $stmt->errorInfo() // also zB var_dump($stmt->errorInfo()); die("Fehler beim Ausführen ... [Deine Eigene mneldung hier ...]"); }else{ // wenn das staement ausgeführt werden konnte: $content = $stmt->fetchAll(PDO::FETCH_ASSOC); // fetch all (hole alle) return $content; } /* oder auch gleich: return $stmt->fetchAll(PDO::FETCH_ASSOC); */ }
PS: Nicht wundern, die überählige geschweifte Klammer ist von der Funktion.
-
Eine Frage habe ich noch, wie stelle ich es an, dass ich mehrere Zeilen anzeigen und nach Spalte Datum sortieren lasse?
Letzteres ist klaar (mit: ...ORDER BY Datum...) aber wie geht ersteres, bei mir spuckte er immer nur eine bestimmte aus?
Danke schoneinmal im Vorraus.
-
UFFFFFFFFFFFFFFFFF
Ich kann meine Freude nicht in Worte fassen, DAAAAAANNNNNKEEEEEEE an ALLE es funktioniert.
Wirklich an alle die mit gedacht haben und besonders "cotton" und "wolf"
die mir in den letzten Tagen sehr geholfen haben, auch im allgemeinen PHP und Programmier Verständnis. DANKE.
LG Jan_Ph
Wer möchte kann sich mal meine Website ansehen, die Datenbank wird in den nächsten Tagen implementiert...
PS: Ich weiß nicht ob nötig aber wenn kann der Artikel nun geschlossen werden.
-
Hier der Code:
PHP
Alles anzeigenfunction getPage($pagename) { global $database_host; global $database_name; global $database_user; global $database_pass; global $database_pers; // neu und optional (persistant connection ^= bestehende verbindung) try{ // versuche $dbh = new PDO( // erzeuge neues objekt von PDO 'mysql:host='.$database_host.';dbname='.$database_name, // verbinde zu host und datenbank $database_user, // mit username $database_pass, // und passwort array(PDO::ATTR_PERSISTENT => $database_pers) // und nutze parameter ... beim verbinden ); }catch(PDOException $e){ // wenn "versuche" einen fehler erzeugt, dann "fange" diesen fehler in var $e // (wenn kein try/catch genutzt wird, dann wird das programm mit einem fatal error abgebrochen) // fehler ausgabe/kontrolle /* $e->getMessage() ^= gib mit von $e (wo der fehler "drin steckt" die meldung) du kannst mal testweise mit absicht ein falsches pw angeben und mit var_dump( $e->getMessage() ); den fehler ausgeben lassen */ die ("<article>Die Artikel können nicht geladen werden, da keine Verbindung mit der Datenbank hergestellt werden konnte!</article>"); } // ab hier sind wir verbunden. $sql = 'SELECT `artikel` FROM `aktuelles` WHERE `slug` = "aktuell" ORDER BY `datum` DESC LIMIT 1;'; // :pagename ist ein platzhalter // LIMIT 1 (nur ein datensatz), weil du ja nur einen erwartest $para = array( ':pagename' => $pagename // hier wird der wert für den platzhalter hinterlegt ); // die query wird vorbereitet: $stmt = $dbh->prepare($sql); // die query (das statement) wird ausgeführt: if(!$stmt->execute($para)){ // wenn "nicht execute", also fehler - // dann hier fehler handling (speichern, ausgeben, wie auch immer): var_dump($stmt->errorInfo()); die; }else{ // wenn das staement ausgeführt werden konnte: $content = $stmt->fetchAll(); // fetch all (hole alle) // return das, was du brauchst return $table["artikel"]; } // wenn wir hier sind, haben wir noch nicht "returned", also keine daten. return false; }
Hier in Zeile 47.
LG
-
Das was in der Überschrift steht, will und wollte ich mit meiner Website bekämpfen,
aber um zurück zum Thema zu kommen:Wir haben im Informatik Unterricht angefangen eine Website, mit Thema unserer Wahl zu erstellen,
dafür nutzte die Schule die Tutorials von Axel, welche ich mir auch zu Hause auf You Tube angesehen habe.
Nachdem erfolgreichen Abschluss des Projekts, habe ich beschlossen die Seite weiter zu führen und nach und nach
weiter aus zu bauen. Zur Zeit baue ich noch eine Datenbank ein.Die Erstellung der Website hat mich im Übrigen ca. 40 Stunden gekostet und ich habe 2 Monate gebraucht.
Viel Spass mit der Website
PolitikKritikDE/Jan_PhPS: Schreibt gerne Eure Meinung hier oder an auf der Website beschriebene Orte...
-
So,
nun da ich alles noch einmal korrigiert habe, sind 3 der Fehler verschwunden,
einer wegen der Adresse und einer wegen doppelgemoppel oder wie ihr das nennt.Folgender bleibt vorhanden:
Notice: Undefined variable: table in E:\xampp\htdocs\testwebsite\functions.php on line 49
Der Code steht oben (letzter Beitrag von cotton, vor diesem).
An sonsten funkts, GEIIIILLLLLLL!!!!!!!
-
Hallo, ich habe den neuen Code von cotton nochmal ausprobiert, und wie es scheint läuft er. Ich habe ihn außerdem im Groben verstanden. Jedoch habe ich noch folgende Frage, von der wie ich glaube auch die folgenden Fehlermeldungen herrühren: Wie muss ich mit der Variablen $pagename umgehen ? Ihr könnt es mir gerne in den Code schreiben.
Hier die Fehlermeldungen:
Notice: Undefined index: page in E:\xampp\htdocs\testwebsite\aktuell.php on line 6
Notice: Undefined variable: pagename in E:\xampp\htdocs\testwebsite\aktuell.php on line 95
Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in E:\xampp\htdocs\testwebsite\functions.php on line 30
Notice: Undefined variable: table in E:\xampp\htdocs\testwebsite\functions.php on line 49
PS: Nochmal vielen Dank
, ich habe das Gefühl, dass es nun funkt.
-
Hallo alle zusammen,
da ich erst kürzlich in PHP eingestiegen bin, muss ich zugeben, dass mich der Code von cotton etwas in der Hinsicht verwirrt, dass ich oft nicht weiß, was als recource eingegeben werden soll und wofür man das braucht, ich kann verstehen, wenn ihr jetzt denkt, das ich wahrscheinlich keine Ahnung von nichts habe, aber ich blicke einfach an einigen Stellen nicht durch.Hier fndet ihr nochmal den von mir kommentierten Code von cotten, sollte etwas falsch oder mit ? kommentiert sein, erklährt es mir bitte.
PHP
Alles anzeigen<?php // ??? try{ // ??? übergabe der zugangsdaten ??? $dbh = new PDO('mysql:host='.$DB['host'],$DB['user'],$DB['password'],array(PDO::ATTR_PERSISTENT => $DB['pers_con'])); // ??? }catch(PDOException $e){ // fehler ausgabe/kontrolle die($e->getMessage(test nachricht)); } // ortsangaben der daten zur auslesung (in sql) ??? $sql = 'SELECT `artikel` FROM `aktuelles` WHERE `slug` = "'.mysql_real_escape_string($pagename).'" ORDER BY `dasNachDemDuSortierenWillst`ASC;'; // :pagename ist ein platzhalter // ??? $para = array( ':pagename' => $pagename ); // ??? $stmt = $dbh->prepare($sql); // ??? (der ganze befehlsblock erscließt sich erst, wenn ich das von vorher verstehe) if(!$stmt->execute(($para)?$para:null)){ var_dump($stmt->errorInfo()); die; }else{ while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ var_dump($row); } } ?>
-
Cool
, ein vertiger Qellcode währe ganicht nötig gewesen, aber geil DANKE, mal sehen, wenn ich noch Probleme habe, melde ich mich nochmal.
Vielen DANK nochmal an alle für alles...PS: Ich kann ORDER BY doch auch weglassen oder?
-
Folgende 4 Fehler bekomme ich mit wolf's code leider immernoch:
Warning: mysql_select_db() expects parameter 2 to be resource, object given in E:\xampp\htdocs\testwebsite\functions.php on line 14
Deprecated: mysql_real_escape_string(): The mysql extension is
deprecated and will be removed in the future: use mysqli or PDO instead
in E:\xampp\htdocs\testwebsite\functions.php on line 16Warning: mysql_query() expects parameter 2 to be resource, object given in E:\xampp\htdocs\testwebsite\functions.php on line 18
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, null given in E:\xampp\htdocs\testwebsite\functions.php on line 20
Hier der entsprechende Code:
PHP<?php function lese_artikel($pagename) { //DB verfügbar machen global $DB; //eine verbindung aufbauen $verbindung = mysqli_connect($DB['host'], $DB['user'], $DB['password']); //Wenn verbindung FALSE if (!$verbindung){ die ("<article>Die Artikel können nicht geladen werden, da keine Verbindung mit der Datenbank hergestellt werden konnte!</article>"); } //Datenbank auswählen mysql_select_db ($DB['name'], $verbindung); //WÄHLE artikel VON aktuelles WO slug = 'seitenname'; $sql = 'SELECT `artikel` FROM `aktuelles` WHERE `slug` = "'.mysql_real_escape_string($pagename).'" ASC;'; //sql ausführen $res = mysql_query($sql, $verbindung); //Die Datensätze in ein array schreiben $array = mysql_fetch_assoc($res); //Den 1. artikel holen $content = $array[0]; //und zurrückgeben return $content; }?>
Ich verstehe ehrlich gesagt niccht, warum das jetzt fehler sind?
-
Vielen Dank für die Antworten, ich werde mich morgen mal damit befassen, wenn ich Zeit und Ruhe habe! Nochmals vielen vielen Dank für die sau schnelle Antwort. Echt Cool.
-
Hallo liebe Comunity,
ich habe vor einigen Wochen eine HTML und CSS Website erstellt, in die ich nun eine mySQL DB mit hilfe von PHP einfügen möchte. Ich habe mir dazu Tutorials angesehen und alles wie dort beschrieben nachgebaut. Mein Problem ist, dass ich zwar keine Fehlermeldung jedoch auch keine Ausgabe Bekomme. Woran liegt das? (wahrscheinlich bin ich nur zu blöd den Fehler zu erkennen...)Hier die meiner Ansicht nach relevanten Teile des Codes:
PHP
Alles anzeigen<?php require_once ("config.php") ?> <?php require_once ("functions.php") ?> <?php $page = isset ($_GET["page"]) ? $_GET["page"] : "default" ; ?> <!DOCTYPE html> <html> <head> <title>PolitikKritikDE - Aktuell</title>
Weiter unten in der Datei:PHP
Alles anzeigen<h4>Aktuelles - Kritik</h4> </div> </div> <section> <?php echo getPage ($page); ?> <!-- <article>
Hier noch die functions.php und die config.php:PHP
Alles anzeigen<?php function getPage($pagename) { global $database_host; global $database_name; global $database_user; global $database_pass; $db = mysql_connect($database_host, $database_user, $database_pass); if ($db === FALSE){ die ("<article>Die Artikel können nicht geladen werden, da keine Verbindung mit der Datenbank hergestellt werden konnte!</article>"); } mysql_select_db ($database_name, $db); $sql = 'SELECT artikel FROM aktuelles WHERE slug = "' . mysql_real_escape_string($pagename) . '";'; $res = mysql_query($sql, $db); $table = mysql_fetch_assoc($res); $content = $table["artikel"]; return $content; } ?>
Und die config.php:PHP
Alles anzeigen<?php $database_host = "localhost"; $database_name = "website"; $database_user = "Website-Admin"; $database_pass = "tuffi35"; ?>
PS: Ich gehe davon aus, dass es bereits eine Antwort auf die Frage giebt, ich habe jedoch keine gefunden. Solltet ihr eine finden, reicht ein Verweis darauf. Solltet ihr mehr informationen benötigen, sagt bescheid!
EIN GAAAAAANZ GROßES Dankeschön schon jetzt, allen die sich gedanken machen / gemacht haben!