if ('POST' == $_SERVER['REQUEST_METHOD']) {
if (!isset($_POST['field'], $_POST['table'], $_POST['itemtable'], $_POST['formaction'])) {
break;
}
// Feld leer
if (('' == $field = ($_POST['field'])) OR
('' == $table = ($_POST['table'])) OR
('' == $itemtable = ($_POST['itemtable']))) {
break;
}
//// Alle benötigten Plaketten zum jeweiligen Bauplan auslesen
$getPlakettenliste="SELECT
Plakette1,
Plakette2
FROM
Plakettenliste
WHERE
Bauplan='$field'";
if (mysql_errno()) {
echo mysql_errno() . ": " . mysql_error(). "\n";
}
$Plakettenliste = mysql_query($getPlakettenliste);
// Wenn Plakettenliste zum Bauplan vorhanden ist dann,
if(mysql_num_rows($Plakettenliste) != 0) {
// alle bereits erworbenen Plaketten abrufen
$getPlaketten = "SELECT
user.name,
PlakettenLager.*,
PlakettenBibliothek.*,
PlakettenBaumeister.*
FROM
(SELECT '{$Username}' AS name) AS user
LEFT JOIN PlakettenLager
ON PlakettenLager.Username = user.name
LEFT JOIN PlakettenBibliothek
ON PlakettenBibliothek.Username = user.name
LEFT JOIN PlakettenBaumeister
ON PlakettenBaumeister.Username = user.name";
if (mysql_errno()) {
echo mysql_errno() . ": " . mysql_error(). "\n";
}
$Plaketten = mysql_query($getPlaketten);
// Wenn User bereits Plaketten hat dann,
if(mysql_num_rows($Plaketten) != 0) {
// alle für Bauplan benötigten Plaketten in Array data1 schreiben.
$row = mysql_fetch_assoc($Plakettenliste);
$data1[] = $row;
/*while ($row = mysql_fetch_assoc($Plakettenliste)) {
$data1[] = $row;
}*/
// alle Relevanten Feldnamen der Tabelle Plaketten (welche bereits erworben wurden) ermitteln.
while ($row1 = mysql_fetch_assoc($Plaketten)) {
for ($i = 0; $i < mysql_num_fields($Plaketten); $i++) {
$field1=mysql_field_name($Plaketten, $i);
if (($row1[$field1] != 0) AND ($field1 != 'ID')) {
// erworbene Plaketten (Namen) in Array data2 schreiben
$data2[] = $field1;
}
}
}
if (is_array($data2)) {
// Arrays auf Schnittmenge vergleichen
$dataintersect=array_intersect($data1,$data2);
// Wenn Schnittmenge = alle erforderlichen Plaketten
$datadiff=array_diff($data1, $dataintersect);
$dataintersect2=array_intersect($dataintersect, $data2);
if ((count($datadiff)==0) AND (count($dataintersect) != 0)) {
//if ((count($dataintersect)==count($data1)) AND (count($dataintersect) != 0) ) {
//// Studium in Datenbank auf erforscht stellen
mysql_query("UPDATE
$table
SET
$field=1
WHERE
Username='$Username'");
if (mysql_errno()) {
echo mysql_errno() . ": " . mysql_error(). "\n";
}
if (mysql_affected_rows() == 0) {
// Datensatz zum ersten mal für den User erstellen
mysql_query("INSERT INTO
$table
(Username,$field)
VALUES
('$Username','1')");
if (mysql_errno()) {
echo mysql_errno() . ": " . mysql_error(). "\n";
}
}
//// verbrauchten Bauplan aus dem Inventar entfernen
mysql_query("UPDATE
$itemtable
SET
$field=$field-1
WHERE
Username='$Username'");
if (mysql_errno()) {
echo mysql_errno() . ": " . mysql_error(). "\n";
}
// Ausgabe Studium erfolgreich
echo "<p>Du hast den Bauplan für ".$field." erfolgreich studiert<br>
Der Bauplan wurde dabei völlig zerschlissen.</p>";
//echo "<meta http-equiv='refresh' content='3; URL=main.php?section=bauplan'>";
}
else {
echo "<p>Leider noch nicht alle Plaketten vorhanden.<br>
Es fehlen noch:</p>";
if (count($datadiff)!=0) {
for ($i = 0; $i < count($datadiff); $i++) {
echo "<p>Plakette für ".$datadiff[$i]."</p>";
}
var_dump($data1);
var_dump($data2);
var_dump($dataintersect);
//var_dump($datadiff);
echo "<p>relevante Stelle im Script</p>";
}
else {
for ($i = 0; $i < count($data1); $i++) {
if ($data1[$i] != '') {
echo "<p>Plakette ".$data1[$i]."</p>";
}
}
}
}
}
else {
echo "<p>TODO</p>";
}
}
if(mysql_num_rows($Plaketten) == 0) {
echo "<p>TODO</p>";
}
}
if(mysql_num_rows($Plakettenliste) == 0) {
echo "<p>Sorry Liste der benötigten Plaketten noch nicht erstellt. Dieser Bauplan kann noch nicht studiert werden.</p>";
}
}