PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Komisches Tabellen Problem (https://www.php-resource.de/forum/php-developer-forum/105870-komisches-tabellen-problem.html)

bandit600 23-01-2017 21:27

Zitat:

Zitat von Quetschi (Beitrag 673475)
dein Codebeispiel stellt keinerlei Verbesserung gegenüber dem bisherigen Code dar?!

Ja, nee is' klar. :motz:

Quetschi 23-01-2017 21:45

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.

peroja 23-01-2017 22:19

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

peroja 23-01-2017 22:40

wow
 
WOW!! Bandit, GROOOSSES Kino. Wie Geil ist dass denn? Schnell den Tabellen Namen angepasst und funzt auf anhieb. Hab ich weider etwas gelernt. :huep:
Sehr geil. Danke vielmals.

Hat jemand von euch beiden Lust/Zeit mitzucoden? Mein Game ist schon relativ weit.


Zitat:

Zitat von bandit600 (Beitrag 673474)
PHP-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>"
                               
?>



peroja 24-01-2017 00:22

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>";
?>


bandit600 24-01-2017 07:55

Zitat:

Zitat von peroja (Beitrag 673480)
Mit CSS hab ich jetzt echt kein Problem aber hier liegt es weniger am CSS

Doch, genau daran liegt es. Stichwort border-collapse und padding

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>"
 
?>


Quetschi 24-01-2017 10:09

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.

peroja 24-01-2017 21:06

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



http://www.soundwerkstatt.ch/program...test/game1.jpg


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


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:23 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG