Befehlsübersicht Jdatabase

  • Hallo,


    gibt es eine Übersicht über die Befehle, die man bei JDatabase benutzen kann.
    Ich möchte den Mysql-Code entsprechend umschreiben: Zum Bsp: <>, <, >, =


    Code
    //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

  • Hier der Startpunkt der Dokumentation: https://docs.joomla.org/Select…atabase#loadRowList.28.29


    Hier die Abfolge der Nutzung.

    • Einmalig Datenbank-Verbindung in eine Variable holen (diese nennt man gerne $db)
    • Dann entweder: Querystring aus Einzelteilen zusammensetzen, also z.B. SELECT, FROM, WHERE, JOIN, SORT etc. - dies macht man vor allem dann, wenn die Abfrage an vielen Stellen zusammengesetzt wird
    • Oder: Man schreibt den Querystring gleich fertig in eine Variable (diese nennt man gerne $query)
    • Dann setzt man den oder das Query und führt es aus


    Um beim obigen Beispiel zu bleiben, ein Start und nur Quick&Dirty:



    Schneller geht die Zählung der Tabellen-Zeilen mit $query->select('COUNT(*)'), siehe Doku.

  • @jdgf,


    setQuery sorgt nur dafür das aus deinen Angaben eine SQL Anweisung wird. Das hat nichts mit dem Update Befehl zu tuen :)


    Aber natürlich gibt es auch ein Update Befehl in JDatabase. Beispiel aus der Doku:


    https://docs.joomla.org/Insert…atabase#Updating_a_Record

  • 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?



    Code
    if ($i < ($anzahl-1))           {                   if ($i < ($anzahl-2))                   {                   echo ', ';                   }                   else                   {                   echo ' und ';                   }                }                $i++;   }


    Die Variable $anzahl habe ich durch $count ersetzt, da ich mit dem Code

    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

  • Das hat nun aber alles wenige mit Joomla zu tun und gehört in den Bereich des PHP-Lernens. Und "eine Fehlermeldung" gibt es nicht, es gibt immer nur eine bestimmte Fehlermeldung.


    Hier mal ein Ansatz für dein Problem: