itflori
Goto Top

PHP Daten aus Postgres Datenbank in HTML Dropdownmenü einfügen (SQL)

Hallo zusammen,

ich bin gerade dabei eine kleine WebApp zu entwickeln und habe eine Frage zu SQL. Ich habe Schon eine Datenbank verbindung zu meinem Datenbankserver hergestellt. Diese funktioniert auch.

Der Code soll aus der Datenbank Test -> Schema: ProzessBI -> Tabelle "pp_tbl_MD_Bereiche" -> Die Spalte 'stxt_Bereich' komplett im Dropdown Menü anzeigen. Leider macht er das aber nicht!
Meine Frage ist jetzt: Was habe ich hier bei meinem Befehl falsch gemacht?

							<div class="form-group">  
								<label class="col-sm-2 controle-label">  
									Bereich
								</label>
								<div class="col-sm-10">  
									<select name="Abteilung" id="Auswahlabteilung" class="form-control m-b">  
										<?
										//pp_tbl_MD_Bereiche (Name der Tabelle)
										$sql = SELECT * FROM "pp_tbl_MD_Bereiche";  
 
										$db_erg = pg_query( $db, $sql );
										if ( ! $db_erg )
										{
										die('Ungültige Abfrage: ' . pgsqli_error());  
										}
										
										while ($row = pg_fetch_array( $db_erg, PGSQL_ASSOC))
										{
										echo "<option>". $row['stxt_Bereich'] . "</option>";  
										}
 
										pg_free_result( $db_erg );					
										?>
									</select>
								</div>
							</div>

Danke schon im Voraus für euere Hilfe!

Content-ID: 319896

Url: https://administrator.de/contentid/319896

Ausgedruckt am: 19.11.2024 um 17:11 Uhr

andrix
andrix 03.11.2016 um 15:38:03 Uhr
Goto Top
Hallo,

in der Zeile 9 sind die " an der Falschen Stelle. Richtig wäre:
$sql = "SELECT * FROM pp_tbl_MD_Bereiche";   

sonst scheint alles richtig zu sein in diesem Teil des Codes.
ITFlori
ITFlori 03.11.2016 um 17:15:33 Uhr
Goto Top
Hallo,

Alles klar, Danke face-smile

Schaue ich mir morgen direkt mal an!
ITFlori
ITFlori 04.11.2016 um 09:43:16 Uhr
Goto Top
So habe das jetzt mal ausprobiert ... funktioniert leider immer noch nicht. Bekomme ein Leeres dropdown feld ..
Biber
Biber 04.11.2016 um 10:40:45 Uhr
Goto Top
Moin ITFlori,

muss in Zeile 17 nicht PGSQL_ASSOC als 3 Parameter angegeben werden statt als zweiter?

Jetzt; while ($row = pg_fetch_array( $db_erg, PGSQL_ASSOC))

IMHO: while ($row = pg_fetch_array( $db_erg, NULL, PGSQL_ASSOC))
oder nur: while ($row = pg_fetch_array( $db_erg))

Der Parameter2 ist doch (optional) die "row" des gewünschten Datensatzes.
Wenn du als Rownummer den Wert PGSQL_ASSOC übergibst, dann gibt es u. U. diesen Satz nicht.

Grüße
Biber
SaschaRD
Lösung SaschaRD 04.11.2016 aktualisiert um 15:55:55 Uhr
Goto Top
Hallo @ITFlori,

hier ein funktionierendes Beispiel:
<html>
	<head>
	</head>
	<body>
	<?php 
		include_once ('db/connect.php');  
			connect();
	?>
		<div class="form-group">  
			<label class="col-sm-2 controle-label">  
				Bereich
			</label>
			<div class="col-sm-10">  
				<select name="Abteilung" id="Auswahlabteilung" class="form-control m-b">  
					<?php
						$sql = mysql_query("SELECT * FROM pp_tbl_MD_Bereiche");  
						while($db_erg = mysql_fetch_array($sql)){
							echo '<option value="' . $db_erg['stxt_Bereich'] . '">' . $db_erg['stxt_Bereich'] . '</option>';			  
						}	
					?>
				</select>
			</div>
		</div>
	</body>
</html>

Lagere gerne die Abfragen auf unterschiedliche Tabelle, etc. aus. Dazu kannst du wie oben bereits gezeigt einen Import machen.
Dann einfach einen Funktion zusammen tippern...
	function myName(){
		$sql = mysql_query("SELECT * FROM pp_tbl_MD_Bereiche");  
		while($db_erg = mysql_fetch_array($sql)){
			echo '<option value="' . $db_erg['stxt_Bereich'] . '">' . $db_erg['stxt_Bereich'] . '</option>';			  
		}		
	}
Die kann dann aufgerufen werden...
		<div class="form-group">  
			<label class="col-sm-2 controle-label">  
				Bereich
			</label>
			<div class="col-sm-10">  
				<select name="Abteilung" id="Auswahlabteilung" class="form-control m-b">  
                                     <?php myName() ?>
				</select>
			</div>
		</div>
P.S. Am Ende nicht das Schließen vergessen..

Gruß und schönes Wochenende, Sascha
ITFlori
ITFlori 10.11.2016 um 08:19:25 Uhr
Goto Top
Hallo Sascha,

danke für deine Hilfe funktioniert soweit alles face-smile

Gruß Florian
SaschaRD
SaschaRD 10.11.2016 um 13:20:16 Uhr
Goto Top
Hallo @ITFlori,

schön zu hören, dass es funktioniert. Sollte deine Anfrage damit gelöst sein, dann bitte auf gelöst setzen.

Danke und Gruß, Sascha