Wer kann mir diesen PHP/MySQL Code aus Dreamweaver näher erklären?

Hallo :)
Also ich habe nur eine Datenbank und Tabelle erstellt (beides in phpmyadmin), Verbindungen zu Dreamweaver hergestellt und eine einfache Tabelle mit einer Wiederholungsschleife eingefügt.

Und jetzt würde ich gerne wissen, was der ganze Code zu bedeuten hat. Hier ist er:

<?php require_once('Connections/matura.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}

mysql_select_db($database_matura, $matura);
$query_Recordset1 = "SELECT * FROM matura";
$Recordset1 = mysql_query($query_Recordset1, $matura) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<?php do { ?>
<table width="200" border="1">
<tr>
<td><?php echo $row_Recordset1['id']; ?></td>
<td><?php echo $row_Recordset1['text 1']; ?></td>
<td><?php echo $row_Recordset1['text 2']; ?></td>
</tr>
</table>
<?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?></body>
</html>
<?php
mysql_free_result($Recordset1);
?>


Interessieren tu ich mich dabei vor allem für das was am Anfang passiert - das ist nämlich der Code für die Bindung an die Tabelle und den verstehe ich nicht ganz. Also ca. bis:

}
return $theValue;
}
}

Glg Ben

2009-06-25T07:05:03Z

Falls es farbig einfach zu erkennen ist, hier (Anklicken zum Vergrößern):

http://img140.imageshack.us/i/hhui.jpg/

Ach, und danke schonmal für Antworten :)

Anonym2009-06-27T03:27:23Z

Beste Antwort

in der ersten zeile wird die verbindungsinformation für die mysql datenbank angefordert und verbindet diese (aus der matura.php - kannst da ja mal reinschauen), anschließend wird überprüft, ob die funktion "GetSQLValueString" bereits deklariert ist. falls diese NICHT exisitert (!function_exists - das ausrufezeichen verneint die funktion), wird sie neu deklariert.
die funktion erwartet vier argumente, wenn sie verwendet wird. im endeffekt lässt sich mit dieser überprüfen, welchen typ die daten aus der datenbank haben, um diese dann korrekt für die darstellung umzuwandeln.

das auslesen aus der datenbank erfolgt erst nach dieser funktion.

mysql_select_db($database_matura, $matura);
wählt die datenbank aus, mit den informationen aus der matura.php. die erste variable enthält die datenbank und die zweite den verbindungslink. dann kommt der query, der angibt, welche daten aus der tabelle geladen werden sollen. in deinem falle werden alle ( * ) daten aus der tabelle matura ausgelesen. vorerst wird dieser query in eine variable geladen. dann erst wird mit mysql_query das auslesen gestartet, dafür erwartet der befehl deinen query (der ist in $query_Recordset1) und den verbindungslink ($matura). falls das nicht klappt, soll eine fehlermeldung ausgegeben werden (or die(mysql_error()) ). die in $Recordset1 enthaltenen daten werden dann mit mysql_fetch_assoc in ein "assoziatives" array geladen (row_Recordset1). in der nächsten zeile wird noch die anzahl der ausgelesenen reihen berechnet, was übrigens nicht zwigend notwendig ist.

wenn du noch was wissen willst, meld dich^^.