[Suche] Verständliches Tut für MySQL Tabellenabfrage über PHP

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

  • [Suche] Verständliches Tut für MySQL Tabellenabfrage über PHP

    Hallo,

    ich suche ein Tut, wo ich genau erklärt bekomme, wie ich die Daten aus einer Tabelle welche in meiner MySQL Datenbank gespeichert ist abbfrage und als HTML ausgebe (in einer Tabelle ). Die Tabelle hat mehrere Spalten und mehrere Datensätze, welche dann untereinander ausgegeben werden sollen.

    Als Beispiel hier meine Tabelle in meiner MySQL Datenbank:



    Zum Test befinden sich in dieser Tabelle zwei Datensätze.

  • #2
    schattenbaum.net/php
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      Gut das hat mir schon mal weitergeholfen. Nun habe ich aber die nächste Frage dazu:

      Wie bekomme ich das ganze in eine Tabelle?

      mein PHP Code zum Abrufen der Daten sieht momentan so aus:

      PHP-Code:
      <?PHP
        $abfrage 
      "SELECT * FROM gilden ORDER BY gildenname";
        
      $ergebnis mysql_query($abfrage);
        while(
      $row mysql_fetch_object($ergebnis))
          {
          echo 
      $row-/>gildenname;
          echo 
      $row-/>gildeninfo;
          echo  
      $row-/>gildenbed;
          echo  
      $row-/>gildenuser;
          echo  
      $row-/>gildenesl2;
          echo  
      $row-/>gildenesl4;
          echo  
      $row-/>gildenkom;
          echo  
      $row-/>gildenurl
          echo  
      $row-/>gildenkontakt;
          echo  
      $row-/>gildengbid;
          echo  
      $row-/>gildennick;
          echo  
      $row-/>gildenicq;
          echo  
      $row-/>gildenmail;
          echo  
      $row-/>gildenbanner;
          }
      ?>
      Jetzt schreibt er da ganze natürlich immer schön hintereinander ohne Punkt und Komma. Nun soll das ganze aber in eine Tabelle und für jeden wert eine Spalte und für jeden neuen Datensatzt eine Reihe. Wie bekomme ich das nun hin?

      Kommentar


      • #4
        PHP-Code:
        $abfrage = "SELECT * FROM gilden ORDER BY gildenname";
          $ergebnis = mysql_query($abfrage);
          while($row = mysql_fetch_object($ergebnis))
            { ?>
        <table width=\"100%\">
          <tr>
            <td><?PHP echo $row-/>gildenname?></td>
            <td><?PHP echo $row-/>gildeninfo?></td>
            ....
            ....
          </tr>
        </table>
        <?PHP ?>
        Zuletzt geändert von Emanon; 13.07.2004, 19:00.

        Kommentar


        • #5
          Wie ... will er für jeden Datensatz eine Tabelle?!
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            Oops, es müsste natürlich so aussehen:
            PHP-Code:
            <table width=\"100%\">
            <?PHP
            $abfrage 
            "SELECT * FROM gilden ORDER BY gildenname";
              
            $ergebnis mysql_query($abfrage);
              while(
            $row mysql_fetch_object($ergebnis))
                { 
            ?>
              <tr>
                <td><?PHP echo $row-/>gildenname?></td>
                <td><?PHP echo $row-/>gildeninfo?></td>
                ....
                ....
              </tr>
            <?PHP ?>
            </table>
            Es darf ja nur table row und table drop in der Schleife stehen.

            Kommentar


            • #7
              Ok Danke dafür, klappt schon mal alles so wie ich das möchte

              Un die nächste Frage.

              Eine der Spalten enthält eine E-Mail Adresse, aber in der Spalte wird nicht die Adresse Angezeigt sonden eine Grafik und wenn man darauf klickt wird der Befehl mailto ausgeführt. die SPalte sieht so aus:

              PHP-Code:
              <td> <a href="mailto:<?PHP echo $row->gildenmail?>"><img src="forum/images/style/email.gif" alt="Email an Kontaktperson senden"></a></td>
              Jetzt möchte ich aber, das die Grafik nur angezeigt wird, wenn auch eine E-Mail vorhanden ist. Wenn dort keine Daten da sind, soll die Grafik nicht angezeigt werden.


              Wie kann ich das umsetzten?

              Kommentar


              • #8
                PHP-Code:
                <?PHP
                if ($row->gildenmail; != ""){ ?>
                <td> <a href="mailto:<?PHP echo $row->gildenmail?>"><img src="forum/images/style/email.gif" alt="Email an Kontaktperson senden"></a></td>
                <?PHP }else{ ?>
                <td>&nbsp;</td>
                <?PHP ?>
                so müsste es eigentlich gehen. Also, wenn das feld gefüllt ist, zeigt er das image mit dem Link an, sonst bleibt es leer.
                Zuletzt geändert von Emanon; 13.07.2004, 20:04.

                Kommentar


                • #9
                  Habs jetzt so eingebaut:

                  PHP-Code:
                  <table border="1">
                  <?PHP

                    $abfrage 
                  "SELECT * FROM gilden ORDER BY gildenname";
                    
                  $ergebnis mysql_query($abfrage);
                    while(
                  $row mysql_fetch_object($ergebnis))
                      {
                  ?>


                  <tr>

                  <td> <?PHP echo $row->gildenname?> </td>

                  <td> <?PHP echo $row->gildenuser?> </td>

                  <td> <?PHP echo $row->gildenesl2?> </td>

                  <td> <?PHP echo $row->gildenesl4?> </td>

                  <td> <?PHP echo $row->gildenkom?> </td>

                  <td> <a href="<?PHP echo $row->gildenurl?>" target="_blank"><img src="forum/images/style/www.gif" alt="Homepage der Gilde"></a></td>

                  <td> <?PHP echo $row->gildenkontakt?> </td>

                  <td> <?PHP echo $row->gildengbid?> </td>

                  <td> <?PHP echo $row->gildennick?> </td>

                  <td> 
                  <a href="http://wwp.icq.com/scripts/search.dll?to=<?PHP echo $row->gildenicq?>">
                  <img src="http://wwp.icq.com/scripts/online.dll?icq=<?PHP echo $row->gildenicq?>&img=5" >
                  </a>
                  </td>

                  <?PHP
                  if ($row->gildenmail; != ""){ ?>
                  <td>
                  <a href="mailto:<?PHP echo $row->gildenmail?>">
                  <img src="forum/images/style/email.gif" alt="Email an Kontaktperson senden">
                  </a>
                  </td>
                  <?PHP }else{ ?>
                  <td>&nbsp;</td>
                  <?PHP ?>

                  </tr>    

                  <?PHP
                  }
                  ?>
                  </table>
                  Bekomme die Fehlermeldung:


                  Parse error: parse error, unexpected ';' in /www/htdocs/v115191/include/gilden.php on line 34
                  Zuletzt geändert von Laire; 14.07.2004, 02:05.

                  Kommentar


                  • #10
                    PHP-Code:
                    if ($row->gildenmail; != ""){ ?> 
                    das ; hinter gildenmail muss weg. Mein Fehler.

                    Kommentar


                    • #11
                      Wow gibt ja echt schnell Hilfe hier, und so langsam versteh ich sogar einige Sachen von PHP ;-)

                      Aber nun die nächste Frage:

                      Wenn ich nun das eingeben würde:

                      PHP-Code:
                      <?PHP
                      if ($row->gildenesl2 != "1"){ ?>
                      <td>JA</td>
                      <?PHP }else{ ?>
                      <td>NEIN</td>
                      <?PHP ?>
                      Dann würde er mir doch wenn der Inhalt der Tabelle in der Spalte 1 ist JA ausgeben und wenn er einen anderen Wert hat NEIN

                      oder habe ich da einen Denkfehler?

                      Kommentar


                      • #12
                        Nein, genau andersrum, denn != bedeutet ungleich. Was Du meinst, ist ==

                        PHP-Code:
                        <?PHP
                        if ($row->gildenesl2 != "1"){ ?>
                        <td>JA</td>
                        <?PHP }else{ ?>
                        <td>NEIN</td>
                        <?PHP ?>
                        Dabei gibt er JA aus, wenn der Inhalt der Tabelle ungleich 1 ist, sonst NEIN.


                        PHP-Code:
                        <?PHP
                        if ($row->gildenesl2 == "1"){ ?>
                        <td>JA</td>
                        <?PHP }else{ ?>
                        <td>NEIN</td>
                        <?PHP ?>
                        Hierbei macht er es genau andersum, wenn Tabelleninhalt gleich 1, dann JA, sonst NEIN.

                        Kommentar


                        • #13
                          Ok, soweit so gut

                          Das bisherige Ergebnis könnt Ihr jetzt hier bewundern:

                          http://v115191.dd5432.kasserver.com/...hp?path=gilden

                          der momentan PHP Code sieht so aus:

                          PHP-Code:
                          <table class="rand">
                          <tr style="background-color:#CCCCCC;color:#000000;height:40px;font-weight:bold;text-align:center;">
                          <td style="width:10%;">Gilde</td>
                          <td style="width:12%;">Members</td>
                          <td colspan="2" style="width:10%;text-align:center;">ESL</td>
                          <td style="width:13%;">WWW</td>
                          <td style="width:14%;">Kontakt</td>
                          <td style="width:13%;">GB-ID</td>
                          <td style="width:11%;">Forum Nick</td>
                          <td style="width:5%;">ICQ</td>
                          <td style="width:12%;">E-Mail</td>
                          </tr>

                          <?PHP

                            $abfrage 
                          "SELECT * FROM gilden ORDER BY gildenname";
                            
                          $ergebnis mysql_query($abfrage);
                            while(
                          $row mysql_fetch_object($ergebnis))
                              {
                          ?>


                          <tr style="font-size:14px;">

                          <td> <?PHP echo $row->gildenname?> </td>

                          <td style="text-align:center;"> <?PHP echo $row->gildenuser?> </td>

                          <?PHP
                          if ($row->gildenesl2 == "1"){ ?>
                          <td style="text-align:center;">2:2</td>
                          <?PHP }else{ ?>
                          <td>&nbsp;</td>
                          <?PHP ?>

                          <?PHP
                          if ($row->gildenesl4 == "1"){ ?>
                          <td style="text-align:center;">4:4</td>
                          <?PHP }else{ ?>
                          <td>&nbsp;</td>
                          <?PHP ?>

                          <?PHP
                          if ($row->gildenurl != ""){ ?>
                          <td style="text-align:center;"> <a href="<?PHP echo $row->gildenurl?>" target="_blank"><img src="forum/images/style/www.gif" alt="Homepage der Gilde"></a></td>
                          <?PHP }else{ ?>
                          <td>&nbsp;</td>
                          <?PHP ?>

                          <td> <?PHP echo $row->gildenkontakt?> </td>

                          <td> <?PHP echo $row->gildengbid?> </td>

                          <td> <?PHP echo $row->gildennick?> </td>

                          <?PHP
                          if ($row->gildenicq != ""){ ?>
                          <td style="text-align:center;"> <a href="http://wwp.icq.com/scripts/search.dll?to=<?PHP echo $row->gildenicq?>"><img src="http://wwp.icq.com/scripts/online.dll?icq=<?PHP echo $row->gildenicq?>&img=5" width="18" height="18" alt="ICQ Status der Kontaktperson"></a></td>
                          <?PHP }else{ ?>
                          <td>&nbsp;</td>
                          <?PHP ?>

                          <?PHP
                          if ($row->gildenemail != ""){ ?>
                          <td style="text-align:center;"> <a href="mailto:<?PHP echo $row->gildenemail?>"><img src="forum/images/style/email.gif" alt="Email an Kontaktperson senden"></a></td>
                          <?PHP }else{ ?>
                          <td>&nbsp;</td>
                          <?PHP ?>

                          </tr>    

                          <?PHP
                          }
                          ?>
                          </table>


                          Jetzt möcht ich gerne wenn man vorne auf den ersten Namen klickt, das er mir eine neue Seite aufruft, und dort die Daten nur von diesem Datensatzt anzeigt (jeder Datensatzt hat eine ID Nummer, die einmalig ist) sozusagen dann in eine Blanko Vorlage die Daten von diesme Satz übernimmt (ich glaube Ihr versteht was ich meine )

                          Also so in der Art als wenn ich hier bei der Mitgliederliste auf den Namen klicke und dann das Profil erscheint.

                          Kommentar


                          • #14
                            Du meinst, dass du nur eine Seite mit den Namen hast,. Diese Namen werden als Link dargestellt, den wenn man ihn anklickt die Infos über den Nick zeigt?
                            Richtig verstanden?

                            Kommentar


                            • #15
                              Du machst hieraus einfach einen Link :

                              PHP-Code:
                              <td> <?PHP echo $row->gildenname?> </td>
                              sieht dann so aus :

                              PHP-Code:
                              <td><a href="details.php?gildenid=<?PHP echo $row->gildenid?>"><?PHP echo $row->gildenname?></a> </td>
                              Wenn nun jemand auf den Link klickt, wird hier die Seite Details aufgerufen und die gildenid mitübergeben.

                              Die Seite Details enthält dann :

                              PHP-Code:
                              <?PHP

                                $abfrage 
                              "SELECT * FROM gilden WHERE gildenid='$gildenid' LIMIT 1";
                                
                              $ergebnis mysql_query($abfrage);
                                
                              $row mysql_fetch_object($ergebnis)
                                  
                              ?>


                              <tr style="font-size:14px;">

                              <td> <?PHP echo $row->gildenname?> </td>

                              <td style="text-align:center;"> <?PHP echo $row->gildenuser?> </td>

                              ...
                              Die Tabelle die nun erstellt wird ist wieder die gleiche wie vorher, nur das diesmal über WHERE nur genau die eine Gilde ausgegeben wird. Nun kannst du natürlich die Tabellenstruktur ändern, und vorher vielleicht noch nicht angezeigte Daten anzeigen.
                              Zuletzt geändert von ExInfernis; 14.07.2004, 13:52.

                              Kommentar

                              Lädt...
                              X