ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 12-01-2017, 05:09
peroja
 Registrierter Benutzer
Links : Onlinestatus : peroja ist offline
Registriert seit: Aug 2011
Beiträge: 21
peroja befindet sich auf einem aufstrebenden Ast
Standard Komisches Tabellen Problem

Hallo ihr guten,
Jetzt brauch ich doch Hilfe bei meinem Map versuch.

In der DB hab ich 5 Einträge




Und hier mein PHP Code dazu:

PHP-Code:

error_reporting
(E_ALL);

$dbhost 'localhost';
$dbuser '*******';
$dbpass '*******';
$con mysqli_connect($dbhost$dbuser$dbpass) or die ('MySQL: Error connecting to local database');
$dbname 'test';
mysqli_select_db($con,$dbname);


$sql "SELECT * from coordinaten ORDER by 'user_id'"
$result mysqli_query($con,$sql);
while(
$row mysqli_fetch_array($result)) {
$user_id $row['user_id'];
$coordX $row['x'];
$coordY $row['y'];

echo 
"<table border=0>"
//$coordX =1;
//$coordY =1;      
    
     
for($x=1;$x<=10;$x++)
    {
        echo 
"<tr>";
    for(
$y=1;$y<=10;$y++)
        {
      if(
$x==$coordX and $y==$coordY)
      {
      echo 
"<td>";
      echo 
"<div style='float: left; width: 50px; height: 50px; margin-right: 1px; margin-bottom: 1px; background-color: orange ; text-align: center;'>$user_id</div>";
        }
      else
      {
      echo 
"<td>";
      echo 
"<div style='float: left; width: 50px; height: 50px; margin-right: 1px; margin-bottom: 1px; background-color: green ; text-align: center;'>$x/$y</div>";
      }
      echo 
"</td>";
    } 
    echo 
"</tr>";     
  }             
  echo 
"</table>";    

Wo mach ich was falsch? Es generiert mir 5 Tabellen untereinander. Jeder Eintrag generiert eine neue Tabelle. Ich will aber alle Einträge in einer Tabelle haben. Ich bin langsam echt am verzweifeln. Ich bin der Meinung dass ich den Loop zum richtigen Zeitunkt abbreche.

Ich hoffe jemand von euch sieht den Fehler den ich nicht sehe.
Muss jetzt auch zugeben das ist mir peinlich weil ich hab ansonsten keine Probleme eine Tabelle aus DB einträgen zu generieren. Nur hier sind es fix 10x10 Felder und die, welche keine Einträge haben erscheinen Grün mit der Koordinate und die anderen Orange mit der User ID

Lieben Dank
Peroja
Mit Zitat antworten
  #2 (permalink)  
Alt 12-01-2017, 09:49
SysOp
 Registrierter Benutzer
Links : Onlinestatus : SysOp ist offline
Registriert seit: May 2005
Beiträge: 50
SysOp befindet sich auf einem aufstrebenden Ast
Standard

Dein <Table> Tag steht IN der while Schleife..
HTML Grundlagen...
Mit Zitat antworten
  #3 (permalink)  
Alt 12-01-2017, 16:10
peroja
 Registrierter Benutzer
Links : Onlinestatus : peroja ist offline
Registriert seit: Aug 2011
Beiträge: 21
peroja befindet sich auf einem aufstrebenden Ast
Standard trotzdem

Ich hab trotzdem das gleiche Ergebniss wenn ich den Table aus der While herausnehme

PHP-Code:
<?PHP
error_reporting
(E_ALL);
require(
'lib/connection.php');
echo 
"<table border=0>"

$sql "SELECT * from coordinaten ORDER by 'user_id'"
$result mysqli_query($con,$sql);
   
while(
$row mysqli_fetch_array($result)) {
$user_id $row['user_id'];
$coordX $row['x'];
$coordY $row['y'];

//$coordX =1;
//$coordY =1;      
  
     
for($x=1;$x<=10;$x++)
    {
    echo 
"<tr>";     
    for(
$y=1;$y<=10;$y++)
        {   
    echo 
"<td>";
      if(
$x==$coordX and $y==$coordY)
      {
             echo 
"<div style='float: left; width: 50px; height: 50px; margin-right: 0px; margin-bottom: 0px; background-color: orange ; text-align: center;'>$user_id</div>";
         }
      else
      {
            echo 
"<div style='float: left; width: 50px; height: 50px; margin-right: 0px; margin-bottom: 0px; background-color: green ; text-align: center;'>$x/$y</div>";
      }
    echo 
"</td>";             
    } 
  echo 
"</tr>";       
  }             
}            
echo 
"</table>"
                               
?>
Mit Zitat antworten
  #4 (permalink)  
Alt 13-01-2017, 08:09
bandit600
 Registrierter Benutzer
Links : Onlinestatus : bandit600 ist offline
Registriert seit: Jan 2010
Beiträge: 121
bandit600 befindet sich auf einem aufstrebenden Ast
Standard

1. Das kann nicht sein
2. Tue dir selber einen Gefallen und formatiere deinen Quellcode ordentlich, damit er besser lesbar wird

PHP-Code:
<?PHP
  error_reporting
(E_ALL);
  require(
'lib/connection.php');

  echo 
"<table border=0>"

  
$sql "SELECT user_id, x, y from coordinaten ORDER by 'user_id'"
  
  
$result mysqli_query($con,$sql)
    or die (
"MySQL-Error: " mysqli_error($con));
   

  while(
$row mysqli_fetch_array($result)) 
  {
     
$user_id $row['user_id'];
     
$coordX $row['x'];
     
$coordY $row['y'];

  
     for(
$x 1$x <= 10$x++)
     {
        echo 
"<tr>";     
        
        for(
$y 1$y <= 10$y++)
        {   
           echo 
"<td>";
           
           if(
$x == $coordX and $y == $coordY)
           {
             echo 
"<div style='float: left; width: 50px; height: 50px; margin-right: 0px; margin-bottom: 0px; background-color: orange ; text-align: center;'>$user_id</div>";
           }
           else
           {
              echo 
"<div style='float: left; width: 50px; height: 50px; margin-right: 0px; margin-bottom: 0px; background-color: green ; text-align: center;'>$x/$y</div>";
           }
           
           echo 
"</td>";             
        } 
        
        echo 
"</tr>";       
     }             
 }            

 echo 
"</table>"
                               
?>
Mit Zitat antworten
  #5 (permalink)  
Alt 13-01-2017, 18:27
peroja
 Registrierter Benutzer
Links : Onlinestatus : peroja ist offline
Registriert seit: Aug 2011
Beiträge: 21
peroja befindet sich auf einem aufstrebenden Ast
Standard Kritik?

Und Du mein lieber Bandit600 tu mir den Gefallen und prüfe erst Codes nachdem du sie "korrigiert" hast und mit Kritik an mich Publitzierst. Ich danke Dir dass du mir Helfen willst, ganz klar, aber Dein Code macht genau das gleiche wie meiner. Das hier ist von Dir:

http://www.soundwerkstatt.ch/programmieren/test/map.php

Auch Dein Code erzeugt 5 Tabellenanstatt nur eine mit aber allen 5 Einträgen drinnen. Scheint doch nicht so einfach zu sein gelle...

Allgemein, ich bin ja nicht blöd und ich hab mich auch versucht zu konzentrieren und logisch versucht zu Denken. Da ich alle 5 Einträge in die while schlaufe nehmen muss um diese auszugeben muss ich das while abschluss "}" als letztes setzen und zwar NACH dem Generieren der Tabelle sonst hab ich logischerweise nur den letzten Eintrag. Wenn ichjetzt aber die ganze while schlaufe im TD block unterbringe hab ich auch ein durcheinander.

Liebe Grüsse
Pero
Mit Zitat antworten
  #6 (permalink)  
Alt 13-01-2017, 19:04
bandit600
 Registrierter Benutzer
Links : Onlinestatus : bandit600 ist offline
Registriert seit: Jan 2010
Beiträge: 121
bandit600 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe deinen Quellcode auch nicht verändert, sondern anständig formatiert, um dir ein Beispiel zu geben.

Und der HTML-Code enthält nur eine Tabelle!
Mit Zitat antworten
  #7 (permalink)  
Alt 22-01-2017, 20:29
peroja
 Registrierter Benutzer
Links : Onlinestatus : peroja ist offline
Registriert seit: Aug 2011
Beiträge: 21
peroja befindet sich auf einem aufstrebenden Ast
Standard hmm

Hallo,

Es scheint niemand gewilllt zu sein mir bei diesem Problem helfen zu wollen?
Ich schaff es einfach nicht. Ein TableGrid zu erzeigen mit 10x10 feldern ist weniger ein Problem. Aber die Felder darin mit Daten aus der DB zu füllen schon. Also auf feld X,Y steht ein Eintrag. z.B 3/6 ist eine $user_id und auf 5/2 eine andere $user_id und auf 4/4 wiederum eine usw....
Das problem ist dass mein Code für jeden einzelnen Eintrag ($user_id) einen komplett neue Table erzeugt. Ich versteh das einfach nicht

Ich will eine einfache Map erstellen bei einem klick auf en besetztes Feld eine url erzeugt. (test.php?coord_x=$x&coord_y=$y) und besagtes Feld je nach DB eintrag grün oder blau ist, was auch immer....

Schönen Abend noch
LG
Peroja
Mit Zitat antworten
  #8 (permalink)  
Alt 23-01-2017, 10:59
bandit600
 Registrierter Benutzer
Links : Onlinestatus : bandit600 ist offline
Registriert seit: Jan 2010
Beiträge: 121
bandit600 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von peroja Beitrag anzeigen
Das problem ist dass mein Code für jeden einzelnen Eintrag ($user_id) einen komplett neue Table erzeugt. Ich versteh das einfach nicht
Nochmal, und diesmal tippe ich auch ganz langsam, damit du es vielleicht jetzt verstehst: Das Script erzeugt genau 1 Tabelle, nicht mehr und nicht weniger!
Mit Zitat antworten
  #9 (permalink)  
Alt 23-01-2017, 11:41
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.129
Quetschi wird schon bald berühmt werden
Standard

Versteh ich das richtig, dass du EINE Tabelle mit 10x10 Feldern erzeugen willst? Und in dieser Tabelle sollen dann die Koordinaten, welche sich in deiner DB befinden entsprechend belegt werden?

Falls du beide Fragen mit Ja beantworten kannst, ist dein Ansatz schlicht nicht tauglich dafür.
__________________
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!
Mit Zitat antworten
  #10 (permalink)  
Alt 23-01-2017, 15:31
peroja
 Registrierter Benutzer
Links : Onlinestatus : peroja ist offline
Registriert seit: Aug 2011
Beiträge: 21
peroja befindet sich auf einem aufstrebenden Ast
Standard

Das ist Richtig. Die Tabelle kann auch 100x100 sein

Ich möchte im Prinzip so etwas machen:

testgame - map

Einfach auf das rudimentäre reduziert. Diese Map ist zwar auf meinem Server und voll Funktionstüchtig wie man sieht aber ich will weder fremde sachen klauen noch passt diese Map visuell in die Art von Game welche ich grad baue. Zudem ist der Code dafür derart gross und Verflechtet in andere Scripte wie Javascript und 3 weitere PHP welche knapp 25KB gross sind. Der Aufwand dies zu entflechten ist es nicht Wert.

Wie würdet Ihr ein solches Projekt angehen? Bin mal gespannt auf Input
Mit Zitat antworten
  #11 (permalink)  
Alt 23-01-2017, 15:41
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.129
Quetschi wird schon bald berühmt werden
Standard

Wenn du das selber programmieren willst, dann würd ich mich an deiner Stelle nochmal gedanklich mit deinem Code auseinandersetzen und versuchen zu verstehen, was da passiert.

Du liest deine DB aus und für jeden User erzeugst du zehn Tabellenzeilen mit jeweils zehn Zellen - klingelt da irgendwas?
Es geht mir jetzt erstmal nur darum ob du verstehst, warum dein Ansatz nicht funktioniert.
__________________
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!
Mit Zitat antworten
  #12 (permalink)  
Alt 23-01-2017, 16:57
peroja
 Registrierter Benutzer
Links : Onlinestatus : peroja ist offline
Registriert seit: Aug 2011
Beiträge: 21
peroja befindet sich auf einem aufstrebenden Ast
Standard nun ja

Quetschi, ich hab schon genau geschaut und das Problem liegt innerhalb der WHILE schlaufe. Ich denk ich habs begriffen. Programmiertechnisch unmöglich.

Ich möcht aber trotzdem so ein Modul bauen, wenn auch nicht Isometrisch.
Ich könnt ja auch die Faulenzer Version machen und einen Table generieren und dann den HTML Coder daraus in ein neues File Pasten und dann von Hand den Link reintun. Aber des ist Doof.

Nun ich schau mal.
Mit Zitat antworten
  #13 (permalink)  
Alt 23-01-2017, 17:09
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.129
Quetschi wird schon bald berühmt werden
Standard

Dein Problem ist im Grunde genommen, dass du dich nicht an das EVA-Prinzip hältst. Zumindest Verarbeitung und Ausgabe sind bei dir mehr oder weniger in einem Schritt zusammengefasst. Du musst dich erst um die Verarbeitung kümmern und wenn diese abgeschlossen ist, kümmerst du dich noch um die Ausgabe.

Für dein Vorhaben könnte z.B. ein mehrdimensionales Array hilfreich sein, dass du in der Größe des gewünschten Feldes anlegst. Beim Durchlauf der Datensätze befüllst du dann die Felder des Arrays entsprechend. Zum Schluss überlegst du dir, wie du das Array als HTML-Tabelle ausgeben kannst.
__________________
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!
Mit Zitat antworten
  #14 (permalink)  
Alt 23-01-2017, 19:01
bandit600
 Registrierter Benutzer
Links : Onlinestatus : bandit600 ist offline
Registriert seit: Jan 2010
Beiträge: 121
bandit600 befindet sich auf einem aufstrebenden Ast
Standard

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>"
                               
?>
Mit Zitat antworten
  #15 (permalink)  
Alt 23-01-2017, 19:08
Quetschi
 PHP Expert
Links : Onlinestatus : Quetschi ist offline
Registriert seit: Dec 2004
Beiträge: 3.129
Quetschi wird schon bald berühmt werden
Standard

@bandit600

dein Codebeispiel stellt keinerlei Verbesserung gegenüber dem bisherigen Code dar?!
__________________
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!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
komisches if Problem joextra PHP Developer Forum 7 29-04-2013 23:59
komisches include() problem roemario PHP Developer Forum 7 24-06-2004 22:04
Komisches Problem Brasileiro Linux und Unix 6 11-04-2003 17:49
Komisches Problem! presentweb PHP Developer Forum 12 05-07-2002 16:47
komisches problem !!! kopfkult SQL / Datenbanken 2 11-01-2002 06:47

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

WannaCry stoppen & entfernen
WannaCry stoppen & entfernenmobilegeeks.de hat eine kurz Anleitung erstellt, wir Ihr Eure infizierten Windows-PCs evtl. wieder zu laufen bekommt.

19.05.2017 | Berni

Multi-Branchen-Marktplatzsoftware 7.2.2 veröffentlicht
Multi-Branchen-Marktplatzsoftware 7.2.2 veröffentlichtDie Software ebiz-trader steht in der Version 7.2.2 zur Verfügung.

28.10.2016 | Berni


 

Aktuelle PHP Scripte

Kostenlose PHP Galerie

PHP-Galerie ist eine freie PHP-Skript, das Sie hochladen und zeigen Fotos auf Ihrer Website in einem sauberen elegante Art und Weise ermöglicht.

18.08.2017 adrianTNT | Kategorie: PHP/ Bilder
bCounter – Besucherzähler mit PHP und MySQL

bCounter wertet zahlreiche Details der Seitenbesucher aus und stellt diese übersichtlich dar. Auf der Startseite werden die wichtigsten Statistiken angezeigt, mit Links zu detailierten Informationen. bCounter erkennt die Bots der wichtigsten Suchmaschi

18.07.2017 bond | Kategorie: PHP/ Besucherzaehler
XOOPS advanced CMS

XOOPS is an advanced CMS (Content Management System) backed with a number of databases (currently MySQL and PostgreSQL). XOOPS was originally based off of PHPNuke 4.4.1 and MyPHPNuke 1.8.5. It uses object-oriented PHP throughout the package, and about 70

18.07.2017 Berni | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:53 Uhr.