Problem mit werteübergabe

thobi85

Grünschnabel
hi @ all,

ich hab bei meinem aktuellen projekt ein problem wo ich einfach nicht weiterkomme. vielleicht könnt ihr mir ja helfen.
ich liste hier erstmal einen teil meiner datenbank-tabellen auf um euch einen überblick zu verschaffen. ich verwende postgres sql.

Tabelle: Textnachrichten:
Spalten: ID [PK], Titel, Text, Start-Date, End-Date, ...

Tabelle: Textnachricht_Fachbereich:
Spalten: Fachbereich, Textnachricht_ID

Tabelle: Fachbereiche
Spalte: Name [PK]

die Tabelle 'Textnachricht_Fachbereich' ist eine Zuweisungstabelle, die die Nachrichten mit den Fachbereichen verbindet.


so nun zum programmcode:
PHP:
<form action='studiengang.php' method=POST>
      <select name="Studiengang" class="Stil3" id="Studiengang" onChange="MM_jumpMenu('parent.frames[\'mainFrame\']',this,0)">
      	<?php
			$conn = pg_connect("host=xxx port=5432 dbname=Infoterm user=postgres password=xxx");
			$result = pg_query($conn, "SELECT \"Name\" FROM \"Fachbereiche\"");
			while($row = pg_fetch_assoc($result))
			{
			echo '<option value="studiengang.php?Studiengang=$row[0] '.$row[0] .'">'.$row['Name'] .'</option>';
			}
			pg_close($conn);
		?>
      </select>
    </form>

der code von studiengang.php
PHP:
<?php
	$conn = pg_connect("host=xxx port=5432 dbname=Infoterm user=postgres password=xxx");
	if (!$conn) 
	{
  		echo "Konnte keine Verbindung aufbauen.\n";
  		exit;
	}
	$db = pg_dbname ($conn);
	$fachrichtung = "SELECT distinct t.\"Ende\", t.\"Titel\", t.\"Text\"
					 FROM \"Textnachricht_Fachbereich\" tf
					 INNER JOIN \"Textnachrichten\" t ON tf.\"Textnachricht_ID\" = t.\"ID\"
					 WHERE t.\"Anzeigefeld\" <> 'Untere Laufschrift' AND tf.\"Fachbereich\" = " $_POST['Studiengang'];
	$result = pg_query($conn, $fachrichtung);
	if (!$result) 
	{
  		echo "Ein Fehler ist aufgetreten.\n";
 		 exit;
	}
	echo '<table width="100%" border="0">';
	echo '<tr><td colspan="3">Studiengangsinformationen:<br/><br/></td></tr>';
  	echo '<tr>
    	<td width="10%"><b>Enddatum</b></td>
    	<td width="30%"><b>Titel</b></td>
    	<td width="60%"><b>Nachricht</b></td>
  	</tr>';
	while ($row = pg_fetch_row($result)) 
	{
  		echo '<tr>
    	<td>'.$row[5].'</td>
    	<td>'.$row[1].'</td>
    	<td>'.$row[2].'</td>';
	}
	pg_close ($conn);
?>


mein problem ist jetzt wie bekomme ich aus der form den namen des studienganges übergeben das er die richtigen daten ausgibt. wenn ich den studiengang direkt eingebe und nicht variabel dann funktioniert alles. es wäre schon wenn mir jemand weiterhelfen könnte.
 
Ich hoffe ich habe das Problem verstanden. Die Variable $_POST['studiengang'] hat nicht den richtigen Inhalt?!
das liegt vermutlich an dieser Zeile:
PHP:
echo '<option value="studiengang.php?Studiengang=$row[0] '.$row[0] .'">'.$row['Name'] .'</option>';
das müsste nach meinen Vermutungen so aussehen:
PHP:
echo '<option value="'.$row[0] .'">'.$row['Name'] .'</option>';
oder ich verstehe nicht warum du die gesamte URL als Value wert angibst?, den in value soll ja nur das angegeben sein, was später auch in $_POST['studiengang'] stehen soll.

mfg
Gene
 
also erstmal danke für deine hilfe.
ja mein problem ist das die $_POST['studiengang'] nicht den richtigen oder gar keinen wert ausgibt.

bei deiner variante wir zwar etwas angezeigt aber leider die komplette form.
d.h. ich habe jetzt 2mal untereinander die form dranstehen.

über weitere hilfe wäre ich sehr froh.
 
mhm, oso recht weiß ich da auch nicht weiter, das einzige was mir noch aufgefalen ist, ist diese Zeile
PHP:
"...AND tf.\"Fachbereich\" = " $_POST['Studiengang'];
Da fehlt for dem $_POST[] noch ein "." (Punkt). Weil die Strings zusammen gefügt werden sollen.
Sonst kann ich dir leider auch nicht weiter helfen, bin nicht so vertraut mit "JOIN"
 
Zurück