Html, php, Mysql, Frage zum code

Diskutiere mit über: Html, php, Mysql, Frage zum code im Web-Programmierung Forum

  1. Nussi

    Nussi Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    Registriert seit:
    05.01.2004
    hi ich hab da ein problem mit einem php-script:

    PHP:
    echo "<table>\n";
    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       echo 
    "\t<tr>\n";
       foreach (
    $line as $col_value) {
           echo 
    "\t\t<td>$col_value</td>\n";
       }
       echo 
    "\t</tr>\n";
    }
    echo 
    "</table>\n";
    das soll die ausgabe einer sql anfrage ausgeben.
    kann mir wer erklären was das ganze jetzt genau macht?
    blick hier irgendwie net durch
    und der html code verwirrt mich dann noch mehr...

    lg Martin
     
    Zuletzt von einem Moderator bearbeitet: 08.12.2005
  2. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    ich hab Dich mal zur Web-Programmierung verschoben. Wenn Du Deinen Beitrag editierst, siehtst Du wie ich den PHP-Code recht einfach lesbarer gemacht habe.

    Was macht das Script?

    Nun echo schreibt einfach Anweisungen in den Ausgabestrom, der hier zum Web-Browser geht. Daher ist auch HTML darin. Es wird dyn. eine Webseite erstellt.

    Dabei hast Du hier nur den Teil des Skriptes veröffentlicht, wichtige Dinge ( wie das Verbinden mit der DB fehlen hier).

    Aber was tut das Skript nun?

    Die letzte und die erste Zeile definieren einfach eine HTML-Tabelle, dadurch das die HTML-Tags dafür in die Webseite geschrieben werden:


    aus

    PHP:
    echo "<table>";
    echo 
    "</table>";
    wird für den Web-Browser schlicht:

    PHP:
    <table>
    </
    table>

    er erstellt also eine Tabelle.
    Die while-Schleife wird solange durchlaufen wie eine Datenbankabfrage Ergebnisse liefert. Leider wissen wir nichts vond er Abfrage, sie ist hier im Fragment nicht enthalten.
     
    Zuletzt bearbeitet: 08.12.2005
  3. Nussi

    Nussi Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    Registriert seit:
    05.01.2004
    PHP:
    <?php
    /* Verbindung aufbauen, auswählen einer Datenbank */
    $link mysql_connect()
       or die(
    "Keine Verbindung möglich: " mysql_error());
    echo 
    "Verbindung zum Datenbankserver erfolgreich";

    $server"localhost";
    $table"automarken";

    $db= @mysql_connect($server,"root","") or die ("Keine Verbindung zur Datenbank!");
    $table= @mysql_select_db($table) or die ("Fehler in der Verbindung zur Datenbank!");


    /* ausführen einer SQL Anfrage */
    $query "SELECT * FROM Porsche WHERE PS>300";
    $result mysql_query($query) or die("Anfrage fehlgeschlagen: " mysql_error());

    /* Ausgabe der Ergebnisse in HTML */
    echo "<table>\n";
    while (
    $line mysql_fetch_array($resultMYSQL_ASSOC)) {
       echo 
    "\t<tr>\n";
       foreach (
    $line as $col_value) {
           echo 
    "\t\t<td>$col_value</td>\n";
       }
       echo 
    "\t</tr>\n";
    }
    echo 
    "</table>\n";

    /* Freigeben des Resultsets */
    mysql_free_result($result);

    /* schliessen der Verbinung */
    mysql_close($link);
    ?>
    das is der ganze und ich versteh die while und foreach funktion nicht genau
     
  4. jobed77

    jobed77 MacUser Mitglied

    Beiträge:
    271
    Zustimmungen:
    0
    Registriert seit:
    22.06.2005
    Das für sich alleine Macht nicht viel.

    Aber wenn die Variable $result vorher mit den Daten einer SQL-Abfrage gefüllt wurde erzeugt der Code ein HTML-Tabelle von ungefär diesem Format:

    Wert1 von Datensatz1 | Wert2 von Datensatz2 | usw.
    Wert1 von Datensatz2 | Wert2 von Datensatz2 | usw.
    usw.

    Hoffe das beantwortet deine Frage.

    Gruß,
    Johannes
     
  5. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    ich bin oben noch beim beschreiben gewesen ;)
    mache dann aber hier mal weiter...


    Deine SQL-Abfrage sucht einfach aus einer Datenbank alle Porsche mit mehr als 300 PS heraus ( eine klassische Männerfrage :) ).

    Dann wird per HTML eine Tabelle eröffnet

    Solange wie es Ergebniszeiel aus Deiner Datenbank gibt ( niemand weiß ja vorher wieviele das sein werden), werden diese ausgelesen. Genau das macht while hier. Dabei wird Jedes Ergebnis in eine Tabellenreihe (<tr>) geschrieben ; wieder per echo.

    Das Ergebnis der SQL-Abfrage ($line) ist keine Zeile, sondern ein Array, das für jede Spalte Deiner Tabelle ein Element enthält. Eine Zeile könnte man einfach auf den Bildschirm schreiben. Das sähe dann so aus:


    PHP:
    <table>
      <
    tr>
        <
    td>1. Porsche</td>
      </
    tr>
      <
    tr>
        <
    td>2. Porsche</td>
      </
    tr>
    ...
      <
    tr>
        <
    td>nPorsche</td>
      </
    tr>
    </
    table>

    nun ist dem Programmierer aber wohl nicht bekannt wie die Tabelle aussieht und er durchläuft per foreach einfach das Ergebnis um für jede Eigenschaft jedes Porsche eine Tabellenzelle zu haben:

    PHP:
      <tr>
        <
    td>1. PorscheSpalte 1 (Modell )</td>
        <
    td>1. PorscheSpalte 2 (PS KW)</td>
        <
    td>1. PorscheSpalte 3 (Getriebe)</td>
        <
    td>1. PorscheSpalte 4 (Preis in Euro)</td>
    .....
      </
    tr>
    ...
    </
    table>
     
    Zuletzt bearbeitet: 08.12.2005
  6. Nussi

    Nussi Thread Starter MacUser Mitglied

    Beiträge:
    20
    Zustimmungen:
    0
    Registriert seit:
    05.01.2004
    ok dass hat mir schon sehr geholfen danke, is schon um einiges klarer
     
  7. jobed77

    jobed77 MacUser Mitglied

    Beiträge:
    271
    Zustimmungen:
    0
    Registriert seit:
    22.06.2005
    Das listet die Details zu jedem Porsche mit mehr als 300 PS der sich in deiner Datenbank befindet auf.

    Die while-Schleife sorgt dafür, dass alle Datensätze (sprich alle Porsche mit mehr als 300 PS) nacheinander zur Bearbeitung herangezogen werden, die foreach-Schleife liest dann aus jedem von der while-Schleife übergebenen jedes Feld (in diesem Fall wahrscheinlich sowas wie Baujahr, Höchstgeschwindigkeit usw.) aus.
     
  8. moses_78

    moses_78 MacUser Mitglied

    Beiträge:
    1.322
    Zustimmungen:
    22
    Registriert seit:
    08.04.2005
    *räusper* solche fragen stellt man normalerweise nicht in foren...

    wenn du dich mit php und mysql beschäftigst, musst du doch wissen,
    was dein script tut, gell ;)
     
    Zuletzt bearbeitet: 08.12.2005
  9. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.029
    Zustimmungen:
    1.314
    Registriert seit:
    13.09.2004
    @moses: oder man lernt es vielleich gerade !?
     
  10. s_ko

    s_ko MacUser Mitglied

    Beiträge:
    379
    Zustimmungen:
    10
    Registriert seit:
    15.04.2005
    Na fängt genauso an wie ich - erst mal Code von dieversen Seiten holen und Versuchen an eigene Bedürfnisse anzupassen - einige Variablen sind ja selbsterklärend - und dann dadurch langsam herantasten und lernen.
     
Die Seite wird geladen...
Ähnliche Themen - Html php Mysql Forum Datum
Desktop- und Mobileversion einer Webseite Web-Programmierung 11.02.2013
Ist das Javascript, HTML, PHP ? Wo muss ich anfangen? Web-Programmierung 11.01.2012
PHP Kontaktformular in HTML Web-Programmierung 21.04.2011
Email mit vordefinierter Antwortvorlage zum schnellen beantworten der Email Web-Programmierung 25.01.2011
Browsergame: rohstoffe zuschreiben Web-Programmierung 02.06.2010

Diese Seite empfehlen

Benutzerdefinierte Suche