Hallo zusammen,
muss mal wieder eine Dumme Frage stellen. Ihr habt mir ja schon öfteren geholfen.
Wenn ich den ShortCode in meinen Elementor einbaue und abspeichern möchte kommt "Serverfehler"
Die Function ist eine exteren Datenbank Abfrage. Nun habe ich gelesen das der Befehl "echo" und das "return" sich irgenwie nicht vertragen. Stimm das?
Hier mal mein code:
PHP
<?php
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
add_shortcode( 'nmcalendar', 'kalender' );
function kalender ()
{
global $wp;
//ICON auslesen
$images = plugins_url( 'bilder/', __FILE__ . '');
//Pfad zum Verzeichnis auslesen und übergeben
$current_url = home_url(add_query_arg(array()));
//Datenbankzugriffsvariablen
include_once(dirname(__FILE__) . '/nmconnect.php');
//Datensätze automatisch löschen;
$sqlab = "DELETE from kalender WHERE datum < date_add(current_date, interval -1 day)";
$db = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname) or die("Konnte keine Verbindung zur Datenbank herstellen");
$res = mysqli_query($db, $sqlab);
ob_start();
//Hier das sql-script
//Daten auslesen
$sqlab="SELECT k.rubrik_id, k.kalender_id, k.kver_id, k.kort_id, k.monats_id, k.veranstaltung, DATE_FORMAT(k.datum, '%d.%m.%Y') AS vondatum, TIME_FORMAT(k.uhrzeit_beginn, '%H:%i') AS uhranfang,TIME_FORMAT(k.uhrzeit_ende, '%H:%i') AS uhrende, k.beschreibung, b.veranstalter,
b.ver_id,b.strasse, b.plz, b.ort, b.telefon,b.email, b.internet, c.vort_id, c.veranstaltungsort FROM nmkalender k JOIN nmveranstalter b
ON k.kver_id = b.ver_id JOIN nmveranstaltungsort c ON k.kver_id = c.vort_id ORDER BY k.kalender_id LIMIT 0,3";
$db = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname) or die("Konnte keine Verbindung zur Datenbank herstellen");
$res = mysqli_query($db, $sqlab);
if(!$db || mysqli_num_rows($res)==0) {
echo "Derzeit sind keine Veranstaltungen eingestellt!";
}
else{
// Tabellenbeginn
echo '<tr>';
echo "<table border='0' cellpadding='0' cellspacing='0' class='nm-table-style'>";
while($dsatz = mysqli_fetch_assoc($res)) {
//Beschreibung etwas kürzen
$string=$dsatz['beschreibung'];
$length = 55; // Zeichenlänge hier vorgeben
$text = str_replace('/[^]*$/','',substr($string,0,$length)).'...';
$rubrik = $dsatz['rubrik_id'];
echo '<tr>';
if($rubrik == 0){
echo '<td class="nm-style-icon"><img src="'.$images.'leer.png"></td>';
}
if($rubrik == 1){
echo '<td class="nm-style-icon"><img src="'.$images.'veranstaltung.png"></td>';
}
if($rubrik == 2){
echo '<td class="nm-style-icon"><img src="'.$images.'arbeitv1.png"></td>';
}
if($rubrik == 3){
echo '<td class="nm-style-icon"><img src="'.$images.'weiterbildung.png"></td>';
}
if($rubrik == 4){
echo '<td class="nm-style-icon"><img src="'.$images.'hauptversammlung.png"></td>';
}
if($rubrik == 5){
echo '<td class="nm-style-icon"><img src="'.$images.'paechter.png"></td>';
}
if($rubrik == 6){
echo '<td class="nm-style-icon"><img src="'.$images.'stammtisch.png"></td>';
}
echo '<td class="nm-style-front"><a href='.$current_url.'/event?kalender_id='.$dsatz['kalender_id'].'> '.$dsatz['veranstaltung'].'</a><br><h5>'.$dsatz['vondatum'].' | '.$dsatz['uhranfang'].' Uhr - '.$dsatz['uhrende'].' Uhr</h5><h5>'.$text.'</h5></td>';
echo '</tr>';
}
echo'</table>';
echo '<td class="nm-style-front" ><a href=http://localhost/ewt/2021/04_kgv_reichenbach/alle-veranstaltungen/>Alle Veranstaltungen</a></td>';
}
return ob_get_clean();
}
?>
Alles anzeigen
Ich weiß den Code der DB kann man besser gestalten. Hier geht es jetzt nur um das Problem "Serverfehler"
Habe alles noch auf localhost. Weiß jemand um einen Rat?