Jan: Buttonname durch Abfrageergebnis deklarieren

hallo,
wir haben folgendes problem, an dem wir jetzt schon ne ewigkeit sitzen.
ich versuchs mal zu erklären.
wir haben über SQL-abfragen eine ergebnismenge erhalten, die auch
zeilenweise ausgegeben wird.
(lasst euch an den ganzen td und tr nicht stören - es ging bis jetzt nur um die funktionalität - nicht um optik)
in der variable $feld_ergebnis1 werden also der name und die fläche ausgegeben von einer bestimmten bedingung (ABC.)
diese 3 werten werden hintereinander geschrieben in eine zeile.

ab der syntax $abfrage_nr.... entsteht unser problem.
es folgt eine zweite abfrage, aber diesmal wird eine nummer abgefragt; aber zu den GLEICHEN bedingungen wie oben, damit die anzahl der datensätze mit der anzahl der button übereinstimmt.

es soll praktisch hinter den 3 werten pro zeile immer ein button erstellt werden.
hab ich also als ergebnis 10 datensätze, so wird 10x (1x pro zeile) ein button hinten angefügt. (also für jeden datensatz einen button)

ziel ist es, das ergebnis der zweiten abfrage, was eine eineindeutige nummer ausgibt ($feld_ergebnis2), dies wirkl nur einmal gibt, gleichzeitig als namen für den button zu deklarieren (name='$feld_ergebnis2').
hab ich also 10 datensätze, so hab ich auch 10 button und jeder button erhält praktisch einen anderen namen, da die eineindeutige nummer ja immer anders ist.

wenn ich also den button klicke und dadurch auf ne andre seite komme, soll die variable $feld_ergebnis2 mit auf die andre seite übernommen werden und dort mit echo "$feld_ergebnis2" wieder ausgegeben werden, da ich auf andern seiten damit weiter arbeiten muss.

kurz: der name des buttons ($feld_ergebnis2) soll durch ein abfrageergebnis vergebn werden. dieses eregbnis ist eineindeutig.

<form method="post" action="test_2.php">
<?php
require ("pruefroutine.php");
?>

<?php
$ergebnis1 = mysql_query("SELECT A2_NAME,A4_FLAE FROM haupt WHERE B1_NAME = 'ABC'");

while ($treffer1 = mysql_fetch_row($ergebnis1))
{
  echo "<table border='0' cellspacing='0' cellpadding='0'>";
  echo "<tr>\n";
  echo "<td width='10'>";
  echo "</td>";
  echo "</tr>";
  echo "<tr><td height='10' bgcolor='#ff9900' colspan='6'>;
foreach ($treffer1 as $feld_ergebnis1)
if ($feld_ergebnis1 !="")
  echo "$feld_ergebnis1";
}

$abfrage_nr = mysql_query("SELECT A1_ALL FROM haupt WHERE B1_NAME = 'ABC'");
while ($treffer2 = mysql_fetch_row($abfrage_nr))
{
foreach ($treffer2 as $feld_ergebnis2)
if ($feld_ergebnis2 != "")
  echo "<input type='IMAGE' src='../graphiken/b_anzeigen1.gif'>";
  echo "<input type='HIDDEN' name='$feld_ergebnis2' value='send'";
  echo "</tr>";
  echo "</table>";
}
?>
</form>

hoffe, jemand hat ne lösung....danke jan

  1. hi jan,

    ich versehe das wie folgt:
    du hast eine tabelle:

    A2_NAME |A4_FLAE|A1_ALL
    horst   |mag    |fisch
    hugo    |liebt  |
    ernst   |freut  |sich

    und jetzt möchtest du folgendes ausgeben:

    horst <button>fisch</button>
    hugo
    ernst <button>sich</button>

    dann könntest du das doch so machen
    select A2_NAME, A4_FLAE, A1_ALL
      wenn es solche zeile gibt dann
        echo A2_NAME und A4_FLAE
        wenn jetzt noch A1_ALL != ""
          dann echo button

    hmmm oder habe ich da was falsch verstanden???
    warum machst du zwei abfragen?

    gruss
    horst

    hallo,
    wir haben folgendes problem, an dem wir jetzt schon ne ewigkeit sitzen.
    ich versuchs mal zu erklären.
    wir haben über SQL-abfragen eine ergebnismenge erhalten, die auch
    zeilenweise ausgegeben wird.
    (lasst euch an den ganzen td und tr nicht stören - es ging bis jetzt nur um die funktionalität - nicht um optik)
    in der variable $feld_ergebnis1 werden also der name und die fläche ausgegeben von einer bestimmten bedingung (ABC.)
    diese 3 werten werden hintereinander geschrieben in eine zeile.

    ab der syntax $abfrage_nr.... entsteht unser problem.
    es folgt eine zweite abfrage, aber diesmal wird eine nummer abgefragt; aber zu den GLEICHEN bedingungen wie oben, damit die anzahl der datensätze mit der anzahl der button übereinstimmt.

    es soll praktisch hinter den 3 werten pro zeile immer ein button erstellt werden.
    hab ich also als ergebnis 10 datensätze, so wird 10x (1x pro zeile) ein button hinten angefügt. (also für jeden datensatz einen button)

    ziel ist es, das ergebnis der zweiten abfrage, was eine eineindeutige nummer ausgibt ($feld_ergebnis2), dies wirkl nur einmal gibt, gleichzeitig als namen für den button zu deklarieren (name='$feld_ergebnis2').
    hab ich also 10 datensätze, so hab ich auch 10 button und jeder button erhält praktisch einen anderen namen, da die eineindeutige nummer ja immer anders ist.

    wenn ich also den button klicke und dadurch auf ne andre seite komme, soll die variable $feld_ergebnis2 mit auf die andre seite übernommen werden und dort mit echo "$feld_ergebnis2" wieder ausgegeben werden, da ich auf andern seiten damit weiter arbeiten muss.

    kurz: der name des buttons ($feld_ergebnis2) soll durch ein abfrageergebnis vergebn werden. dieses eregbnis ist eineindeutig.

    <form method="post" action="test_2.php">
    <?php
    require ("pruefroutine.php");
    ?>

    <?php
    $ergebnis1 = mysql_query("SELECT A2_NAME,A4_FLAE FROM haupt WHERE B1_NAME = 'ABC'");

    while ($treffer1 = mysql_fetch_row($ergebnis1))
    {
      echo "<table border='0' cellspacing='0' cellpadding='0'>";
      echo "<tr>\n";
      echo "<td width='10'>";
      echo "</td>";
      echo "</tr>";
      echo "<tr><td height='10' bgcolor='#ff9900' colspan='6'>;
    foreach ($treffer1 as $feld_ergebnis1)
    if ($feld_ergebnis1 !="")
      echo "$feld_ergebnis1";
    }

    $abfrage_nr = mysql_query("SELECT A1_ALL FROM haupt WHERE B1_NAME = 'ABC'");
    while ($treffer2 = mysql_fetch_row($abfrage_nr))
    {
    foreach ($treffer2 as $feld_ergebnis2)
    if ($feld_ergebnis2 != "")
      echo "<input type='IMAGE' src='../graphiken/b_anzeigen1.gif'>";
      echo "<input type='HIDDEN' name='$feld_ergebnis2' value='send'";
      echo "</tr>";
      echo "</table>";
    }
    ?>
    </form>

    hoffe, jemand hat ne lösung....danke jan

    1. hallo,

      das mit dem button-tag könnte die lösung sein.
      nur steuert er jetzt nicht auf die ausgabe-seite, wo er den wert der variablen ausgebn soll.
      was könnte denn hier noch falsch sein?
      wahrscheinlich liegts am onclick.....

      <form action="test_1.php">

      echo "<button name='$feld_ergebnis2' type='BUTTON' onClick='this.form.href='test_2.php''>";
      echo "<img src='../graphiken/b_anzeigen1.gif'>";
      echo "</button>";

      </form>

      die seite, wo die abfrageergebnisse udn die button stehen heisst test_1.php. nach dem klicken auf den button, soll die seite test_2.php geöffnet werden, wo in der variablen $feld_ergebnis2 der wert der zweiten abfrage ausgegeben wird.

      antwort auf die frage, warum 2 abfrragen:
      so kann man einzeln auf das ergebnis mit der eineindeutigen nummer (Bsp.: A1_ALL = fisch) zugreifen.
      das würde doch nicht klappen, wenn wir alles nur in einer abfrage abfragen!?!

      danke für die tipps...jan

      1. hallo,

        <form action="test_1.php">
        echo "<button name='$feld_ergebnis2' type='BUTTON' onClick='this.form.href='test_2.php''>";
        echo "<img src='../graphiken/b_anzeigen1.gif'>";
        echo "</button>";

        so könnte es mit dem übergeben gehen:

        <input type="button" name="asf" value="bbbbb" onClick="self.location.href='test_2.php?rueck=$feld_ergebnis2'">
                                                ^^^^^^^^^^^^^^^^^
        jetzt kannst du auf $_GET[rueck] (oder war es post, bin grad zu faul zum nachschauen, sorry :) zugreifen....

        ansonsten könntest du für jedes element ein neues formular erstellen und dann jedesmal einen neuen submitbutton (oder für alle den selben?), in das form dann noch ein hiddenfeld mit dem value
        http://selfhtml.teamone.de/html/formulare/versteckte.htm

        hoffe so kommst du weiter

        gruss
        horst