anlegen einer relation in einer mysql-db

Hounter13

Grünschnabel
hallo ^^
wir haben im informatik-grundkurs bei unserem schulserver eine db angelegt,
in form von zwei tabellen.
aufgabe ist es nun, mithilfe der exportations-befehls zwei pendants zu diesen tabellen zu erstellen (so weit, so gut) UND dessen formatierung zu übertragen, was den entitätstypen angeht (samt attributen eben) und zusätzlich auch die datenwerte folgender zeilen zu übertragen. um gleiche variablenwahl und dergleichen habe ich mich gekümmert.

ich habe nun einen ansatz geschrieben, komme aber von zu hause aus nicht an den schulserver und würde euch deshalb darum bitten, da ihr in fragen, bei denen der server nicht verwendet wrude, also was html und einfaches php angeht, in form von beitragen anderer user immer die letzte rettungl ward, zu schauen, ob das so in ordnung ist.
meinem verständnis nach, müsste zumindest die erste zeile, also der entitätstyp mit den attributen abgegeben werden.

<?
mysql_connect ('server', 'inf2', 'xxx');
$sql = "SELECT * ";
$sql .= "FROM ";
$sql .= " Sco_CD ";
$sql .= "ORDER BY ";
$sql .= " ID ";

$sql = "INSERT INTO BoZ_ges_cd ( ";
$sql .= " Interpret, ";
$sql .= " Titel, ";
$sql .= " Art, ";
$sql .= " Laenge, ";
$sql .= " Label, ";
$sql .= " Producer, ";
$sql .= " Jahr ";
$sql .= ") VALUES ( ";
$sql .= " $titel, ";
$sql .= " $art, ";
$sql .= " $laenge, ";
$sql .= " $label, ";
$sql .= " $producer, ";
$sql .= " $jahr ";
$sql .= ")";
$erg = mysql_db_query ("inf2", $sql);
?>

das aufwendige und geteilte schema müssen wir anwenden.
soll fehler vermeiden, verursacht bei mir aber eher mehr ^^

vielen dank im voraus.
 
Vorweg: Obwohl wir uns über solch ein abstraktes Medium wie dem Internet unterhalten, bitte ich dich dennoch um Einhaltung der deutschen Rechtschreibung, insbesondere die Regelungen der Groß- und Kleinschreibung und Interpunktion.


Dann erzähl mal deinem Informatik-Grundkurs-Lehrer – ich gehe mal davon aus, dass die überwiegende Anzahl von Informatiklehrkräfte männlich ist –, dass sein Schema ihm vielleicht hilft Fehler zu vermeiden, es allerdings auch äußerst unübersichlich ist. Ich habe mir folgendes Schema angewöhnt:
PHP:
<?php

	mysql_connect('server', 'inf2', 'xxx');
	$query = "
		SELECT
		        *
		  FROM
		        `Sco_CD`
		  ORDER BY
		        `ID`
		";

	$query = "
		INSERT INTO
		        `BoZ_ges_cd`
		  SET
		        `Interpret` = '".mysql_real_escape_string($internpret)."',
		        `Titel`     = '".mysql_real_escape_string($titel)."',
		        `Art`       = '".mysql_real_escape_string($art)."',
		        `Laenge`    = '".mysql_real_escape_string($laenge)."',
		        `Label`     = '".mysql_real_escape_string($label)."',
		        `Producer`  = '".mysql_real_escape_strign($producer)."',
		        `Jahr`      = '".mysql_real_escape_string($jahr)."'
		";
	$erg = mysql_db_query('inf2', $query);

?>
Mit unterschiedlichen Einrückungen der einzelnen Segmente sieht man sofort, woran man überhaupt ist.

Bei dieser weitaus übersichtlichen Schreibweise der INSET INTO-Klausel wäre beispielsweise sofort aufgefallen, dass dem Attribut „Interpret“ kein Wert zugewiesen wurde, wie es in deinem Beispiel der Fall ist.
 
Soweit ich mich erinnern kann, gab es bei uns auch das Problem,
dass das Programm mit keinen Zeilenumbrüchen zurecht kam.
Jedenfalls danke ich dir für das Anwenden von Set und der seperaten Zuweisung von Variablen.
;)
 
MySQL machen den zusätzlichen Whitespace und die Zeilenumbrüche absolut nichts aus; sie werden ganz einfach ignoriert, solange sie nicht Teil eines Wertes sind.

Was deine eingängige Frage bzw. den Titel angeht: Soviel ich gehört/gelesen hab, ist MySQL kein wirkliches relationales Datenbankverwaltungssystem, da die Beziehungen unten den Tabellen erst durch die Spezifikationen innerhalb der Abfragen entstehen.
 
Zurück