derdayworker
Grünschnabel
Hallo zusammen.
Ich habe ein Problem mit einem PHP Script, welcher mir bestimmte inhalte aus der Datenbank ausliest, und die Infos mir ausgeben soll.
Damit das einfacher zu verstehen ist, zeige ich euch meine Aufbauten der Datenbank nebst Tables etc.
Zur Erkärung.
Charaktere: Ich habe einen Table, indem ich alle Namen der Charaktere Sammle, das wird stufenweise mit weiteren inhalten bestückt.
Rang: Hier sind die Ränge aufgelistet die es später für die " Einteilung " zu verleihen gillt.
Rang_Einteilung: Hier sollen die Namen der Charaktere entsprechend eines der Ränge zugeteilt werden.
Der Clou hierbei ist, das ein Charakter mehrere ränge haben kann.
------------
Jetzt zum eigentlichen Problem:
Ich habe einen SQL Befehl, womit ich in meiner mysql datenbank über das programm heidisql eine Abfrage starten kann, wo ich zwar das richtige Ergebnis angezeigt bekomme, aber ich bekomme das mittels PHP nicht abgefragt.
In SQL sieht das so aus:
Bei dem Beispiel kommt so wie es soll raus, das Klaus sowohl Polizist als auch Feuerwehr als Rang eingeteilt bekommen hat.
Wenn ich jedoch PHP zuhilfe ziehen möchte, dann bekomme ich keine Infos ausgelesen, es steht nur die Tabellen Bezeichnung damit ich erkennen kann was er auslesen tut.
Es kommt kein Error.
Der PHP-Code sieht so aus:
Wer kann mir sagen, wo da der fehler ist ?
Schonmal vielen lieben dank im vorraus.
Ich habe ein Problem mit einem PHP Script, welcher mir bestimmte inhalte aus der Datenbank ausliest, und die Infos mir ausgeben soll.
Damit das einfacher zu verstehen ist, zeige ich euch meine Aufbauten der Datenbank nebst Tables etc.
Code:
::::::::::::: Charaktere :::::::::::::
CREATE TABLE `charakter` (
`charakterid` INT(10) UNSIGNED NOT NULL,
`charakter` VARCHAR(255) NOT NULL,
`alter` VARCHAR(255) NULL DEFAULT NULL,
`changed` DATETIME NOT NULL,
PRIMARY KEY (`charakterid`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
;
+-------------+-----------+-------+---------------------+
| charakterid | charakter | alter | changed |
+-------------+-----------+-------+---------------------+
| 1 | Demo | NULL | 2019-09-15 10:19:37 |
| 2 | Guenther | NULL | 2019-09-15 10:19:37 |
| 3 | Klaus | NULL | 2019-09-15 10:19:37 |
| 4 | Dieter | NULL | 2019-09-15 10:19:37 |
+-------------+-----------+-------+---------------------+
-------------------------------------------------------------
::::::::::::: rang :::::::::::::
CREATE TABLE `rang` (
`rangid` INT(10) UNSIGNED NOT NULL,
`rangname` VARCHAR(255) NOT NULL,
PRIMARY KEY (`rangid`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
;
+--------+-----------+
| rangid | rangname |
+--------------------+
| 1 | -None- |
| 2 | Arzt |
| 3 | Polizei |
| 4 | Feuerwehr |
+--------+-----------+
-------------------------------------------------------------
::::::::::::: rang_einteilung :::::::::::::
CREATE TABLE `rang_einteilung` (
`charakterid` INT(10) UNSIGNED NOT NULL,
`rangid` INT(10) UNSIGNED NOT NULL,
PRIMARY KEY (`charakterid`, `rangid`)
)
COLLATE='latin1_swedish_ci'
ENGINE=MyISAM
;
+-------------+--------+
| charakterid | rangid |
+-------------+--------+
| 1 | 1 |
| 2 | 2 |
| 3 | 3 |
| 3 | 4 |
+-------------+--------+
-------------------------------------------------------------
Zur Erkärung.
Charaktere: Ich habe einen Table, indem ich alle Namen der Charaktere Sammle, das wird stufenweise mit weiteren inhalten bestückt.
Rang: Hier sind die Ränge aufgelistet die es später für die " Einteilung " zu verleihen gillt.
Rang_Einteilung: Hier sollen die Namen der Charaktere entsprechend eines der Ränge zugeteilt werden.
Der Clou hierbei ist, das ein Charakter mehrere ränge haben kann.
------------
Jetzt zum eigentlichen Problem:
Ich habe einen SQL Befehl, womit ich in meiner mysql datenbank über das programm heidisql eine Abfrage starten kann, wo ich zwar das richtige Ergebnis angezeigt bekomme, aber ich bekomme das mittels PHP nicht abgefragt.
In SQL sieht das so aus:
SQL:
select charakter, rangname from charakter, rang, rang_einteilung
where
charakter.charakterid = rang_einteilung.charakterid AND
rang.rangid = rang_einteilung.rangid AND
charakter.charakterid = 3
Bei dem Beispiel kommt so wie es soll raus, das Klaus sowohl Polizist als auch Feuerwehr als Rang eingeteilt bekommen hat.
Wenn ich jedoch PHP zuhilfe ziehen möchte, dann bekomme ich keine Infos ausgelesen, es steht nur die Tabellen Bezeichnung damit ich erkennen kann was er auslesen tut.
Es kommt kein Error.
Der PHP-Code sieht so aus:
PHP:
<?php
require_once ('db1.php');
$db_link = mysqli_connect (
MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK
);
$sql = "select charakter, rangname from charakter, rang, rang_einteilung where charakter.charakterid = rang_einteilung.charakterid
AND rang.rangid = rang_einteilung.rangid AND charakter.charakterid = 3";
$db_erg = mysqli_query( $db_link, $sql );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysqli_error());
}
echo '<table border="1">';
echo "<tr>";
echo "<td><div style='text-align:center;'>name</div></td>";
echo "<td><div style='text-align:center;'>rangname</div></td>";
echo "</tr>";
#echo '<table border="1">';
while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC))
{
echo "<tr>";
echo "<td>". $zeile['charakter'] . "</td>";
echo "<td>". $zeile['rangname'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysqli_free_result( $db_erg );
?>
Wer kann mir sagen, wo da der fehler ist ?
Schonmal vielen lieben dank im vorraus.