Datenbankabfrage mit Hilfe von Auswahlfeld

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.
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Datenbankabfrage mit Hilfe von Auswahlfeld

Beitrag von issjut »

Hallo,
wie kann ich denn eine bestimmte Datenbankabfrage generieren in der ich die Ausgabe nach einer Auswahl in einem vorgegebenen Feld steuere.

Also im Grunde z.b. so etwas...

[ externes Bild ]

wie bekomme ich die AUSWAHL in die Abfrage??

Code: Alles auswählen

$sql = 'SELECT user_id, username, user_colour, user_avatar, user_gender, user_avatar_type, user_avatar_width, user_avatar_height 
				FROM ' . USERS_TABLE . "
				WHERE user_avatar <> ''
                                AND [!]AUSWAHL1[!] "
                                AND [!]AUSWAHL2[!] "
				ORDER BY RAND() LIMIT 5";
			$result = $db->sql_query($sql);
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Wie jedes Eingabefeld in einem Formular über $_POST['name_des_feldes'] (bei phpBB2 über $HTTP_POST_VARS['name_des_feldes'], bei phpBB3 über request_var('name_des_feldes', 'Standardwert'));
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

Ok, wäre für php3 (sry vergessen dazu zu schreiben)

ich muss leider noch mal nachfragen, da ich auf dem Gebiet das erste mal etwas machen will ;-)

könntest Du mir das mal anhand meinses Beispiels in die Abfrage"einsetzen"?

Vielen Dank schonmal!
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

issjut hat geschrieben:Ok, wäre für php3 (sry vergessen dazu zu schreiben)
phpBB3, oder? :wink:

Wie speicherst du denn das Geschlecht in der DB und was soll genau ausgelesen werden?
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

S2B hat geschrieben:
issjut hat geschrieben:Ok, wäre für php3 (sry vergessen dazu zu schreiben)
phpBB3, oder? :wink:

Wie speicherst du denn das Geschlecht in der DB und was soll genau ausgelesen werden?
ja logo + BB ;)

also alle Daten die ausgelesen werden sollen befinden sich in Tabelle php_users --> USERS_TABLE

Das Geschlecht bei user_gender
Männer = 1, Frauen = 2

Das Alter müsste man wohl anhand des Geburtsdatums errechnen...
user_birthday Format wäre z.b. 16- 5-1986

für die Ausgabe habe ich eigentlich schon einen fertigen Code...
Gibt eine Anzahl an Usern und ihre Avatare aus:

Code: Alles auswählen

$last_avatar = '';
			$last_avatar_row = array();
			// Zeigt die x User absteigend sortiert nach der ID
			$sql = 'SELECT user_id, username, user_colour, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height 
				FROM ' . USERS_TABLE . " 
				WHERE user_type <> 2
                                AND ...........??? (Auswahlfeld1)
                                ABD ...........??? (Auswahlfeld2)
				ORDER BY user_id DESC LIMIT 18";
			$result = $db->sql_query($sql);

			while ($row = $db->sql_fetchrow($result))
			{
				$last_avatar_row[] = $row;
			}
			$db->sql_freeresult($result);

	$template->assign_block_vars('last_avatar_block', array());
	
	
	for ($i = 0; $i < sizeof($last_avatar_row); $i += 6) //6 is columns per page
	{
		$template->assign_block_vars('last_avatar_block.last_avatar_row', array());

		for ($j = $i; $j < ($i + 6); $j++) // 6 is columns per page
		{
			if( $j >= sizeof($last_avatar_row) )
			{
				$template->assign_block_vars('last_avatar_block.last_avatar_row.nousercol', array());
				$template->assign_block_vars('last_avatar_block.last_avatar_row.usernodetail', array());
				continue;
				//break;
			}
			
				$last_avatar_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $last_avatar_row[$j]['user_id']);
				$last_avatar = '<a onclick="openpopup(this.href); return false" href="' . $last_avatar_url . '">' . get_user_avatar($last_avatar_row[$j]['user_avatar'], $last_avatar_row[$j]['user_avatar_type'], $last_avatar_row[$j]['user_avatar_width'], $last_avatar_row[$j]['user_avatar_height'], $last_avatar_row[$j]['username']) . '</a>';
				
						
			$template->assign_block_vars('last_avatar_block.last_avatar_row.usercol', array(
					'LAST_USERNAME'	=> get_username_string('username', $last_avatar_row[$j]['user_id'], $last_avatar_row[$j]['username'], $last_avatar_row[$j]['user_colour']),
					'LAST_AVATAR'	=> $last_avatar,
				)
			);

			}
		}

ich müsste oben eben nur die Variablen der Auswahl rein bekommen, damit die ausgabe dementsprechend gefiltert wird
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Code: Alles auswählen

<select name="gender">
  <option value="1">Mann</option>
  <option value="2">Frau</option>
</select>
und der PHP-Code dazu:

Code: Alles auswählen

$gender = request_var('gender', 1);
$gender = ($gender == 2) ? 2 : 1;

$sql = 'SELECT ...
   AND user_gender = ' . $gender . '
   ...
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

Ich versuche es gleich mal

vielen Dank
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

hmmm... ich denke die Frage ist recht doof, aber ich komme an dieser stelle nicht weiter...

Habe jetzt nun eine Seite... nennen wir sie mal search.php in der ich diesen code integriert habe.

Code: Alles auswählen

$gender = request_var('gender', 1);
$gender = ($gender == 2) ? 2 : 1; 
$last_avatar = '';
			$last_avatar_row = array();
			// Zeigt x User absteigend sortiert nach der ID 
			$sql = 'SELECT user_id, username, user_colour, user_avatar, user_avatar_type, user_avatar_width, user_avatar_height 
				FROM ' . USERS_TABLE . " 
				WHERE user_type <> 2
				AND user_gender = ' . $gender . ' 
				ORDER BY user_id DESC LIMIT 18";
			$result = $db->sql_query($sql);

			while ($row = $db->sql_fetchrow($result))
			{
				$last_avatar_row[] = $row;
			}
			$db->sql_freeresult($result);

	$template->assign_block_vars('last_avatar_block', array());
	
	
	for ($i = 0; $i < sizeof($last_avatar_row); $i += 6) //6 is columns per page
	{
		$template->assign_block_vars('last_avatar_block.last_avatar_row', array());

		for ($j = $i; $j < ($i + 6); $j++) // 6 is columns per page
		{
			if( $j >= sizeof($last_avatar_row) )
			{
				$template->assign_block_vars('last_avatar_block.last_avatar_row.nousercol', array());
				$template->assign_block_vars('last_avatar_block.last_avatar_row.usernodetail', array());
				continue;
				//break;
			}
			
				$last_avatar_url = append_sid("{$phpbb_root_path}memberlist.$phpEx", 'mode=viewprofile&u=' . $last_avatar_row[$j]['user_id']);
				$last_avatar = '<a onclick="openpopup(this.href); return false" href="' . $last_avatar_url . '">' . get_user_avatar($last_avatar_row[$j]['user_avatar'], $last_avatar_row[$j]['user_avatar_type'], $last_avatar_row[$j]['user_avatar_width'], $last_avatar_row[$j]['user_avatar_height'], $last_avatar_row[$j]['username']) . '</a>';
				
						
			$template->assign_block_vars('last_avatar_block.last_avatar_row.usercol', array(
					'LAST_USERNAME'	=> get_username_string('username', $last_avatar_row[$j]['user_id'], $last_avatar_row[$j]['username'], $last_avatar_row[$j]['user_colour']),
					'LAST_AVATAR'	=> $last_avatar,
				)
			);

			}
		}
und im template habe ich...

Code: Alles auswählen

<select name="gender">
  <option value="1">Mann</option>
  <option value="2">Frau</option>
</select>
Ich hoffe soweit hab ich es richtig verstanden....!?!?

nun fehlt mir doch aber noch eine Art "Submit" Button mit dem ich die ganze Sache ausführe, oder?
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17476
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Beitrag von Dr.Death »

Bitte schau mal in: KB:16 - Kapitel Topic Bumping.....
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „Coding & Technik“