Sehr geehrte Helfer
Anschliessend eine Aufgabe, bei der ich leider nicht weiter weiss, weil ich noch nie PHP benutzte und auch so nicht sehr viel Erfahrung mit ähnlichen Dingen habe.
Deshalb wäre ich über jede Hilfe froh (ganz unten die dazugehörigen Informationen):
Ein Lieferant hat 3 Filialen,
die f ¨ ur verschiedene Produktmarken zust¨andig sind. Jede Filiale speichert ihre
Produktliste in einer Datenbanktabelle mit dem folgenden Schema: Schlüssel, Name, Datentyp, Länge, Dateneingabe optional.
I.--> Passen Sie die PHP-Routine so an, dass sie auf die Tabelle product zuerst
in DB2, danach in Postgres und schließlich in MySQL zugreift. Aus jeder
Tabelle sollen alle Eintr ¨age abgefragt werden, beschr¨ankt auf die Attribute
BRAND_NAME, PRODUCT_ID, PRODUCT_NAME, PRODUCT_CLASS_ID, SRP,
GROSS_WEIGHT, RECYCLABLE_PACKAGE, LOW_FAT (alle unter Name (Primärschlüssel PRODUCT_ID)). Außerdem, soll die SELECTKlausel
eine Spalte namens FILIALE enthalten, die angibt, aus welcher Filiale
(’A’, ’B’ oder ’C’) der Eintrag stammt.
II.--> Nun soll jeder Attributname im Header als ein html-Link auf dieselbe PHPDatei
realisiert werden. Klick auf dem Attributnamen soll die Tabelle neu laden,
diesmal aufsteigend sortiert nach dem geklickten Attribut. Achtung: mit
ORDER BY ist es nicht lesbar, da die Ergebnisse aller 3 Anfragen sortiert werden
m¨ussen. L¨osung: alle Ergebnisse in einem Array speichern und die sort{}-
Funktion von PHP verwenden.
<html>
<head><title> Test Query </title></head>
<body>
<?php
$conn = @ db2_connect("infosys", "dummy", "is_ss07");
$part1 = "SELECT artistid FROM public.artists WHERE artist='madonna'";
$query = "SELECT albumid, album FROM public.albums WHERE albumid IN (
SELECT albumid from public.artist2album WHERE artistid IN ($part1))";
echo "Your query : <tt> $query </tt> <br><br>";
$result = db2_exec($conn, $query, array('cursor' => DB2_SCROLLABLE));
$columns = db2_num_fields($result);
$rows = db2_num_rows($result);
-------------
echo "<p>The query returned $rows entries:\n";
echo "<table width=90% border=2>\n
<tr bgcolor=\"#EAECEF\"><th>#</th>";
for($i=0; $i < $columns; $i++)
echo "<th>".db2_field_name($result, $i). "</th>\n";
echo "</tr>\n<tr>";
$counter = 1;
while(db2_fetch_row($result)) {
echo "<tr>\n<td>".$counter++. "</td>";
for($i=0; $i < $columns; $i++)
echo "<td>".db2_result($result, $i)."</td>\n";
echo "</tr>\n";
}
echo "</tr></table>";
db2_close($conn);
?>
</body>
</html>
..., Kibts
Anschliessend eine Aufgabe, bei der ich leider nicht weiter weiss, weil ich noch nie PHP benutzte und auch so nicht sehr viel Erfahrung mit ähnlichen Dingen habe.
Deshalb wäre ich über jede Hilfe froh (ganz unten die dazugehörigen Informationen):
Ein Lieferant hat 3 Filialen,
die f ¨ ur verschiedene Produktmarken zust¨andig sind. Jede Filiale speichert ihre
Produktliste in einer Datenbanktabelle mit dem folgenden Schema: Schlüssel, Name, Datentyp, Länge, Dateneingabe optional.
I.--> Passen Sie die PHP-Routine so an, dass sie auf die Tabelle product zuerst
in DB2, danach in Postgres und schließlich in MySQL zugreift. Aus jeder
Tabelle sollen alle Eintr ¨age abgefragt werden, beschr¨ankt auf die Attribute
BRAND_NAME, PRODUCT_ID, PRODUCT_NAME, PRODUCT_CLASS_ID, SRP,
GROSS_WEIGHT, RECYCLABLE_PACKAGE, LOW_FAT (alle unter Name (Primärschlüssel PRODUCT_ID)). Außerdem, soll die SELECTKlausel
eine Spalte namens FILIALE enthalten, die angibt, aus welcher Filiale
(’A’, ’B’ oder ’C’) der Eintrag stammt.
II.--> Nun soll jeder Attributname im Header als ein html-Link auf dieselbe PHPDatei
realisiert werden. Klick auf dem Attributnamen soll die Tabelle neu laden,
diesmal aufsteigend sortiert nach dem geklickten Attribut. Achtung: mit
ORDER BY ist es nicht lesbar, da die Ergebnisse aller 3 Anfragen sortiert werden
m¨ussen. L¨osung: alle Ergebnisse in einem Array speichern und die sort{}-
Funktion von PHP verwenden.
<html>
<head><title> Test Query </title></head>
<body>
<?php
$conn = @ db2_connect("infosys", "dummy", "is_ss07");
$part1 = "SELECT artistid FROM public.artists WHERE artist='madonna'";
$query = "SELECT albumid, album FROM public.albums WHERE albumid IN (
SELECT albumid from public.artist2album WHERE artistid IN ($part1))";
echo "Your query : <tt> $query </tt> <br><br>";
$result = db2_exec($conn, $query, array('cursor' => DB2_SCROLLABLE));
$columns = db2_num_fields($result);
$rows = db2_num_rows($result);
-------------
echo "<p>The query returned $rows entries:\n";
echo "<table width=90% border=2>\n
<tr bgcolor=\"#EAECEF\"><th>#</th>";
for($i=0; $i < $columns; $i++)
echo "<th>".db2_field_name($result, $i). "</th>\n";
echo "</tr>\n<tr>";
$counter = 1;
while(db2_fetch_row($result)) {
echo "<tr>\n<td>".$counter++. "</td>";
for($i=0; $i < $columns; $i++)
echo "<td>".db2_result($result, $i)."</td>\n";
echo "</tr>\n";
}
echo "</tr></table>";
db2_close($conn);
?>
</body>
</html>
..., Kibts
Kommentar