Georg: Anfängerfrage zu MySQL Feldname

ich kiege es nicht auf die Reihen:

Ziel ist (ich lade mehrere Felder aus MySQL) einige Werte mit Hyperlinks (zu einer Datei auswahl.php die wieder Daten aus der Datenbank holt) zu versehen und zwar alle die im Feld Namen vorkommen.

Alle anderen Felder sollten nur eine klassische Textausgabe sein.

if ($result == "Name"){
 while($row  =  mysql_fetch_row($result))  {
         echo    "<TR class="liste">";
         for($i=0;  $i < mysql_num_fields($result);  $i++)  {
              echo    "<td class="liste">   <a href="ausgabe.php">$row[$i]</a></td>";
         }
         echo  "</tr>";
 }
} else {
 while($row  =  mysql_fetch_row($result))  {
         echo    "<TR class="liste">";
         for($i=0;  $i < mysql_num_fields($result);  $i++)  {
              echo    "<td class="liste">   $row[$i]</td>";
         }
         echo  "</tr>";
 }
}

Die Schleife die das Anstellen sollte ist die if schleife. Jedoch wird immer nur der else Teil durchlaufen! :(
Wie kann ich denn das Problem lösen???

  1. Hallo.

    if ($result == "Name"){

    Wenn $result das Ergebnis Deiner SQL-Abfrage ist, dann hast Du hier ein Hash, den Du mit einem String vergleichst - das klappt natürlich nicht.
    Du müsstest erst mal die Werte Deiner Abfrage aus dem hash rausholen bevor Du vergleichst.

    Grüße aus Würzburg
    Julian

    1. if ($result == "Name"){
      Wenn $result das Ergebnis Deiner SQL-Abfrage ist, dann hast Du hier ein Hash, den Du mit einem String vergleichst - das klappt natürlich nicht.
      Du müsstest erst mal die Werte Deiner Abfrage aus dem hash rausholen bevor Du vergleichst.

      Hallo

      Also ich habe das jetzt probiert, aber es geht noch immer nicht!!
      Was mache ich denn falsch!!

      Die ausgabe ist wieder nur der else Teil für alle Spalten!!
      (Bitte nicht schimpfen, ich bin noch ein Anfänger)

      Auszug:

      $spaltenname=mysql_fetch_field($result);
      if ("$spaltenname"== "Firmenname"){
       while($row  =  mysql_fetch_row($result))  {
               echo    "<TR class="liste">";
               for($i=0;  $i < mysql_num_fields($result);  $i++)  {
                    echo    "<td class="liste">   <a href="ausgabe.php">$row[$i]</a></td>";
               }
               echo  "</tr>";
       }
      } else {

      1. if ($result == "Name"){

        Warum so kompliziert? Frage doch bei der If Schleife ab ob das Feld leer ist oder nicht.
        Z.B.
        $sql = "select FELDER from TABELLE";

        $erg = mysql_query($sql);
        if (!$erg) die("<br>Abfrage nicht erfolgreich");
        else {
                while ($Aus = mysql_fetch_array($erg))
        {
        if($Aus["FELD DAS NICHT LEER SEIN SOLL"] != "")
        {
        echo "DEIN LINK";
        }
        else
        {
        echo "DEN REST";
        }
        }
        }

        Grüße,
        Moses

        1. Hi,

          Danke Julian, Danke Moses,
          aber ich habe vorhin alles probiert und nichts hat funktioniert :-((

          Drum werde ich es nun anders probieren!

          PROBLEMBESCHREIBUNG:

          Also ich lese mehrere Felder aus der tabelle "betriebe" (aus MySQL) aus und gebe sie dann mittels php wieder in einer html-Tabelle aus.

          Dabei kann die Darstellung nun:
          1)Namen
          2)Postleitzahl (PLZ) und Namen
          3)Bundesland und Namen
          4)Datum und Namen
          sein (wird mittels Radiobuttons) erledigt.

          Dieses Funktioniert (unterscheiden und die richtigen Felder ausgeben).

          Ebenso gebe ich den dazugehörigen Spaltennamen an. (funktioniert auch)!

          Nun will ich, daß nur der Name (bei allen 4 Möglichkeiten) mit einem Hyperlink versehen wird, damit ich eine neue php Seite für den jeweils gewählten Namen öffne, bei der ich dann nur noch für den speziellen ausgewählten Namen (Auswahl durch Hyperlink) diverse andere Daten von der Datenbank ausgebe.

          Mein Problem:
          *) Wie kann ich nur der Spalte "Namen" einen Hyperlink verpassen.
          oder anders gefragt: Wie spreche ich nur die Felder von der Spalte "Namen" an?
           (ich kann nur allen oder keinen einen Hyperlink verpassen)

          *)Ist es überhaupt mögliche eine "dynamischen Hyperlink" setzen (dass ich weiß dass zB. der Name Hugo angeklickt worden ist und ich dann alle Daten in einem neuer page von dem Link Hugo aus der Datenbank ausgelesen werden können?

          Hier ist das Skript zum jetzigen Stand:
          -----------------------------------------
          <?
          setlocale("LC_ALL","de_DE");

          $server= "localhost";
          $user= "Georg1";
          $passwort= "chilli";
          $datenbank= "Homepage";
          $tabelle= "freunde";

          /*echo $wert;*/
          $db=MYSQL_CONNECT($server, $user, $passwort) or die ( "Verbindung konnte nicht hergestellt werden");
          MYSQL_SELECT_DB($datenbank,$db) or die ( "Die Datenbank existiert nicht");

          if ($_POST["wert"] == "Name")
          {
          $result=MYSQL_QUERY( "SELECT Name FROM $tabelle",$db);
          }
          elseif ($_POST["wert"] == "bundesland")
          {
          $result=MYSQL_QUERY( "SELECT Bundesland, Name FROM $tabelle ORDER BY Bundesland",$db);
          }
          elseif ($_POST["wert"] == "plz")
          {
          $result=MYSQL_QUERY( "SELECT PLZ, Name FROM $tabelle ORDER BY PLZ",$db);
          }
          elseif ($_POST["wert"] == "erstdatum")
          {
          $result=MYSQL_QUERY( "SELECT Datum, Name FROM $tabelle order by Datum",$db);
          }
          else {
          echo "Bitte nocheinmal auswählen";
          }

          echo "<table align="center" border=0>";
          echo  "<tr class="liste"></tr>\n";

          while ($field=mysql_fetch_field($result))  {
                 echo  "<td class="liste"><strong>   $field->name</strong></td>";
          }
          echo  "</tr>";

          /* in der kommenden if schleife happerts, da soll nun unterschieden werden zwischen den Werten aus der Spalte Name und sonstigen Spalten. Felder aus Namen sollen einen Hyperlink bekommen, alle anderen nicht!! Und das geht leider nicht, Derzeit bekommen alle KEINEN Hyperlink */

          $ggg=mysql_field_name($result);
               if (mysql_field_name($ggg)=="Name"){
           while($row  =  mysql_fetch_row($result))  {
                   echo    "<TR class="liste">";
                   for($i=0;  $i < mysql_num_fields($result);  $i++)  {
                        echo    "<td class="liste">   <a href="ausgabe.php">$row[$i]</a></td>";
                   }
                   echo  "</tr>";
           }
          } else {
           while($row  =  mysql_fetch_row($result))  {
                   echo    "<TR class="liste">";
                   for($i=0;  $i < mysql_num_fields($result);  $i++)  {
                        echo    "<td class="liste">   $row[$i]</td>";
                   }
                   echo  "</tr>";
           }
          }
          echo  "</table>";
          echo "<hr>";
          mysql_free_result($result,$db);
          MYSQL_CLOSE();
          ?>