Ich hätte gerne 2 Fragen.
immer wenn ich etwas aus der Datenbank hole, muss ich ein fetch_object() benutzen. Ich verstehe nicht warum. habe versucht die Daten direkt zu holen und zu benutzen aber es geht nicht. So sieht es immer wenn ich etwas aus der DB holen will:
[PHP]function Arbeiter()
{
$conn = db_connect();
$valid_user = $_SESSION['valid_user'];
$sql = "select name
from mitarbeiter
where username = '$valid_user'";
$result = $conn->query($sql);
$obj = $result->fetch_object();
$nachname = $obj->name;
echo " Na du <B>$name </B>";
}
[/PHP]
Könnte es sein weil ich die Bibliothek MSQLi benutze?
So sieht meine Datenban_Verbindung aus:
[PHP]function db_connect()
{
$result = new mysqli(‚localhost‘, ‚arbeiter‘, ‚larose‘, ‚psswt‘);
if (!$result)
return FALSE;
$result->autocommit(TRUE);
return $result;
} [/PHP]
Die zweite Frage.
In meiner Datenbank habe eine Tabelle mit 3 Spalten. Eine Spalte „Books“, eine Spalte „ISBN“ und eine Spalte „Catid“(für Kategorie).
Mein Ziel ist es, ein PHP-Code zu schreiben, der ermöglichen sollte, dass der User alle Bücher aus einer bestimmten „Catid“ bekommt.
Code in sich ist ja schon einfach.
Ich weiss jedoch nicht wie ich diese Code schreiben kann damit das Ergebnis in einer Tabelle erscheinen kann, genau so wie die in der Datenbank ist, und jede Daten auf der richtigen Spalte.
Kann einer mir bitte mal helfen?
Ich bedanke mich um jede Hilfe
Warum musst du deinen Computer einschalten, um damit zu arbeiten? Ist halt so.
Dir ist aber klar, dass das Grundlagen sind?
Eine Schleife bauen, in der du jeden Datensatz in ein tr mit entsprechend vielen td packst. Wo ist jetzt das Problem?
Ich habe gde folgende Code geschrieben aber irgendwie kommt es immer zu einem Fehler.
Wo könnte er sein?
Auf der Willkommenseite landet man auf:
[PHP]<?php
…
$artikel_array = get_buecher();
display_anzeigen($artikel_array);
…
?php
[/PHP]
diese verweisen auf:
[PHP]<?php
function get_buecher()
{
$conn = db_connect();
$query = „select book, isbn from books where catid = 1“;
$result = @$conn->query($query);
if (!$result)
return FALSE;
//Lieferung der Zeile_Anzahl
$num_artikel = @$result->num_rows;
if ($num_artikel == 0)
return FALSE;
$result = db_to_array($result);
return $result;
}
function db_to_array($result) //Umwandlung in ein Array von Ergebnissen
{
$res_array = array();
function display_anzeigen($artikel_array)
{
// Alle Bücher anzeigen aus dem uebergebenen Array anzeigen
if (!is_array($artikel_array)) {
echo ‚ Es steht Momentan kein Book dieser Kategorie zur Verfügung ‘;
} else {
// Tabelle anlegen
echo ‚<table width = "100%" border = 0 align=center>‘;
// Für jedes Book
foreach ($artikel_array as $row) {
echo '<tr><td>';
$row['book'];
echo '</td><td>';
$row['isbn'];
echo '</td></tr>';
}
echo '</table>';
}
Schleife 2: Für jeden Datensatz wird ein foreach durchgeführt:
while ($datensatz = mysql_fetch_row($ergebnis)) {
echo „“;
# Schleife 2-1: Für jeden Wert des Arrays wird eine Zelle erzeugt und der Wert des Arrays ausgegeben:
foreach ($datensatz as $key => $value) {
echo „“ . $value . „\n“;
}
echo „\n“;
}
echo „“;
Die mysql-Erweiterung von PHP ist noch oft im Internet zu sehen, jedoch wird in der offiziellen Dokumentation klar empfohlen, auf die Extension mysqli oder PDO umzusteigen. Die mysql_*-Funktionen sind veraltet und sollten nicht mehr benutzt werden.
Seit PHP 5.3 gehört die veraltete mysql Erweiterung nicht mehr zur Standard Installation.
Seit PHP 5.5 ist die mysql Erweiterung offiziell als deprecated (= missbilligt) gekennzeichnet.
Ab PHP 5.6 wird die Erweiterung vermutlich ganz fallen gelassen.
Warning: mysql_num_fields() expects parameter 1 to be resource, boolean given in C:\xampp\xampp\htdocs.….…php on line 71
[PHP]#line 71
$anzahl_felder = mysql_num_fields($ergebnis);[/PHP]
Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\xampp\xampp\htdocs.….…php on line 89
[PHP]#line 89
while ($datensatz = mysql_fetch_row($ergebnis)) [/PHP]
Könnte es sein dass der Fehler sich in der Function Display_anzeigen(); befindet?
Ich habe das Gefühl dass der Fehler sich ab folgende Code befindet.
[PHP]
function display_anzeigen($artikel_array)
{
Alle Bücher anzeigen aus dem uebergebenen Array anzeigen
if (!is_array($artikel_array)) {
echo ‚ Es steht Momentan kein Book dieser Kategorie zur Verfügung ‘;