kostenloser Webspace werbefrei: lima-city


Datenbank Tabelle in besonderer Form ausgeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. vctb schrieb:
    ... Ich sehe es halt aus der Sicht des Anfängers, da sind unkonventionellere Programmierstile teilweise schwer zu verstehen.
    ja!

    und das ist richtig so!

    der anfänger soll dor hin kommen, wo der erfahrene ist! sonst werden wir wieder affen, vom baum runterhängend ;)
    also fange nicht an, sondern fahre vort (schmunzel! also doch lieber) fort!

    das ist aber 'ot'!

    Beitrag zuletzt geändert: 20.7.2012 12:16:21 von czibere
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Okay, tut mir leid das die Antwort etwas auf sich warten ließ. Hab selbst noch n bisschen rumprobiert (Mit nem eigenen Script) aber das ist alles nichts geworden)

    Hab jetzt nochmal das von hier genommen und so geändert wie gesagt, und ich kann mir einfach immer noch nicht erklären wie dort vollgender Fehler auftreten kann:

    http://emil-online.square7.ch/Sonstiges/fehler.png

    Wenn ich Zeile Zeile 3 Komplett raus nehme ist der Fehler in Zeile 4

    Und mehr als in dem Script zu sehen ist hab ich auch noch nicht geändert, Ich Arbeite in der Regeleinfach die Fehler in Chronologischer Reihenfolge ab


  4. Schalt mal in Notepad++ unter Ansicht -> Nicht druckbare Zeichen -> Alle Zeichen anzeigen an. Ich hatte mal ein Problem mit einem kopierten Sonderzeichen.

    Ansonsten könnte es an der von dir verwendeten PHP-Version liegen, da E_Strict die PHP Version 5 benötig und auch aktivert sein muss.

    Falls du möchtest kannst du den Programmcode als Datei hier anhängen (gepackt oder umbenannt als .txt) dann kann man ihn sich mal angucken wo Fehler sind.
  5. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Also bei mir ist Version 5.3.8 aktiviert.
    Versteckte Sonderzeichen sind dort nicht vorhanden.

    Hier ist die Datei:
    Klick mich
  6. jhb schrieb:
    ... Hier ist die Datei:
    Klick mich
    ja und ich muss noch immer auf das hinweisen!!!! bitte mache endlich die query fertig! gut, das hat mit dem seltsamen fehler nichts zu tun, aber trotzdem.

    am computer können immer wieder seltsame dinge passieren. probiere mal aus, eine neue datei zu erzeugen und dort das ganze von hand eintippen. es ist nicht so tragisch groß. sonst kann ich dir nichts raten. bin kein windows mann.
  7. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Okay, dann besteht doch nochmal erklärungs- bedarf was an der Query angepasst werden muss.
  8. jhb schrieb:
    Okay, dann besteht doch nochmal erklärungs- bedarf was an der Query angepasst werden muss.
    ;o)) ok
    gib mir bitte die drei spaltennamen die du abfragen willst, den namen der database und den namen der tabelle.
  9. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Hmm also im grunde sind es:

    name
    image
    description
    link

    Link soll benutzt werden um die 3 anderen als ganzes zu verlinken (Divbox um die Tabelle, Link um die Divbox) Hoffe die information kommt nicht zu spät.

    Datenbank: homepage
    Tabelle: projekte

    Dabei noch eine kleine frage am rande, kann man die Datenbank bei limacity auch umbenennen? Also nicht den Pfad sondern naja, Den Datenbanknamen.
  10. jhb schrieb:
    Hmm also im grunde sind es:

    name
    image
    description
    link

    Link soll benutzt werden um die 3 anderen als ganzes zu verlinken (Divbox um die Tabelle, Link um die Divbox) Hoffe die information kommt nicht zu spät.

    Datenbank: homepage
    Tabelle: projekte

    Dabei noch eine kleine frage am rande, kann man die Datenbank bei limacity auch umbenennen? Also nicht den Pfad sondern naja, Den Datenbanknamen.
    also dann die query sieht so aus
    select concat('<td>',
                  name,
                  '<br />',
                  image,
                  '<br />',
                  desription,
                  '<br />',
                  link,
                  '</td>') td
    from homepage.projekte
    damit überschreibst also die alte query.

    bist du sonst sicher, dass das stimmt?
    Datenbank: homepage
    Tabelle: projekte


    das ist mir leider unklar:
    Divbox um die Tabelle, Link um die Divbox
    das hieße ja link um die ganze tabelle? oder??
  11. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    jhb schrieb:
    Dabei noch eine kleine frage am rande, kann man die Datenbank bei limacity auch umbenennen? Also nicht den Pfad sondern naja, Den Datenbanknamen.
    Nein, das kannst du nicht, aber wozu auch?


    czibere schrieb:
    das ist mir leider unklar:
    Divbox um die Tabelle, Link um die Divbox
    das hieße ja link um die ganze tabelle? oder??
    Er meint vermutlich eher:
    Divbox zum die Zelle, Link um die Divbox
    Aber wozu braucht er dann die Divbox? Ein Link um den Content reicht doch dann auch...
  12. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Also ich weiß ja noch nicht ganz genau wie das jetzt mit dieser Variante aussieht, Aber es gibt ja eine Große Tabelle und in der großen Tabelle sind ja in den Einzelnen Zellen auch jeweils eine Tabelle,Ich hab die Erfahrung gemacht das wenn man eine Tabelle verlinkt, das dann nur die Objekte darin verlinkt werden, werden, nicht aber die zwischen räume, bei divs wird alles verlinkt.

    Edit: Hab jetzt nochmal die Aktuelle Fassung hochgeladen, Link ist der selbe.

    Beitrag zuletzt geändert: 20.7.2012 20:17:54 von jhb
  13. So ich habe dir die Daten eingetragen in den Query, es fehlen nur noch der Datenbank- und Tabellenname und alles funktioniert auch.

    Die zu ändernden Werte sind in Programmzeile 26.

    Hier die Textdatei:
    http://vctb.lima-city.de/test.txt

    Beitrag zuletzt geändert: 20.7.2012 20:20:50 von vctb
  14. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Woohoo , Je jetzt klappt es danke euch allen!

    Woran hat es denn gelegen das er in Zeile 3 den Fehler angezeigt hat? lag es tatsächlich daran das ich die Daten Falsch eingetragen hab ?

    Und was bewirkt der Javascript, hab ihn mal zum testen raus genommen aber es hat sich nichts geändert.

    Beitrag zuletzt geändert: 20.7.2012 20:56:49 von jhb
  15. Keine Ahnung wo dran es lag ich habe den Programmcode einfach nur kopiert, habe die Daten geändert und es hat funktioniert... Also kann sein das Daten nicht gestimmt haben, verstehe aber nicht wieso dann in der Zeile. Bleibt wohl ein Mysterium :).

    Welches JavaScript? In dem Quellcode ist mir nur PHP, SQL und HTML aufgefallen, aber kann ich auch übersehen haben.

    Beitrag zuletzt geändert: 20.7.2012 23:46:50 von vctb
  16. vctb schrieb:
    Keine Ahnung wo dran es lag ich habe den Programmcode einfach nur kopiert, ... Hier die Textdatei:
    http://vctb.lima-city.de/test.txt
    woher hast du den kode kopiert? den sauberen habe ich hier oben reingetan.

    schön und gut. du kannst allerdings bei jedem phpkode am ende das '?>' weglassen! gewöhne dir das an. (ein guter progger ist ein fauler progger ;)


    jhb schrieb:
    ... Und was bewirkt der Javascript, hab ihn mal zum testen raus genommen aber es hat sich nichts geändert.
    irgendein scherzbolzen von bplaced.net hat es reingenagelt
    var m3_u = 'http://www.bplaced.net/pub/cssh.php';
    var m3_r = Math.floor(Math.random()*99999999999);
    if (!document.MAX_used) document.MAX_used = ',';
    document.write ("<scr"+"ipt type='text/javascript' src='"+m3_u);
    document.write ("?zoneid=5");
    document.write ('&amp;cb=' + m3_r);
    if (document.MAX_used != ',') document.write ("&amp;exclude=" + document.MAX_used);
    document.write (document.charset ? '&amp;charset='+document.charset : (document.characterSet ? '&amp;charset='+document.characterSet : ''));
    document.write ("&amp;loc=" + escape(window.location));
    if (document.referrer) document.write ("&amp;referer=" + escape(document.referrer));
    if (document.context) document.write ("&context=" + escape(document.context));
    if (document.mmm_fo) document.write ("&amp;mmm_fo=1");
    document.write ("'><\/scr"+"ipt>");
    hau es erbarmungslor raus! und zwar unbedingt!

    ==== edit ====
    eigenartiges Script in der Seiteda steht dann:
    das ist das Script, das bei Square7 für die Werbeeinblendungen zuständig ist, also nicht anfassen
    also wir hier fassen das ganz bestimmt an und raus damit. keine werbung für Square7!!

    ==== edit2 ====
    yo mey! @jhb ist daran schuld ;) habe nochmals alles durchgelesen. er ist bei square7.ch! hier steht es klar!

    meine letzte meinung zu sowas: man sollte schleunigst den provider verlassen, wenn er in meinen kode reinschreibt! saubere sauerei ;))

    Beitrag zuletzt geändert: 21.7.2012 1:05:19 von czibere
  17. Autor dieses Themas

    jhb

    Kostenloser Webspace von jhb

    jhb hat kostenlosen Webspace.

    Ja ich lade bei sqare7 noch so allerhand allgemeine daten hoch weil ich dort im Gegensatz zu den anderen ebenfalls unbegrenzt Speicher habe, ist also quasi nur ein Filehoster für mich, aber das die auch in Hoch geladene Textdateien Werbung reinballern ist wirklich ne Sauerei.
  18. Ich hoffe mal, es ist noch nicht zu spät.
    Mir haben sich die Haare gekräuselt bei den Meinungen hier. :biggrin:

    Selbstverständlich gibt es sogenannte "Coding Standards".
    Und für PHP weichen sie wenn nur geringfügig bei den Leerzeichen ab.
    Aber es wäre schon wünschenswert für andere Beteiligte, wenn sie der Ersteller von Skripten an diese hält.
    Es erhöht ungemein die Lesbarkeit von Codes, damit sich auch Fremde in das Projekt einarbeiten können.

    Zu der Verwendung von "heredoc" kann ich nicht viel sagen.
    Was daran liegen mag, dass man es so gut wie kaum in Projekten antrifft.
    Daher würde ich dir als Anfänger raten, lass es lieber weg, da, wie schon zuvor erwähnt, eine sehr genaue schreibweise eingehalten werden muss, um nicht unnötig lange nach der Fehlerquelle zu suchen.
    Ok, "genaues" arbeiten ist Grundvoraussetzung, aber die Verwendung von "echo" oder "print" bei der Ausgabe ist bei weiten einfacher.

    Zum Design möchte ich dir dringendst davon abraten Tabellen, sprich "table", zu verwenden.
    Ich kann nur hoffen, dass das "table" Tag irgendwann einmal aus der HTML-Spezifikation raus fliegt.
    Alles was du mit Table erstellst, lässt sich besser mit CSS erreichen.
    Für den Anfang ist es ja noch verständlich Tables zu verwenden, aber die Verwendung wird nicht ohne Grund kritisiert.
    Aber bevor ich das noch weiter ausführe, suche einfach mal selber nach dem Unsinn, dass man Tables noch in HTML verwendet.
    Eine einfache und interessante Erklärung findest du z. B. hier:
    http://seybold.jan-andresen.de/

    So jetzt zum wichtigsten hier, warum du überhaupt deine Frage gestellt hast.
    Meine Lösung soll hier nicht als Maßstab gelten, aber ich hoffe mal, dass dir hier die Verwendung von CSS ohne Table evtl. leichter fällt.

    <?php 
    // configuration database
    $host = 'localhost';
    $user = 'testUser';
    $password = 'testPassword';
    $dbname = 'datenbankname';
    
    // configuration view
    $maxColumns = 2; // set the number of columns per row
    
    // connect with database
    $connection = mysql_connect($host, $user, $password)
        or die('Keine Verbindung möglich: ' . mysql_error());
    mysql_select_db('datenbankname') or die('Auswahl der DAtenbank fehlgeschlagen!');
    
    // create query
    $query = 'SELECT * FROM tabellenname';
    $result = mysql_query($query) or die('Anfrage fehlgeschlagen: ' . mysql_error());
    
    // create view
    $i = 0; // counter
    $content = '';
    $newRow = '';
    $tableWithCss = '';
    
    // check the result object for content
    if (mysql_num_rows($result) == 0) {
        echo "Keine Zeilen gefunden!";
        exit;
    }
    
    while ($row = mysql_fetch_assoc($result)) {
      // if the counter "i" has a rest of "0" then create a new row
      // solved with the modulo operator
      if ($i % $maxColumns === 0) {
        $newRow .= '<div class="row">' . $content . '</div>';
        $content = ''; // reset the content variable
      }
      
      $content .= '
        <div class="image">
          <p>' . $row['name'] . '</p>
          <img src="' . $row['image'] . '" />
          <p>' . $row['description'] . '</p>
        </div>
      ';
      $i++;
    }
    
    // the last rows wont' assign to "newRow", so we have to assign it manually
    $newRow .= '<div class="row">' . $content . '</div>';
    
    // create CSS and print the table
    ?>
    <style>
    .table { 
      display: table; 
      border-spacing: 4px; 
    } 
    .row { 
      display: table-row; 
    } 
    .image { 
      display: table-cell; 
      width: 240px; 
      background-color: #000; 
      border: 8px solid #000; 
      vertical-align: top; 
      text-align: center; 
    } 
    .image p { 
      color: #fff; 
      font-size: 85%; 
      text-align: left;
      padding-top: 8px;
    }
    </style>
    
    <?php
    // assign the fetched data
    $tableWithCss = '<div class="table">' . $newRow . '</div>';
    echo $tableWithCss;
    ?>
  19. Also Tabellen sollte man nicht für das layout nutzen, dafür sind sie nicht gemacht. Ganz anders sieht das für die Ausgabe von Daten aus. Ich habe noch nie gehört das dies kritisiert wird. Eine "Tabellenausgabe" über Div und CSS ist viel komplizierter und zeitintensiver als Tabellen. wenn du es nicht glaubst versuch mal eine 10x10 breite und hohe Divstruktur aufzubauen in der selben zeit wie eine Tabelle...

  20. yo mey! na dann der reihe nach:
    1.
    kgreen schrieb:
    Selbstverständlich gibt es sogenannte "Coding Standards". Und für PHP weichen sie wenn nur geringfügig bei den Leerzeichen ab. ... Es erhöht ungemein die Lesbarkeit von Codes, damit sich auch Fremde in das Projekt einarbeiten können.
    klar! da hast gleich ca. 620000 funde. nutze sie als vergleichsmaterial, dass du eine ahnung kriegst!
    damit sich auch Fremde in das Projekt ...
    *schmunzel*!!

    2.
    Zu der Verwendung von "heredoc" kann ich nicht viel sagen. ... Daher würde ich dir als Anfänger raten, lass es lieber weg, ...
    wenn du (auch) von heredoc keine ahnung hast, unterlasse es, anfängern ratschläge zu erteilen. um mal zu zeigen, dass heredoc nicht nur für textzuweisung gut ist, hier ein beispiel, mitten im heredok wird ein userfunktion mehrfach aufgerufen (und es ist trotzdem übersichtlich):
    heredoc beispiel (für nicht ganz anfänger):
    <?php
    // user function
    function power($int) {
      return pow(2, $int);
    }
    $f = get_defined_functions();
    foreach($f['user'] as $v) {
      $$v = $v;
    }
    
    // output
    $title  = 'potenzen (1 - 5):';
    exit(<<< EOT
    <!DOCTYPE html>
    <html>
      <head>
        <title>$title</title>
      </head>
      <body>
    
        <header>
          <h3>$title</h3>
        </header>
    
        <section id="table_pot">
          <table border="1" style="text-align:right;">
            <tr>
              <td>1</td>
              <td>2</td>
              <td>3</td>
              <td>4</td>
              <td>5</td>
            </tr>
            <tr style="color:#f00;">
              <td>{$power(1)}</td>
              <td>{$power(2)}</td>
              <td>{$power(3)}</td>
              <td>{$power(4)}</td>
              <td>{$power(5)}</td>
            </tr>
          </table>
        </section>
    
      </body>
    </html>
    EOT
    );
    er ist richtig eingerückt [auch der html-quellcode] und natürlich valides html5.
    ich bin außerdem nicht dazu gezwungen irrsinige ', " und \" o. \' kaskaden zu erzeugen so wie
    $var = "...
            <tr style=\"color:#f00;\">
              <td>" . $power(1) . "</td>
              <td>" . $power(2) . "</td>
              <td>" . $power(3) . "</td>
              <td>" . $power(4) . "</td>
              <td>" . $power(5) . "</td>
            </tr>
    ...";
    ja so ein mist aber auch ... das soll einfacher und übersichtlicher sein? ja bin ich auf der welt allein blind?

    3.
    Ok, "genaues" arbeiten ist Grundvoraussetzung, aber die Verwendung von "echo" oder "print" bei der Ausgabe ist bei weiten einfacher.
    du meinst, so genau wie du arbeitest? dein kode hier ist nicht einmal richtig eingerückt o. sonstwie formatiert! und so valid ist er ;)


    und nochmals: wenn mann kein spaghettikode-fanatiker ist, dann möchte man kein echo o. print verwenden (siehe kode unter 2.) und schon gar nicht zwischen html und php wild hin und her hüpfen wie ein liebestoller ziegenbock! man nehme php, um damit html zu generieren!

    4.
    Zum Design möchte ich dir dringendst davon abraten Tabellen, sprich "table", zu verwenden. Ich kann nur hoffen, dass das "table" Tag irgendwann einmal aus der HTML-Spezifikation raus fliegt.
    wie schon @vctb auch so treffend erkannte, er gibt tabellen aus und formatiert damit nicht!

    ... Mir haben sich die Haare gekräuselt bei den Meinungen hier. :biggrin:
    uns auch! wahrhaftig.
    wenn jemand den mund so voll nimt wie du, der sollte - wenn auch nur eine microarbeit - nur valides aus der hand geben.


    Beitrag zuletzt geändert: 23.7.2012 3:03:55 von czibere
  21. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!