Seite 1 von 1

Wert auslesen - kleines Problem

Verfasst: Do 10.Jan, 2008 11:30
von femu
Hallo Zusammen,

vielleicht kann man mir ja mal jemand aushelfen. Irgendwie steh ich auf dem Schlauch. Folgende Situation:

Ich habe zwei Tabellen. In Tabelle 1 gibt's mehrere Zeilen. In Tabelle 2 nur eine Zeile mit dem Namen Feld_1 und einem Wert_1 = 10. Was ich nun machen möchte, ist die Anzahl Zeilen aus der Tabelle mit dem Wert in Tabelle 2 vergleichen. Das Zählen der Zeilen in Tabelle 1 funktioniert. Das Auslesen des Wertes aus Tabelle 2 will partout nicht gelingen.

Als Beispiel wollte ich etwas anzeigen, Anzahl_Zeilen > Wert_1 ist.

Wie stelle ich es an, daß der Wert aus Tabelle 2 übergeben wird??

Angesetzt hatte ich so (aber auch verschiedene andere Varianten probiert, aber immer wird nichts für den Wert_1 ausgeworfen):

Code: Alles auswählen

		$sql = "SELECT * FROM tabelle_1";
		$result = $db->sql_query($sql);
		$num_rows = mysql_num_rows($result); 
		$db->sql_freeresult($result);

		$sql = "SELECT wert_1 FROM tabelle_2;
		$result = $db->sql_query($sql);
		while($row = $db->sql_fetchrow($result))
		{
			$max_lines = $row['wert_1'];
		}
		
		if($num_rows > $max_lines)

Wahrscheinlich total einfach, aber ich seh den Wald vor lauter Bäumen nicht ... :wall:

Danke und Gruß
Felix

Verfasst: Do 10.Jan, 2008 13:10
von oxpus
Dann wäre anstelle

Code: Alles auswählen

SELECT wert_1 FROM tabelle_2`;
auch das Feld anzugeben, also

Code: Alles auswählen

SELECT wert_1 FROM tabelle_2
WHERE feld_1 = ...;
Oder verstehe ich die Tabelle 2 selber jetzt nicht so, wie im phpBB die Tabelle phpbb_config?

Verfasst: Do 10.Jan, 2008 13:55
von femu
Hmm ... Das war schon mal nicht ungeschickt. Ich hatte Tabelle 2 anders aufgebaut. Aber im Stil wie die phpbb_config ist natürlich besser. Hab die Tabelle mal so abgeändert. Dann eine funktionierende Abfrage aus einer weiteren Tabelle hergenommen und die Tabellen und Feldnamen ausgetauscht.

Ich krieg aber immer noch nichts ausgeworfen. So schaut der Teil jetzt aus:

Code: Alles auswählen

		$sql = "SELECT * FROM " . DM_CHARTS_TABLE;
		$result = $db->sql_query($sql);
		$num_rows = mysql_num_rows($result); 
		$db->sql_freeresult($result);

		$sql = "SELECT config_value FROM " . DM_CHARTS_CONFIG ." WHERE config_name = 'charts_max_entries'";
		if ( !$result = $db->sql_query($sql) )
			message_die(GENERAL_ERROR, $lang['dm_charts_config_error'], '', __LINE__, __FILE__, $sql);
		while($row = $db->sql_fetchrow($result))
		{
			$max_lines = $row['config_value'];
		}
		
		if($num_rows > $max_lines)
		{
			$message = sprintf($lang['dm_charts_max_count_error'],$max_lines);
			$message .= "Wert 1 = " . $num_rows . " Wert 2 = " . $max_lines;
			$message .= "<br /><br />" . sprintf($lang['dm_charts_click_link'], "<a href=\"" . append_sid("dm_music_charts.$phpEx?action=list") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_index'], "<a href=\"" . append_sid("index.$phpEx") . "\">", "</a>");
			message_die(GENERAL_MESSAGE, $message);
		}
Die Nachricht wird logischerweise angezeigt, weil $num_rows größer als $max_lines ist. Aber in der sprintf Zeile wird der Wert 2 (also $max_lines) nicht angezeigt. Und des macht mich jetzt vollends konfus ...

Gruß
Felix

EDIT : Hat sich erledigt. Der Weg oben ist der richtige und wenn man den Feldnamen noch richtig schreibt, wird auch was ausgeworfen :wall:

Aber trotzdem vielen Dank für den Ansatz bei der Tabelle!

Verfasst: Do 10.Jan, 2008 16:17
von oxpus
Aber trotzdem vielen Dank für den Ansatz bei der Tabelle!
Öh ja, keine Ursache ...

Verfasst: Fr 11.Jan, 2008 08:39
von femu
^6

Darf ich noch 'ne kurze Frage dranhängen? Ansonsten bitte trennen.

Wo ist denn in phpBB2 die Variable $board_config definiert? Was analoges würde ich gerne für meine zweite Tabelle verwenden, damit man den Wert einfacher rauslesen kann ...

Verfasst: Fr 11.Jan, 2008 08:57
von oxpus
In der common.php wird $board_config erstellt.

Verfasst: Fr 11.Jan, 2008 09:09
von femu
Besten Dank. Dann versuch ich mich da mal schlau zu machen.

Gruß und schon mal ein schönes Wochenende!
Felix