Zwei Tabellen abfragen und in PHP ausgeben

archibaldpe

Neuer Benutzer
Beiträge
2
Hallo "richtige" Programmierer,

ich bin nur Hobbyprogrammierer und möchte etwas für unsere Schule machen. Eine Büchereiverwaltungstool. Soweit so gut.

Aktuelles Problem:
Ich würde gerne eine Abfrage machen, in der man sehen kann welche Bücher eine bestimmter SChüler ausgeliehen hat.
Also man gibt die ID des Schülers ein z.B. 1 und auf der nächsten Seite soll dann stehen:

Name: Max Mustermann
Bücher:
*) Das Buch vom Wind - ausgeliehen am 2.1.2016
*) Das Buch vom Regen - ausgeliehen am 19.12.2015

Ich hab mir da mal was zusammen gezimmert - komme aber mit der Ausgabe aus den zwei Tabellen nicht mehr weiter - echt zu schwierig für mich.

ZUR INFO:
habe folgende Tabellen:
*) books - Hier stehen die Bücher drin ;-)
*) user - Hier die Schüler
*) borrow - Hier, wer was ausgeborgt hat.


Ist mein Ansatz so richtig oder ist mein Ansatz völlig falsch!? Irgenwas stimmt aber nicht, da
ich die Tabelle "borrow" nicht in der select Abfrage drin hab? Komisch?

Würde mich über Antworten freuen. :) - Zumindest Denkanstösse wie ich das richtig aufbaue!

Hier meine PHP - Datei:

PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="XHTML namespace">
<head>
</head>

<body>
<br />
<?php

$host = "************";
$user = "************";
$pass = "************";
$db = ************";

$searchstring = $_POST['search'];

$connection = mysql_connect($host, $user, $pass) or die ("Unable to connect!");
mysql_select_db($db) or die ("Unable to select database!");

$query = "SELECT user.lastname, books.Titel FROM user, books WHERE user.id like '%$searchstring%'";

$result = mysql_query($query) or die ("Error in query: $query. ".mysql_error());
$i = 1;

******AB HIER BIN ICH PLANLOS**********
if (mysql_num_rows($result) > 0) {
    echo "<table width='70%' border='1' align='center' border=1''>";
    while($row = mysql_fetch_row($result)) {

        echo "<tr>";
   
        echo "<td>" .$row[1] ."</td>";
        echo "<td>" .$row[2] ."</td>";
   
        echo "</tr>";

        $i++;
    }
    echo "</table>";
}
else {
    echo "Keine passenden Ergebnisse für den Suchbegriff <b>" .$searchstring. "</b> gefunden. Bitte versuchen Sie es erneut.";
}
mysql_free_result($result);
mysql_close($connection);

?>
<br />
</body>
</html>
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Um Dir mal das SQL zu zeigen, wie man mit 3 solcher Tabellen umgeht:

Code:
test=# begin;
BEGIN
test=# create table buecher(id int primary key, name text);
CREATE TABLE
test=# create table schueler(id int primary key, name text);
CREATE TABLE
test=# create table geborgt(buch_id int references buecher, schueler_id int references schueler, datum date);
CREATE TABLE
test=# select b.name as buch, s.name as schueler, g.datum from geborgt g left join buecher b on g.buch_id=b.id left join schueler s on g.schueler_id=s.id;
 buch | schueler | datum
------+----------+-------
(0 rows)

test=# rollback;
ROLLBACK
test=#

Das als Grundgerüst für die Abfrage. Kannst Du mit einer Prise WHERE verfeinern, um gezielt zu suchen.

Alles andere in Deiner Frage ist PHP-Gedöhns und hier in diesem Forum Off-Topic.

Grüße aus London.
 
Werbung:
Vielen Dank akretschmer - werde mir das mal genauer anschauen. und bezgl. php muss ich dann ja leider woanders hin! Danke für die rasche Hilfe!!!!
 
Zurück
Oben