Janea: Auslesen und Ordnen

Also folgendes, ich habe folgende MYSQL Abfrage

<?php

include "../admin/connect.php";

$query = "SELECT * FROM clicker_begriffe";
while($row = mysql_fetch_array($result))
  {

echo "<table width='100%' cellpadding='6' cellspacing='2' style='border:1px; border-color:#000000; border-style:solid;'>\n";
echo "  <tr> \n";
echo "    <td bgcolor='#EFEFEF' style='border:1px; border-color:#000000; border-style:solid;'></td>\n";
echo "  </tr>\n";
echo "</table>\n";
  }
?>

Ich möchte gerne die Anzahl der Datenbankeinträge durch 3 rechnen und dann nach der Anzahl des Ergebnisses eine neue Tabellenspalte einfügen, aber ich weiß nicht wie.
Bsp : Ich habe 9 Einträge in der DB, dies durch 3 ist 3, also sollen nach 3 Ausgelesenen Einträgen eine neue Tabellenspalte eingefügt werden. Halt so, das das anständig aussieht ...
Und die Einträge würde ich dann gern alphabetisch auflisten, geht sowas ?

Wär euch echt dankbar ...

Janea

  1. Hallo Janea!

    Ich möchte gerne die Anzahl der Datenbankeinträge durch 3 rechnen und dann nach der Anzahl des Ergebnisses eine neue Tabellenspalte einfügen, aber ich weiß nicht wie.

    Eine Variable $i bei jedem while-Durchlauf um 1 erhöhen, und jemachdem ob /3 einen Rest gibt oder nicht neue spalte anfangen lassen .. (Stichwort Modulo glaub ich ..)

    Und die Einträge würde ich dann gern alphabetisch auflisten, geht sowas ?

    $query = "SELECT * FROM clicker_begriffe";

    --> $query = "SELECT * FROM clicker_begriffe ORDER BY spaltenname ASC"
    Ordnet die Datensätze nach "spaltenname" aufsteigend, DESC für absteigend.

    MfG
    Götz

  2. Huhu Janea

    Ich möchte gerne die Anzahl der Datenbankeinträge durch 3 rechnen und dann nach der Anzahl des Ergebnisses eine neue Tabellenspalte einfügen, aber ich weiß nicht wie.

    meinst Du vielleicht Zeilen?

    du könntest das Ergebnis der SQL-Query in ein Array einlesen
    und dann in einer Schleife per array_slice jeweils einen
    Teil extrahieren und diesen dann zu einer Tabellenzeile/ resp. Spalte zusammen setzen.

    Und die Einträge würde ich dann gern alphabetisch auflisten, geht sowas ?

    das Ordnen könntest Du von mysql erledigen lassen.
    also Dein sql-query um ein "ORDER by WasAuchImmer ASC (DESC)" ergänzen.

    Viele Grüße

    lulu

  3. Aloha!

    Fangen wir mit dem Einfachen an:

    Und die Einträge würde ich dann gern alphabetisch auflisten, geht sowas ?

    $query = "SELECT * FROM clicker_begriffe";

    SELECT * FROM clicker_begriffe ORDER BY einespalte

    Mit "ORDER BY" kannst du festlegen, nach welchen Spalten die Datenbank sortieren soll. Siehe dazu z.B. http://www.little-idiot.de/mysql/mysql-165.html

    Und für dein anderes Problem:

    Ich möchte gerne die Anzahl der Datenbankeinträge durch 3 rechnen und dann nach der Anzahl des Ergebnisses eine neue Tabellenspalte einfügen, aber ich weiß nicht wie.
    Bsp : Ich habe 9 Einträge in der DB, dies durch 3 ist 3, also sollen nach 3 Ausgelesenen Einträgen eine neue Tabellenspalte eingefügt werden. Halt so, das das anständig aussieht ...

    Gib zuerst den Start der Tabelle aus.

    Beginne die Schleife:
    Zähle dann innerhalb der Schleife in einer Variablen mit, wieviele Einträge du schon ausgegeben hast. Fange bei 1 an.

    Wenn die Zählvariable 1 ist, gib den Anfang der Tabellenreihe aus (<tr>)

    Gib die Tabellenzelle mit Inhalt aus.

    Wenn die Zählvariable 3 ist, gib dann noch das Ende der Tabellenreihe </tr> aus.
    Ende der Schleife.

    Gib das Ende der Tabelle aus.

    Du mußt möglicherweise noch ein wenig Sonderbehandlung für die letzte Tabellenreihe schreiben, damit dort genügend Tabellenzellen enthalten sind. Frage also, bevor du das Tabellenende ausgibst, die Zählvariable ab und fülle je nach Zählerstand mit leeren Zellen auf.

    - Sven Rautenberg