Hallo Christiane,
vielen Dank für die Update-Anweisung.
VG Dietmar
Hallo Christiane,
vielen Dank für die Update-Anweisung.
VG Dietmar
Hallo Christiane,
danke für deine Hilfe.
Zitatjdgf willst du deine Datenbankstruktur posten? Dann könnte man dir gezielter helfen und dein Query exakt zusammenbauen.
Es ist eigentlich nur eine Tabelle, bestehend aus vier Spalten (id, text, autor, datum).
ZitatDu machst zuerst ein Select, dann ein update. Stehen die beiden in einem Zusammenhang? Machst du das Select um dann irgendwas mit den Daten zu machen und machst später ein update? Oder möchtest du nur ein Update machen?
Die Spalten 1 bis 3 (id, text und autor) der Tabelle ändern sich nicht. Die vierte Spalte 'datum' dient dazu, sicherzustellen, dass nicht an zweimal derselbe Text veröffentlicht wird.
Mit dem der Select-Anweisung wird überprüft, ob die Datumsspalte leer ist. Für diesen Fall wird zum Beispiel der Text A veröffentlicht und anschließend in die vierte Spalte das Tagesdatum mit "Update" eingetragen werden. Dadurch kann dieser Text beim nächsten Mal nicht mehr veröffentlicht werden.
Hallo,
ich will in meinem Code einen zufälligen Datenbankeintrag auslesen, dessen Datumsspalte leer ist und
anschließend in die Datumsspalte das Tagesdatum mit "update" eintragen.
Kann ich bei der Abfrage nach der leeren Zelle IS NULL oder == " " verwenden?
Fügt JDatabase automatisch danach das Datum in den aktuellen Datensatz ein oder muss ich den
Datensatz erneut mit "select" bestimmen?
$datum = date("md", $timestamp);
//Auswahl Datensatz
$query->select($db->quoteName(array('autor', 'text', 'datum')));
$query->from($db->quoteName('verzeichnis'));
$query->where ('datum' IS NULL);
$query->order('rand()');
$query->setLimit(1);
//Datum eintragen
$query->update($db->quoteName('verzeichnis'))->set($datum);
$db->setQuery($query);
Alles anzeigen
Gruß Dietmar
Danke für den Hinweis
Vielen Dank. Kann ich mit diesem Script auch Html-Code einbinden?
Das Umlautproblem ist gelöst.
@later
Hallo,
ich habe deine Anleitung umgesetzt und das Modul NameDayTest wird richtig angezeigt. Vielen Dank
Es gibt nur ein Problem mit den Umlauten, die anstelle des Umlauts mit Fragezeichen erscheinen.
Ich verwende jetzt aber JDatabase und als größter Vorteil ist mir genannt worden, dass es hier keinen Zeichenprobleme gibt.
Woher können die jetzt kommen?
Gruß Dietmar
@later
ZitatMir kommen generell die meisten Pfadangaben in den Meldungen komisch vor. Oder hast du die gekürzt?
Ich habe nur hier zwischen den zwei aufeinanderfolgenden // Zeichen eine Buchstabenkombination entfernt, die auf den
Namen des Webusers hinweist. Sie gehört zur Pfadangabe zur Joomlainstallation.
ZitatHm, fällt mir nur noch ein, vor Zeile 21 eingeben: echo JPATH_SITE."/tmp";exit;
Wenn ich diese Zeile in der index.php des Templates eingebe, wird eine leere Seite mit der Pfadangabe
angezeigt. Anstelle der Pünktchen steht wieder der Nutzername.
ZitatAlso prüfe, ob das Joomla-tmp-Verzeichnis beschreibbar ist für Joomla.
tmp-Ordner und die nächste Ebene haben die Rechte 755
ZitatPoste die paar Zeilen unter System > Systeminformationen > Reiter Systeminformationen, ob CGI aktiviert ist.
PHP erstellt für Linux alfa3059 4.4.6-040406-generic #201603161231 SMP Wed Mar 16 16:33:41 UTC 2016 x86_64
Datenbankversion 5.5.47-0+deb8u1
Datenbankzeichensatz latin1_german1_ci
Datenbankverbindungszeichensatz utf8mb4_general_ci
PHP-Version 5.6.24
Webserver Apache
PHP-Interface für den Webserver cgi-fcgi
Joomla!-Version Joomla! 3.6.2 Stable [ Noether ] 4-August-2016 23:41 GMT
Joomla!-Plattform-Version Joomla Platform 13.1.0 Stable [ Curiosity ] 24-Apr-2013 00:00 GMT
Browsererkennung Mozilla/5.0 (Windows NT 6.1; rv:47.0) Gecko/20100101 Firefox/47.0
Zitat
Deaktiviere den FTP-Modus in Joomla, solltest du ihn aktiviert haben.
war deaktiviert
Ich hatte die Tage zuvor nur versucht meine Scripts zu aktualisieren (php7 und Wechsel zu JDatabase). Dabei hatte ich mehrmals von php5.6 auf php7 umgestellt, um zu sehen, ob sie funktionieren.
Hallo,
auf einer Webseite setze ich Flexi Custom Code ein. Sie Module sind jetzt nicht mehr sichtbar,
Seit Donnerstag habe ich Probleme. Wenn ich die maximale Fehleranzeige aktiviere, werden Fehler in der helper-Datei ab Zeile 20 bis 26 angezeigt:
Zeile 19 class modFlexiCustomCode { Zeile 20 public static function parsePHPviaFile($codearea) { Zeile 21 $tmpfname = tempnam(JPATH_SITE."/tmp", "html"); Zeile 22 $handle = fopen($tmpfname, "w"); Zeile 23 fwrite($handle, $codearea, strlen($codearea)); Zeile 24 fclose($handle); Zeile 25 include_once($tmpfname); Zeile 26 unlink($tmpfname); Zeile 27 }
Die Fehlermeldungen:
Warning: tempnam(): open_basedir restriction in effect.
File(/tmp) is not within the allowed path(s):
(/var/www//html/:/var/www//phptmp/:/var/www//files/:/var/www//atd/:/usr/share/php/:/opt/php/)
in /var/www//html/modules/mod_flexi_customcode/helper.php on line 21
Warning: fopen(): Filename cannot be empty in /var/www//html/modules/mod_flexi_customcode/helper.php on line 22
Warning: fwrite() expects parameter 1 to be resource, boolean given in /var/www//html/modules/mod_flexi_customcode/helper.php on line 23
Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www//html/modules/mod_flexi_customcode/helper.php on line 24
Warning: include_once(/var/www//html): failed to open stream: Operation not permitted in /var/www//html/modules/mod_flexi_customcode/helper.php on line 25
Warning: include_once(): Failed opening '' for inclusion (include_path='.:/opt/php/5.6.24/share/pear') in /var/www//html/modules/mod_flexi_customcode/helper.php on line 25
Warning: unlink(): open_basedir restriction in effect. File() is
not within the allowed path(s):
(/var/www//html/:/var/www//phptmp/:/var/www//files/:/var/www//atd/:/usr/share/php/:/opt/php/)
in /var/www/web7/html/modules/mod_flexi_customcode/helper.php on line 26
}
Alles anzeigen
Kann mir jemand helfen.
Gruß Dietmar
In der Abfrage der Namenstage kann jeden Tag eine unterschiedliche Zahl an Namenstagen
auftreten. Deshalb soll die Ausgabe so aussehen, dass vor dem letzten Namenstag ein "und"
eingefügt wird, ansonsten immer ein Komma. Für die Abfrage habe ich bisher den nachfolgenden
Code verwendet. Dabei musste ich die Variable $i=0; einführen, die das Script hochzählen soll, bis
es die maximale Anzahl (=Variable $anzahl bzw. $count) erreicht.
Es führt aber zu einer Fehlermeldung. Daher meine Fragen:
Kann man bei JDatabase eine Variable einfügen?
Was ist an dem nachfolgenden Code falsch?
Die Variable $anzahl habe ich durch $count ersetzt, da ich mit dem Code
//Anzahl N-Tage ermittlen:
$db->setQuery($query);
$db->query();
$count= $db->getNumRows();
echo $count;
die Anzahl der Namenstage ermittelt habe. Diese wird richtig unter "Namenstage 2"
angezeigt.
Gruß Dietmar
Vielen Dank.
Gibt es den Befehl "update" bzw. "set" auch separat, nicht nur mit setQuery?
Ich suche so etwas wie hier (für php) für Jdatabase,
da ich nur wenig Erfahrung habe. Die Links, die ich mit
Google finde, erläutern immer dasselbe.
Hallo,
gibt es eine Übersicht über die Befehle, die man bei JDatabase benutzen kann.
Ich möchte den Mysql-Code entsprechend umschreiben: Zum Bsp: <>, <, >, =
//Datensätze auf NULL setzen, falls alle Felder in Spalte datum belegt
$testNull="SELECT datumpage FROM test WHERE datumpage<>0";
$res=mysql_query($testNull);
$num = mysql_num_rows($res);
if (($menge - 6) < $num) {
$ziel = "UPDATE witz SET datumpage=0 WHERE datumpage >0 AND datumpage <> $gestern";
$tor = mysql_query($ziel);
$ziel2 = "UPDATE test SET datum=0 WHERE datum >0 AND datum <> $gestern";
$tor2 = mysql_query($ziel2);
}
Gruß Dietmar
Vielen Dank.
Hallo,
kann man bei JDatabase auch den Parameter "FETCH_ASSOC" verwenden, um im Array die Spaltennamen aus der Datenbank zu haben.
Gruß Dietmar
Danke für den Hinweis.
Bei Mysql hatte ich es so formatiert:
echo "<p class=\"strong\">$row->jahr</p><p class=\"standard\">$row->text</p><br>";echo "<p style=\"margin-top:15px\"><strong style=\"padding-right:10px; color:red\">".$dsatz["jahr"]."</strong><span style=\"color: #003399; font-weight:700;\">".$dsatz["name"]."</span></p><p style=\"text-align:justify\">".$dsatz["text"]."</p>"; }
Mit der Suche habe ich den Hinweis gefunden, aber damit komme ich nicht weiter.
Zu Zeit sieht es so aus:
ZitatArray ( [0] => Array ( [0] => 1958 [1] => Karlheinz Förster [2] => (in Unterschwarzbach/Odenwald) deutscher Fußballspieler. Gilt als einer der besten Abwehrspieler der Welt. )
Es sollte aber so aussehen:
Zitat1958 Karlheinz Förster
(in Unterschwarzbach/Odenwald) deutscher Fußballspieler. Gilt als einer der besten Abwehrspieler der Welt.
Ich habe es so versucht, aber es wird nichts angezeigt.