Ankündigung

Einklappen
Keine Ankündigung bisher.

pro datensatz eine tabelle erstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • pro datensatz eine tabelle erstellen

    Hallo Zusammen,

    ich habe in einer DB eine Tabelle mit 2 Felden

    id und k1

    und ich will für jeden datensatz eine neue html tabelle mit dem inhalt aus k1 erstellen aber ich bekomm das irgendwie nicht hin.

    hier mal der code

    Code:
    $query=mysql_query("SELECT * FROM tabelle1 WHERE id >'0'");
    
    while($query = mysql_fetch_assoc($query)){
    
    echo "<td>\n";
    echo $query["k1"];
    echo "</td>\n";
    }
    er spuckt mir zwar den inhalt des ersten datensatzes und eine fehlermeldung (Warning: mysql_fetch_assoc() expects parameter 1 to be resource, array given in ... on line 12) aus aber das wars auch.

    bitte erleuchtet mich
    danke im vorraus


  • #2
    Code:
    $query = mysql_fetch_assoc($query)
    Du übrschreibst $query, brauchst die Variable aber beim zweiten Schleifendurchlauf wieder für die Funktion mysql_fetch_assoc().
    http://hallophp.de

    Kommentar


    • #3
      Und die Begrifflichkeiten mache dir bitte auch erst mal klar - du sprichst von einer eigenen Tabelle pro Datensatz (was eher unsinnig wäre), und in deinem Beispielcode gibst du dann aber nur TD-Elemente aus, was Tabellenzellen sind.

      Kommentar


      • #4
        Und nach unten packst du bitte;
        PHP-Code:
        mysql_free_result($query); 
        Und schreibe ">0" und nicht ">'0'"

        Kommentar


        • #5
          stimmt habe ich abgeändert

          jetzt zeigt er mir allerdings zwei leere boxen

          ja entschuldigt dann halt tabellenzellen, für mich ist es eine neue tabelle inerhalb einer tabelle, die bezeichnung macht für mich keinen großen unterschied

          aber danke euch vielmals es funktioniert wunderbar mit mysql_fetch_assoc($query)

          bei mysql_free_result($query); kommt ebenfalls eine fehlermeldung

          Kommentar


          • #6
            Zitat von uncharted Beitrag anzeigen
            jetzt zeigt er mir allerdings zwei leere boxen
            Eigentlich sollte „er“ dir eher Array anzeigen - weil das nun mal die Ausgabe ist, wenn du versuchst, ein Array direkt mit echo auszugeben.

            Du musst natürlich auf die einzelnen Elemente innerhalb des Arrays zugreifen.
            Wenn dir nicht klar ist, wie das geht - hier entlang: http://www.php.de/php-einsteiger/489...nsammlung.html

            Kommentar


            • #7
              Wie schaut dein Code nun aus?

              Du darfst dann natürlich auch nicht mehr:
              PHP-Code:
              $query['k1'
              schreiben.

              Meine Lösung:
              PHP-Code:
              $qry    'SELECT * FROM tabelle1 WHERE id > 0';
              $result mysql_query($qry);

              while(
              $row mysql_fetch_assoc($result)){
                  echo 
              $row['k1'];
              }

              mysql_free_result($result); 
              Um die Ausgabe musst du natürlich nun noch eine Tabelle packen!

              Kommentar


              • #8
                Zitat von uncharted Beitrag anzeigen
                ja entschuldigt dann halt tabellenzellen, für mich ist es eine neue tabelle inerhalb einer tabelle, die bezeichnung macht für mich keinen großen unterschied
                Du willst hier aber auch von anderen Leuten verstanden werden mit deinen Problembeschreibungen - also gewöhne dir bitte auch an, die korrekten Begriffe zu verwenden.

                (Die Leute, die das „nicht so genau nehmen“ sind fast immer auch die, die auch mit der Programmierung ihre Probleme haben - eben weil sie grundsätzlich bei Formulierungen schludern. Während menschliche Leser vielleicht noch zu raten bereit sind, was gemeint sein könnte, sind Computer da sehr viel strenger. Wer sich mehr Mühe gibt, sich verbal korrekt auszudrücken, der hat idR. auch beim Programmieren weniger Probleme.)


                Und halbwegs korrekte Interpunktion und Groß-/Kleinschreibung sind in einem Forum bzw. allgemein bei schriftlicher Kommunikation auch ein Zeichen von Höflichkeit dem Gesprächspartner gegenüber.
                Wenn du deine Problembeschreibungen immer nur „hingerotzt“ aussehen, dann steigert das bei den meisten Leuten vermutlich auch nicht gerade die Bereitschaft, dir weiter zu helfen.
                Bitte denk' da mal drüber nach.

                Kommentar


                • #9
                  Ja natürlich, verzeiht mein unpassendes Verhalten, ihr helft mir ja schließlich.

                  Danke an die Lösung von Jens P. und Asipak

                  Kommentar


                  • #10
                    Zitat von uncharted Beitrag anzeigen
                    Ja natürlich, verzeiht mein unpassendes Verhalten, ihr helft mir ja schließlich.

                    Danke an die Lösung von Jens P. und Asipak
                    Funktioniert es denn nun? Zeig uns doch mal deinen Programmcode/Quelltext

                    Kommentar


                    • #11
                      ja funktioniert hab es so gelöst da gibt es keine schwierigkeiten


                      Code:
                      <?php
                      
                      include("wm_files/data/frontendcfg.php");
                      
                      //Menü 1
                      
                      //Tabelle
                      echo "<table align=\"center\" width=\"".$width."\">\n";
                      echo "<tr>\n";
                      echo "<td>\n";
                      
                      $box1homequery=mysql_query("SELECT * FROM box1 WHERE box1_id >'0'");
                      
                      while($box1query = mysql_fetch_assoc($box1homequery)){
                      echo "<span style=\"text-align: center; font-weight:".$box1_fst."; font-size:".$box1_s."pt; font-family:".$box1_ff." \">\n";
                      echo "<p style=\" float: left; overflow:hidden; padding:5px; margin:3px; text-align: center";
                      echo "max-height:".$box1_h."px; max-width:".$box1_w."px; border:".$box1_bw."px ".$box1_bs." ".$box1_bc."; background:".$box1_bgc."\">\n";
                      echo $box1query["kat1"];
                      echo "</span>\n";
                      echo "</p>\n";
                      }
                      
                      echo "</td>\n";
                      echo "</tr>\n";
                      echo "</table><br>\n";
                      
                      ?>
                      Die Formatierungen sind noch nicht in eine CSS datei gelegt, hab schon in einem Beitrag gefragt wie ich das realisieren kann bin aber noch nicht dazu gekommen.

                      ich will ein SQL basierendes Menü erstellen, d.h. heißt er soll dann unter der ersten Tabelle (mit mehreren Tabellenzellen) später genau die gleiche generieren die dann aber aus den Inhalten von einer zweiten SQL-Tabelle besteht (Primarschlüssel der ersten ist Fremdschlüssel in der zweiten), also ein Submenü.


                      allerdings habe ich noch keine Idee wie ich das realisieren kann da mir noch nicht klar ist wie ich die Box "anklickbar" gestalte und sie bei klick die ID in eine Variable gibt mit der ich dann weiterarbeiten kann.

                      Ich hoffe ich konnte mein Vorhaben etwas anschaulich gestalten

                      Kommentar


                      • #12
                        Das sieht auf jedenfall schonmal besser aus. Ich würde dir nur raten: Lerne gute und eindeutige Variablennamen zu wählen..

                        Kommentar


                        • #13
                          Danke!

                          Die Variablennamen hatte ich mal eindeutig bzw. man konnte erlesen wofür sie stehen aber die wurden mir dann zu lang, aus diesem Grunde habe ich jede Variable in der cfg Kommentiert.

                          Hast du nun vll. eine Idee wie ich den Inhalt der Tabellenzelle "klickbar" gestalte und bei Klick die zugehörige ID von der DB in eine neue Variable übergebe?

                          mir fällt keine Lösung ein und auch Google kann ich mit sovielen Suchbegriffen nicht füttern.

                          Ich möchte ungern ein Button mit "Onklick" verwenden um mir die Optik nicht zu ruinieren.

                          Vielen Dank im Vorraus

                          Kommentar


                          • #14
                            Für Verlinkungen sieht HTML das A-Element vor.
                            Entweder schaust du, ob der Inhalt der Zelle sich darin unterbringen lässt, ohne die Struktur allzu sehr zu verschandeln, oder du legst bspw. der CSS den Link „über“ die komplette Zelle, so dass die komplette Fläche klickbar wird, die Inhalte darunter aber nach wie vor mit sinnvolleren Elementen strukturiert sind.
                            Einen normalen Textlink zu machen, und per onclick auf die Tabellenzelle dessen Ziel aufzurufen, wenn JavaScript verfügbar ist, wär eine weitere Möglichkeit.

                            Kommentar


                            • #15
                              Danke,

                              ich habe das A-Element verwendet aber ich will ja mit diesen Link die box1_id von der Tabellenzelle die angeklickt wurde in eine Variable speichern weil mit einer prüfung dann ein entsprechendes Submenü aufgerufen werden soll und keine neue Seite nur komm ich da nicht weiter, weil ich ehrlich gesagt keinen schimmer habe wie ich da realisieren kann.

                              kurz gesagt ich möchte beim anklicken der Zelle die den Inhalt des ersten des Datensatzes vom Feld "kat1", die zugehörige ID vom Feld box1_id in eine variable übergeben.

                              Kommentar

                              Lädt...
                              X