Alle Mitglieder inkl. deren Infos aus DB ausgeben

Hast du Probleme Admidio einzurichten? Hier kannst du Fragen rund um die Einrichtung stellen.
Antworten
Emarcio
Beiträge: 10
Registriert: 23. Sep 2015, 18:36

Alle Mitglieder inkl. deren Infos aus DB ausgeben

Beitrag von Emarcio »

Hallo liebe Leute!

Ich habe folgendes Problem.

Ich möchte gerne alle Mitglieder samt deren gespeicherten Informationen auf einer HTML-Seite ausgeben lassen.

Datenbankverb. usw ist natürlich kein Problem. Allerdings speichert Admidio alle Daten der User in einer Spalte ab, nämlich "usd_value". So ist für mich eine geordnete Ausgabe (also Name, Vorname, Firma, Telefon nebeneinander) unmöglich. Er spuckt einfach alles untereinander aus...

Ich hab es bereits geschafft, mittels Speicherung des SQL-Statements in einer Variable, alle Namen und Vornamen rauszufiltern. Das hat natürlich auch mit den Firmen funktioniert, allerdings ist hier das Problem, dass keine Leerzeilen in der Spalte "usd_value" vorhanden sind und somit die Zuordnung nicht mehr passt, weil die Firmen an oberster Stelle ausgegeben werden und keinerlei Berücksichtigung stattfindet, ob zum User (Vorname, Nachname) eine Firma eingetragen wurde.

Hierzu mein Code:

Code: Alles auswählen

$sql = "SELECT * FROM `adm_user_data` WHERE `usd_usr_id`>=2 and `usd_usf_id` = 1";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

$sql_2 = "SELECT * FROM `adm_user_data` WHERE `usd_usr_id`>=2 and `usd_usf_id` = 2";
$result_2 = mysql_query($sql_2);
$row_2 = mysql_fetch_assoc($result_2);

$sql_3 = "SELECT * FROM `adm_user_data` WHERE `usd_usr_id`>=2 and `usd_usf_id` = 23";
$result_3 = mysql_query($sql_3);
$row_3 = mysql_fetch_assoc($result_3);

$db_erg = mysqli_query($db_link, $sql);
$db_erg_2 = mysqli_query($db_link, $sql_2);
$db_erg_3 = mysqli_query($db_link, $sql_3);
if (!$db_erg && $db_erg_2 && $db_erg_3) {
    die('Ungültige Abfrage: ' . mysqli_error());
}

if(!empty($db_erg_3)){

echo '<table border="1">';

echo "<tr>";

echo "<th style='width: 157px'>Nachname</th>";
echo "<th style='width: 157px'>Vorname</th>";
echo "<th style='width: 157px'>Firmennname</th>";
echo "<th style='width: 157px'>Telefonnummer</th>";
echo "<th style='width: 157px'>Homepage</th>";

echo "<tr>";

echo '<table border="1" style="float: left; width: 165px;">';
while ($row = mysqli_fetch_array($db_erg, MYSQL_ASSOC)) {

    echo "<tr>";
    echo "<td style='width: 157px; padding: 4px;'>" . $row['usd_value'] . "</td>";
    echo "</tr>";
}
echo '</table>';

echo '<table border="1" style="width: 165px; float: left;">';
while ($row_2 = mysqli_fetch_array($db_erg_2, MYSQL_ASSOC)) {

    echo "<tr>";
    echo "<td style='width: 157px; padding: 4px;'>" . $row_2['usd_value'] . "</td>";
    echo "</tr>";
    
}
echo '<table border="1" style="width: 333px;">';
while ($row_3 = mysqli_fetch_array($db_erg_3, MYSQL_ASSOC)) {

    echo "<tr>";
    echo "<td style='width: 157px; padding: 4px;'>" . $row_3['usd_value'] . "</td>";
    echo "</tr>";
}
echo '</table>';

echo '</table>';
    echo "</tr>";
echo '</table>';
Ich bin leider nicht der Über-SQL-Experte... Aber könnte man das iwie anders Lösen? Ich wäre für jede Hilfe äußerst dankbar!

Schöne Grüße
red
Plugin-Developer
Beiträge: 75
Registriert: 24. Sep 2014, 21:09

Re: Alle Mitglieder inkl. deren Infos aus DB ausgeben

Beitrag von red »

Für die Abfrag benötigst du sogenannte joins.
Schau am Besten einmal in den Admidio-quellcode, wie dort die Listenansicht generiert wird. Dort stehen die nötigen abfragen alle drin.
Zum Beispiel:
https://github.com/Admidio/admidio/blob ... rs.php#L93

Gruß Stefan
Antworten