Zitat von Quetschi
Beitrag anzeigen
Komisches Tabellen Problem
Einklappen
X
-
ruhig ruhig
Sorry, hatte übersehen dass die while-schleife nur die eine Zeile umfasste und ging daher davon aus, dass wieder pro Datensatz alle Felder erzeugt werden.
Abgesehen davon funktioniert dieser Ansatz zwar, gefallen tut er mir aber nicht, da erst in der Ausgabe die Zellen mit den Infos belegt werden. Würde von vorherein das komplette "Spielfeld" z.B. als Array abbilden, in der while-schleife die Ergebnisse aus der DB eintragen und dann das Array als HTML-Tabelle ausgeben. So bleibt das Ganze flexibler.Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Kommentar
-
Cool der Gedanke mit dem Array. Ich werde mir das Morgen mal genauer Anschauen und auf dieser Basis nochmal neu Anfangen. Macht Sinn.
Danke für den Input. Übrigens, mein Problem ist dass ich nicht wirklich der PHP Crack bin. Für mich ist das ein Hobby und deshalb "Programmiere" ich auch nicht Täglich. Somit fehlt es mir an Routine. Oft kommt es vor dass ich Monatelang, vielleicht Jahre keine einzige Zeile schreibe und dann packt es mich wieder und ich zermartere mir den Kopf an solchen Dingen.
Da muss ich ein wenig Grinsen wenn ich den Footer von Quetschi ansehe. Das Problem PDO/mySQLi war in der Tat vor noch nicht so langer Zeit ein Thema bei mir. Ich hab knapp 6 Jahre lang praktisch gar nix gemacht und erst vor ein paar Wochen wieder angefangen und musste erstaunt feststellen dass mysql obsolet war. Und dann erst mal wieder neu lernen wie man HEUTE einen zugriff auf eine DB herstellt.
Meinen ehrlichen Respekt denen die sehr viel mehr Wissen als ich, zumindest was Programmieren angeht. (Ich war bis 2013 Beruflich in einer ganz anderen Welt zuhause, hat nur wenig mit IT zu tun: Aviatik)
Lieben Dank für den Input. Macht Freude von euch zu lernen.
Schönen Abend noch.
Randy aks Peroja
Kommentar
-
wow
WOW!! Bandit, GROOOSSES Kino. Wie Geil ist dass denn? Schnell den Tabellen Namen angepasst und funzt auf anhieb. Hab ich weider etwas gelernt.
Sehr geil. Danke vielmals.
Hat jemand von euch beiden Lust/Zeit mitzucoden? Mein Game ist schon relativ weit.
Zitat von bandit600 Beitrag anzeigenPHP-Code:<?PHP
$con = mysqli_connect("localhost", "root", "", "test");
$sql = "SELECT user_id, x, y from t3";
$result = mysqli_query($con,$sql)
or die ("MySQL-Error: " . mysqli_error());
$data = array();
while($row = mysqli_fetch_array($result))
$data[$row['x'] . "/" . $row['y']] = $row['user_id'];
echo "<table border=0>";
for($x = 1; $x <= 10; $x++)
{
echo "<tr>";
for($y = 1;$y <= 10; $y++)
{
$key = $x . "/" . $y;
if (array_key_exists($key, $data))
{
$output = $data[$key];
$color = "green";
}
else
{
$output = $key;
$color = "red";
}
echo "<td>
<div style='float: left; width: 50px; height: 50px; margin-right: 0px; margin-bottom: 0px; background-color: $color ; text-align: center;'>$output</div>
</td>";
}
echo "</tr>";
}
echo "</table>";
?>
Kommentar
-
Ich hab jetzt das Ding genau so umgeschrieben wie ich es haben wollte
http://www.soundwerkstatt.ch/programmieren/test/map.php
Ich hab viele Grüne Felder und ein paar Rote und wenn ich auf ein Feld gehe wird ein Link erzeugt. ABER was zum Geier....die Abstände sind ja Horror!
Mit CSS hab ich jetzt echt kein Problem aber hier liegt es weniger am CSS sondern iwie an der Formatierung wie die Tabelle generiert wird?
Ich versteh aber nicht was? Ich hab Border=0 und meines Erachtens so ziemlich alles getan um eine unschöne Formatierung zu verhindern?
Code:<?PHP $con = mysqli_connect("localhost", "root", "", "test"); $sql = "SELECT user_id, x, y, type from map"; $result = mysqli_query($con,$sql) or die ("MySQL-Error: " . mysqli_error()); $data = array(); while($row = mysqli_fetch_array($result)) $data[$row['x'] . "/" . $row['y']] = $row['user_id']; $type = $row['type']; echo "<table border=0 style=table-layout:fixed>"; for($x = 1; $x <= 30; $x++) { echo "<tr>"; for($y = 1;$y <= 50; $y++) { $key = $x . "/" . $y; if (array_key_exists($key, $data)) { $output = '';//$data[$key]; $color = "red"; } else { $output = $key; $color = "green"; } echo "<td style=width:0px;> <a href='test.php?x=$x&y=$y'><div style='width: 20px; height: 20px; margin: 0px; border: none; background-color: $color;'></div></a> </td>"; } echo "</tr>"; } echo "</table>"; ?>
Kommentar
-
Zitat von peroja Beitrag anzeigenMit CSS hab ich jetzt echt kein Problem aber hier liegt es weniger am CSS
echo "<td style=width:0px;>
Ganz großes Kino
PHP-Code:<?php
echo "<table style='border: 0; border-collapse: collapse;'>";
for($x = 1; $x <= 30; $x++)
{
echo "<tr style='padding:0;'>";
for($y = 1;$y <= 50; $y++)
{
if ($y % 3)
$color = "red";
else
$color = "green";
echo "<td style='padding:0;'>
<a href='test.php?x=$x&y=$y'><div style='width: 20px; height: 20px; margin: 0px; border: none; background-color: $color;'></div></a>
</td>";
}
echo "</tr>";
}
echo "</table>";
?>Zuletzt geändert von bandit600; 24.01.2017, 08:05.
Kommentar
-
Vielleicht solltest du mal erklären, wie es aussehen soll damit es für dich "schön" ist? Empfindet ja jeder anders. Aussagen wie "ABER was zum Geier....die Abstände sind ja Horror!" machen deutlich, dass dir die momentane Optik nicht gefällt aber wir können nicht riechen, wie du es lieber hättest.
Abgesehen davon: Pack das CSS nicht mit in die Ausgabe, sondern lege dir Klassen in einer separaten CSS-Datei an, die du dann in deiner Ausgabe den jeweiligen Elementen zuweist.Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
Schön - etwas Geschichte kann ja nicht schaden.
Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!
Kommentar
-
Lieben Dank für den Input. Ich werd mir das morgen mal genauer ansehen.
Bin jetzt ziemlich kaputt, wieder über 12 Std. ohne Pause am Coden gewesen.
Was Ihr nicht wisst: Ich bin schon relativ weit vorangeschritten
Aber wie jeder Novice hab auch ich gravierende Fehler gemacht. Ich hab angefangen zu Coden, dann zwischendurch Probleme Gegoogelt und dann auf neue Techniken gestossen (Sprichwort DB zugriff) und mich dann erst mal schlau gemacht was $db->commit(); und $db->rollback(); ist, für was es gut ist usw...dann hab ich gemerkt dass ich meinen DB zugriff so gestallten muss und nicht wie gewohnt im alten mysqli verfahren. Der Grund ist dass bei der Anmeldung verschiedene Tabellen angesprochen werden und Updates in versch. Tabellen gleichzeitig passieren. Meine Befürchtungen waren dass das ganze crasht wenn 2 user gleichzeitig auf die gleiche Tabelle zugreifen etc. Die Chance liegt zwar bei 1:1'000'000 hoch 13 (LOL) aber wenn ich schon die Chance habe etwas sauber aufzusetzen und nicht einfach so schnell husch husch funktionell, dann gehe ich natürlich den langwierigeren aber auch saubereren Weg. Später würd ich nämlich stress bekommen wenn eine PHP so und die andere PHP anders auf die DB zugreift.
Ich bin also gezwungen fast die hälfte aller Scripte "Umzucoden" was etwas mühsam ist aber was solls. Bis jetzt kann man Gebäude zum Upgraden anklicken udn ein JS gibt dann die Zeit aus wie lange es dauert auf das nächste gebäudelevel (update funktionierte bereits aber ich musste das verwerfen)
Zuerst war es so aufgebaut dass ein Cron jede Minute Daten aus der DB liest und anhand eines gebäudelevels dann entsprechende Resourcen Generiert. Einfache (Faulenzer-) Methode. Bei über 100 Spielern wird das aber dann langsam viel Datenschub. Nun hab ich die Resourcen Produktion anders Aufgebaut. Mit Timestamps und Zeitrechnung. Leider sehe ich gerade dass die Webseite in welcher ich diese Tutorials fand seit heute Offline ist. Kacke...die Tuts waren sehr gut.
Vielleicht hat jemand Interesse mitzucoden?
Randy
Kommentar
Kommentar