Hilfe. Wert wird scheinbar nicht an Klasse übergeben

Programmierung mit PostgreSQL (C#, PHP, Perl, Java, ...)
Antworten
McFly
Neuer Benutzer
Beiträge: 2
Registriert: So 28. Jan 2018, 14:10

Hilfe. Wert wird scheinbar nicht an Klasse übergeben

Beitrag von McFly » So 28. Jan 2018, 14:32

Hallo zusammen,

ich bin gerade etwas am verzweifeln und hoffe das ihr mir vielleicht weiterhelfen könnt.
In meiner php Datei erstelle ich eine Tabelle. Die Inhalte werden aus der Datenbank ausgelesen. Das funktioniert auch Problemlos.
Jedoch möchte ich jetzt statt der TeamID den Namen des Teams anzeigen lassen, was mich vor einer enormen Herausforderung stellt.

Die PHP Datei sieht wie folgt aus:

Code: Alles auswählen

				<?php
				$con = getdb();
				$query = "SELECT * FROM users ORDER BY id ASC"; 	
				if($result = pg_exec($con, $query)) {
					while ($data = pg_fetch_object($result)) {
					
						$team = $teamClass->getteam($data->team);

						echo '<tr>';
						echo '<td>' . $data->id . '</td>'; 
						echo '<td>' . $data->name . '</td>'; 
						echo '<td>' . $data->surname . '</td>'; 
						echo '<td>' . $data->email . '</td>'; 
						echo '<td>' . $data->birthday . '</td>'; 
						echo '<td>' . $team->name . '</td>'; 
						echo '</tr>';
					}
				}
				?>
Die Klasse die ich anspreche hat folgenden Inhalt:

Code: Alles auswählen

<?php
include('conn.php');
$con = getdb();

$teamClass = new teamClass;
class teamClass
{
	public function getteam($team )
     {

		$con = getdb();
		$sql = "SELECT * FROM teams where id='".$team ."'"; 	
		$result = pg_exec($con, $sql);
			if(pg_num_rows($result)) {
				$team = pg_fetch_object($result);
				return $team;
			} 
			pg_free_result($result);
	 }
}

?>
Bis ich versuche in der PHP das Team zuzuordnen funktioniert auch alles ganz gut.
Jedoch scheint es ab hier nicht

Code: Alles auswählen

$team = $teamClass->getteam($data->team);
mehr weiterzugehen und irgendwie scheine ich hier nicht weiterzukommen.

Vielleicht habt ihr ja eine Idee woran es liegen könnte.
Falls es wichtig ist. Das Feld für $data->team ist Integer ebenso wie das id Feld bei teams.

McFly
Neuer Benutzer
Beiträge: 2
Registriert: So 28. Jan 2018, 14:10

Re: Hilfe. Wert wird scheinbar nicht an Klasse übergeben

Beitrag von McFly » So 28. Jan 2018, 14:46

Ok ich glaube ich habe das Problem gefunden.
Zum einen musste ich die Klasse etwas umschreiben.
Diese sieht es wie folgt aus:

Code: Alles auswählen

				$con = getdb();
				$query = "SELECT * FROM teams where id='".$id."'"; 	
				$rs = pg_query($con, $query) or die("Cannot execute query: $query\n");
				 $team = pg_fetch_object($rs);
				 return $team;
Das Hauptproblem scheint jedoch am Include etwas weiter oben in der PHP zu liegen.
Ich habe mal die Klasse direkt oben mit reingeschrieben um zu testen ob es geht und mit dem angepassten Inhalt funktioniert es.
Da es am Include liegt werde ich den mal etwas überarbeiten.

Vielen Dank an alle.

akretschmer
Erfahrener Benutzer
Beiträge: 7346
Registriert: So 29. Okt 2006, 13:35
Wohnort: Kaufbach, Sachsen, Germany, Germany
Kontaktdaten:

Re: Hilfe. Wert wird scheinbar nicht an Klasse übergeben

Beitrag von akretschmer » So 28. Jan 2018, 20:20

Mit PHP-Fragen bis Du hier falsch. Rein SQL-technisch suchst Du einen JOIN, um Deine Tabellen zu verknüpfen. Das kann die DB um ein Vielfaches besser als Dein Gefrickel in PHP. Wenn Du uns die Struktur der Tabellen zeigst, könnten wir Dir eine dazu passende Abfrage liefern.

PS.: das ist grundlegendes SQL, JOINs sind im Internet massiv gut erklärt.
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

Antworten