URL einfügen

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

  • URL einfügen

    Hallo,

    als absoluter Newbie in Sachen PHP und MySQL brauche ich dringend Hilfe.
    Ich habe meine erste kleine Datenbank angelegt, die immerhin schon mal korrekt angezeigt wird.
    Allerdings möchte ich, dass die Datenausgabe "Anbieter" mit einem Link unterlegt wird.
    Der jeweilige Link ist in der Datenbank als Feld "url" angegeben.
    Da ich schon diverse Bücher gewälzt und auch einiges ausprobiert habe (z.B. echo "<a href='".$row->url."'>".$row->url."</a>", aber nichts funktioniert, bitte ich um Hilfe.



    Der gesamte Code (ohne Link) sieht folgendermaßen aus:

    <?php
    @mysql_connect("localhost","xxxxxx","xxxxxx") or die("Die Verbindung zur Datenbank konnte leider nicht aufgebaut werden! Bitte versuchen Sie es später noch einmal.");
    @mysql_select_db("xxxxxx") or die("Die Verbindung zur Datenbank konnte leider nicht aufgebaut werden! Bitte versuchen Sie es später noch einmal.");
    if (date("l")==Monday) {
    $sql="SELECT Montag, PreisMo, Anbieter FROM anbieter WHERE Ort='Hamburg'";
    }
    if (date("l")==Tuesday) {
    $sql="SELECT Dienstag, PreisDi, Anbieter FROM anbieter WHERE Ort='Hamburg'";
    }
    if (date("l")==Wednesday) {
    $sql="SELECT Mittwoch, PreisMi, Anbieter FROM anbieter WHERE Ort='Hamburg'";
    }
    if (date("l")==Thursday) {
    $sql="SELECT Donnerstag, PreisDo, Anbieter FROM anbieter WHERE Ort='Hamburg'";
    }
    if (date("l")==Friday) {
    $sql="SELECT Freitag, PreisFr, Anbieter FROM anbieter WHERE Ort='Hamburg'";
    }
    if (date("l")==Saturday) {
    $sql="SELECT Samstag, PreisSa, Anbieter FROM anbieter WHERE Ort='Hamburg'";
    }
    if (date("l")==Sunday) {
    $sql="SELECT Sonntag, PreisSo, Anbieter FROM anbieter WHERE Ort='Hamburg'";
    }
    else {
    echo "";
    }
    $result=mysql_query($sql);
    $zeilen=mysql_num_rows($result);
    echo "<table width='540' border='0' cellspacing='0'>\n";
    echo "<tr><th align='left'>Gericht</th>" .
    "<th align='left'>Preis</th><th align='left'>Anbieter</th></tr>\n";
    while ($row=mysql_fetch_assoc($result)) {
    echo "<tr>";
    foreach ($row as $key => $value) {
    echo "<td>$value&nbsp;</td>";
    }
    echo "</tr>";
    }
    echo "</table>\n";
    mysql_close();
    ?>

    Ich habe auch schon gehört bzw. gelesen, dass die Abfrage einfacher geschrieben werden könnte, aber ich bin zu alt oder zu dusselig (oder beides).
    Es wäre schön, wenn mir jemand helfen würde.

    Vielen Dank und ein schönes Wochenende!

    Gruß, Tomkos
    Was ich nicht verstehe, mache ich kaputt!

  • #2
    Hallo,


    Bitte benutze if (date("l")=="Monday") und die PHP Tags dieses Forums


    Das dir in deinem Beispiel nichts ausgegeben wird ist klar, denn du hast in deiner Select Abfrage leider die Reihe "url" vergessen



    MfG Floriam
    PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

    Kommentar


    • #3
      Abfragefelder in ein Array
      PHP-Code:
      $preistag = array (
              
      => array(SonntagPreisSo),
              
      => array(MontagPreisMo),
              
      => array(DienstagPreisDi),
              
      => array(MittwochPreisMi),
              
      => array(DonnerstagPreisDo),
              
      => array(FreitagPreisFr),
              
      => array(SamstagPreisSa));
      $tag date("w");
      $gericht $preistag[$tag][0];
      $preis $preistag[$tag][1];
      $sql="SELECT " $gericht", " $preis ", Anbieter,url FROM anbieter WHERE Ort='Hamburg'"
      statt:
      foreach ($row as $key => $value) {
      echo "<td>$value_</td>";
      }
      PHP-Code:
      echo "<td>$row[$gericht]</td>";
      echo 
      "<td>$row[$preis]</td>";
      echo 
      "<td>$row['Anbieter']</td>";
      echo 
      "<td><a href='".$row['url']."'>".$row['url']."</a></td>"
      $zeilen=mysql_num_rows($result);
      Für was ist die Variable $zeilen gut?

      Offe
      Zuletzt geändert von Offe1; 25.01.2004, 09:40.

      Kommentar


      • #4
        Hallo Offe,

        nett, dass Du Dir Gedanken gemacht hast. Allerdings erhalte ich jetzt die folgende Fehlermeldung:

        Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' on line 118
        Line 118 = echo "<td>$row['Anbieter']</td>";


        Kann natürlich sein, dass ich mal wieder irgend einen Denkfehler eingebaut habe.

        Verstehe ich das richtig, dass die Tabelle jetzt aus 4 Spalten besteht (Gericht, Preis, Anbieter, URL)?
        Eigentlich sollten es nur 3 Spalten sein (Gericht, Preis und Anbieter ALS Link).

        Wärst Du so freundlich und siehst Dir den Code noch mal an? Das wäre echt super!

        <?php
        @mysql_connect("localhost","xxxxxx","xxxxxx") or die("Die Verbindung zur Datenbank konnte leider nicht aufgebaut werden! Bitte versuchen Sie es später noch

        einmal.");
        @mysql_select_db("xxxxxx") or die("Die Verbindung zur Datenbank konnte leider nicht aufgebaut werden! Bitte versuchen Sie es später noch einmal.");
        $preistag = array (
        0 => array(Sonntag, PreisSo),
        1 => array(Montag, PreisMo),
        2 => array(Dienstag, PreisDi),
        3 => array(Mittwoch, PreisMi),
        4 => array(Donnerstag, PreisDo),
        5 => array(Freitag, PreisFr),
        6 => array(Samstag, PreisSa));
        $tag = date("w");
        $gericht = $preistag[$tag][0];
        $preis = $preistag[$tag][1];
        $sql="SELECT " . $gericht. ", " . $preis . ", Anbieter, url FROM anbieter WHERE Ort='Hamburg'";
        $result=mysql_query($sql);
        echo "<table width='540' border='0' cellspacing='0'>\n";
        echo "<tr><th align='left'>Gericht</th>" .
        "<th align='left'>Preis</th><th align='left'>Anbieter</th></tr>\n";
        while ($row=mysql_fetch_assoc($result)) {
        echo "<tr>";
        echo "<td>$row[$gericht]</td>";
        echo "<td>$row[$preis]</td>";
        echo "<td>$row['Anbieter']</td>";
        echo "<td><a href='".$row['url']."'>".$row['url']."</a></td>";
        echo "</tr>";
        }
        echo "</table>\n";
        mysql_close();
        ?>

        Vielen Dank.
        Vielleicht sollte ich lieber Schlitten fahren gehen.

        Gruß, Tomkos

        PS: Die Variable $zeilen gehört da natürlich nicht rein (das kommt davon, wenn man hier mal 'nen Codeschnipsel kopiert und da mal ...)
        Was ich nicht verstehe, mache ich kaputt!

        Kommentar


        • #5
          1. nimm mal die $ vor preis und gericht raus
          2. ist es sauberer, das so zu schreiben:
          PHP-Code:
          echo "<td>".$row['gericht']."</td>"
          3. benutz bitte die PHP-tags des forums
          Kissolino.com

          Kommentar


          • #6
            Dank Eurer Hilfe (und dem stundenlangen Lesen schlauer Bücher, die ich wohl nie begreifen werde) funktioniert meine Datenbank nun fast so, wie ich es mir vorstelle. Vielen Dank, alleine hätte ich das nicht hinbekommen!!

            Ein kleines Problem habe ich jedoch noch:

            Bei dem Angebot handelt es sich um Anbieter von Stammessen. Deshalb soll in der letzten Zeile das jeweilige Tagesgericht mit Preis angegeben werden.
            Beispiel: "Steak, Kroketten und Salatteller für 5,00 €" (ich weiß, das ist Utopie!)

            Da klappt auch wunderbar. Nur: Was mach ich, wenn der Laden Ruhetag hat ("Heute kein Stammessen")?
            Dann erscheint natürlich der Text "Heute kein Stammessen" für

            Hat jemand einen Tip für mich, wie ich in diesen Fall das "für" wegbekomme?


            Nochmals vielen Dank!

            PHP-Code:
            include("dbv.php");
            $preistag = array (
                    
            => array(SonntagPreisSo),
                    
            => array(MontagPreisMo),
                    
            => array(DienstagPreisDi),
                    
            => array(MittwochPreisMi),
                    
            => array(DonnerstagPreisDo),
                    
            => array(FreitagPreisFr),
                    
            => array(SamstagPreisSa));
            $tag date("w");
            $gericht $preistag[$tag][0];
            $preis $preistag[$tag][1];
            $abfrage="SELECT " $gericht", " $preis ", Anbieter, url FROM anbieter WHERE Ort='Hamburg'";
            $ergebnis=mysql_query($abfrage);
               while(
            $row mysql_fetch_object($ergebnis))
                  {
                  echo 
            "<a href='$row->url'>";
                  echo 
            $row->Anbieter;
                  echo 
            "</a>\n";
                  echo 
            "<br>";
                  echo 
            $row->$gericht ." f&uuml;r "$row->$preis ."<br><br>";
                  } 
            Was ich nicht verstehe, mache ich kaputt!

            Kommentar


            • #7
              PHP-Code:
              if($row['gericht']) == "Heute kein Stammessen") {
                echo 
              $row['gericht'];
              } else {
                echo 
              $row->$gericht ." f&uuml;r "$row->$preis ."<br><br>";


              Floriam
              PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

              Kommentar


              • #8
                Danke!



                Vielen Dank an alle, jetzt funktioniert es so, wie es soll!

                Ich bin rundum begeistert (zumindest bis zum nächsten Problem).

                Allen einen schönen Restsonntag.

                Gruß, Tomkos
                Was ich nicht verstehe, mache ich kaputt!

                Kommentar


                • #9
                  Klappt doch nicht so gut, wie ich dachte.

                  Tut mir aufrichtig leid, noch mal nerven zu müssen, aber ganz so dolle läuft es doch noch nicht.
                  Bei der if/else-Abfrage erhalte ich nur die Fehlermeldung
                  Parse error: parse error in line 110:
                  PHP-Code:
                  if($row['gericht']) == "Heute bieten wir leider kein Stammessen an.") { 
                  Wäre schön, wenn mir jemand den Fehler zeigen würde.
                  Leider seh ich den Wald vor lauter Bäumen nicht mehr.

                  Zum besseren Verständnis noch mal der komplette Code:

                  PHP-Code:
                  include("dbv.php");
                  $preistag = array (
                          
                  => array(SonntagPreisSo),
                          
                  => array(MontagPreisMo),
                          
                  => array(DienstagPreisDi),
                          
                  => array(MittwochPreisMi),
                          
                  => array(DonnerstagPreisDo),
                          
                  => array(FreitagPreisFr),
                          
                  => array(SamstagPreisSa));
                  $tag date("w");
                  $gericht $preistag[$tag][0];
                  $preis $preistag[$tag][1];
                  $abfrage="SELECT " $gericht", " $preis ", Anbieter, url FROM anbieter WHERE Ort='Hamburg'";
                  $ergebnis=mysql_query($abfrage);
                      while(
                  $row mysql_fetch_object($ergebnis))
                      {
                        echo 
                  "<a href='$row->url'>";
                        echo 
                  $row->Anbieter;
                        echo 
                  "</a>\n";
                        echo 
                  "<br>";
                      if(
                  $row['gericht']) == "Heute bieten wir leider kein Stammessen an.") {
                      echo 
                  $row['gericht'];
                      } else {
                      echo 
                  $row->$gericht ." f&uuml;r "$row->$preis ."<br><br>";
                      } 
                  Danke!!
                  Was ich nicht verstehe, mache ich kaputt!

                  Kommentar


                  • #10
                    zaähl mal deine klammern im if => ( )
                    Kissolino.com

                    Kommentar

                    Lädt...
                    X