SQL Query user_birthday

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
TomLB
Mitglied
Beiträge: 147
Registriert: 09.11.2019 13:38
Kontaktdaten:

SQL Query user_birthday

Beitrag von TomLB »

Frage an die Profis, ich bekomme es nicht hin:

Ich möchte aus der Db nur die Spalte user_birthday exportieren,
SELECT * FROM `phpbb_users` ORDER BY `phpbb_users`.`user_birthday` DESC

Am besten wäre es , die Felder ohne Eintrag gleich herauszufiltern, (where IF NOT NULL ? )

Es exportiert mir immer nur die ganze Tabelle phpbb_user.

Sinn der Sache: Es sollen mit einem Tabellenprogramm das Durchschnittsalter der Mitglieder ermittelt werden.
LG, Tom
Board 3.3.8 | PHP 8.0.23 | https://www.v-stromforum.de
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17401
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: SQL Query user_birthday

Beitrag von Dr.Death »

Beschäftige dich mal mit Standard SQL Abfragen ....

https://www.php-einfach.de/mysql-tutori ... l-befehle/

SELECT user_birthday FROM phpbb_users WHERE user_birthday <> "";
SELECT user_id, username, user_birthday FROM phpbb_users WHERE user_birthday <> "";
Benutzeravatar
chris1278
Mitglied
Beiträge: 3536
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: SQL Query user_birthday

Beitrag von chris1278 »

Also ich hab mal einen string angepasst den ich für eine Meiner Extension für was anderes nutze.

Code: Alles auswählen

$sql	= 'SELECT user_birthday
		FROM ' . USERS_TABLE  . '
		ORDER BY user_birthday';

		$result	= $this->db->sql_query($sql);
		$rows	= $this->db->sql_fetchrowset($result);
		$this->db->sql_freeresult($result);
Damit kann man arbeiten in dem man das per loop ausgeben kann etwa so:

Code: Alles auswählen

	foreach ($rows as $row)
	{
	

		$this->template->assign_block_vars('birthday_loop', [
			'ROW_USER_BIRTHDAY'					=> $row['user_birthday'],
			

		]);
	}

Dann musst du nur noch im Template etwa so was erstellen:

Code: Alles auswählen

{% for options in loops.birthday_loop %}
	 {{ options.ROW_USER_BIRTHDAY }}
{% endfor %}
Das würde im Normalfall (wahrscheinlich) den inhalt der Spalte user_birthdays als text ausgeben.

Probier es einfach aus. Ich habe das jetzt nicht getestet aber anhand dessen was ich bisher in meinen Extensions umgesetzt habe müsste das aber so funktionieren. Die Template ausgabe musst du dann selber sehen wo und wie du das ausgeben lassen möchtest. Ich empfehle dir das aber als eine Extension umzusetzen.

edit

Habs mal so getestet so würde das Geburtags Datum ausgegeben. Den html code um die ausgabe musst du dann aber selber bauen.

In meiner Box sähe das so aus:

https://prnt.sc/AzfwLI3G5dIR

Also der Code oben würde auch funktionieren. Allerdings getestet mit nur einem nutzer im lokalem Testforum. Er würde aber alle der Reihe nach auflisten die er findet.
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1076
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: SQL Query user_birthday

Beitrag von Mike-on-Tour »

Ich hatte mal diese Fragestellung, darauf habe ich ein Skript geschrieben, das das Durchschnittsalter aller Registrierten Mitglieder und Gründer ausliest und berechnet.
Ich habe es in die Pastebin eingestellt.

Wenn du in den Zeilen 6 - 9 die entsprechenden Daten für deine Datenbank eingibst und es laufen lässt, sollte es dir das Durchschnittsalter deiner Mitglieder anzeigen.
TomLB
Mitglied
Beiträge: 147
Registriert: 09.11.2019 13:38
Kontaktdaten:

Re: SQL Query user_birthday

Beitrag von TomLB »

Cool, vielen Dank Mike, hat funktioniert. Ergebnis: 53.984572230014

Wir sind alte Säcke... :o

Vielen Dank auch an die anderen Helfer.

Grund war, uns hat eine Marktforschungs Anfrage erreicht, die wollten gegen guter Bezahlung eine Studie / Befragung einer Zielgruppe durchführen.

Zielgruppe zwischen 18 und 35 Jahren, welche sich ab 2019 eine V-Strom DL650 NEU gekauft haben.

Das wir da trotz 17k+ Mitglieder keinen zutreffenden <35J haben, war mir eh klar... das sehe ich schon in der Tabelle.

@ Mike, Zeile 17 hast n tippfehler drinnne "errno"

Code: Alles auswählen

if ( $dbLink->connect_errno ) {
                    echo $dbLink->connect_error . '<br>';
                        die ('<p>Verbindungsaufbau zu ' . $dbName . ' fehlgeschlagen!</p>');
LG, Tom
Board 3.3.8 | PHP 8.0.23 | https://www.v-stromforum.de
Benutzeravatar
Mike-on-Tour
Supporter
Supporter
Beiträge: 1076
Registriert: 13.01.2020 21:09
Kontaktdaten:

Re: SQL Query user_birthday

Beitrag von Mike-on-Tour »

Fehler im eigenen Code zu finden ist immer schwierig, weil man dabei ein bisschen betriebsblind ist, aber wo ist in connect_errno ein Tippfehler?
Benutzeravatar
chris1278
Mitglied
Beiträge: 3536
Registriert: 12.11.2007 06:20
Wohnort: Euskirchen
Kontaktdaten:

Re: SQL Query user_birthday

Beitrag von chris1278 »

Mike-on-Tour hat geschrieben: 08.11.2022 06:59 Fehler im eigenen Code zu finden ist immer schwierig, weil man dabei ein bisschen betriebsblind ist, aber wo ist in connect_errno ein Tippfehler?
ich denke das connect_errno sollte so heissen: connect_error also nicht errno sondern error
TomLB
Mitglied
Beiträge: 147
Registriert: 09.11.2019 13:38
Kontaktdaten:

Re: SQL Query user_birthday

Beitrag von TomLB »

Sachen gibts, das kannte ich noch nicht.
Man lernt nie aus :)
LG, Tom
Board 3.3.8 | PHP 8.0.23 | https://www.v-stromforum.de
Antworten

Zurück zu „Coding & Technik“