Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus der Menüliste werden nicht geändert

Einklappen

Neue Werbung 2019

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

  • Daten aus der Menüliste werden nicht geändert

    Hallo,

    ich habe folgendes Problem:

    in meinem script werden (soweit ich das verstanden habe) die Daten, die ich aus meiner DB bekomme in einem Array gespeichert. Mit einer Menüliste kann ich die verschiedenen Daten aufrufen. Aber wenn ich in der Menüliste den "Platznamen" (siehe script) ändere, wird nicht der Wert ("IDPlatz") geändert. Sondern behält die ID, die zu dem vorigen Platzname gehört. Was muss ich ändern (oder hinzufügen) damit die entsprechnde ID für den Platznamen zugewiesen wird.
    Muss ich evtl was in <select name="platz" onchange=""> was ändern, damit auf die Änderung reagiert wird? Aber was?

    code:

    <?php require_once('../Connections/golf.php'); ?>
    <?php
    mysql_select_db($database_golf, $golf);
    $query_platzauswahl = "SELECT * FROM tbl_platz ORDER BY tbl_platz.Platzname;";
    $platzauswahl = mysql_query($query_platzauswahl, $golf) or die(mysql_error());
    $row_platzauswahl = mysql_fetch_assoc($platzauswahl);
    $totalRows_platzauswahl = mysql_num_rows($platzauswahl);


    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Unbenanntes Dokument</title>
    <style type="text/css">
    <!--
    .Stil1 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-weight: bold;
    font-size: 18px;
    }
    .Stil2 {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 14px;
    }
    -->
    </style>
    </head>

    <body>
    <div align="center">
    <p class="Stil1">GAP - neue Runde anlegen</p>
    <p>&nbsp;</p>
    <p class="Stil2">&nbsp;</p>
    </div>
    <form id="form1" name="form1" method="post" action="">
    <div align="center">
    <table width="592" border="0">
    <tr>
    <td width="380"><div align="right"><span class="Stil2">W&auml;hlen sie einen Platz aus: </span></div>
    <span class="Stil2">
    <label></label>
    </span></td>
    <td width="18">&nbsp;</td>
    <td width="180"><span class="Stil2">
    <select name="platz"
    onchange="">
    <?php
    do {
    ?>
    <option value="<?php echo $row_platzauswahl['IDPlatz']?>"><?php echo $row_platzauswahl['Platzname']?></option>
    <?php
    } while ($row_platzauswahl = mysql_fetch_assoc($platzauswahl));
    $rows = mysql_num_rows($platzauswahl);
    if($rows > 0) {
    mysql_data_seek($platzauswahl, 0);
    $row_platzauswahl = mysql_fetch_assoc($platzauswahl);
    }
    ?>
    </select>
    </span></td>
    </tr>
    <tr>
    <td><div align="right"></div></td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    </tr>
    </table>
    </div>
    <p align="center">&nbsp;</p>
    <p align="center" class="Stil2">Die ID ist
    <?php echo $row_platzauswahl['IDPlatz'];?>!!!! < -->
    </form>
    </body>
    </html>
    <?php
    mysql_free_result($platzauswahl);
    ?>

    Ich hoffe ihr versteht was ich meine.
    Schon mal vielen Dank für eure Hilfe

    Gruß essenz


  • #2
    Ich verstehe leider nicht was du unter «den Platznamen ändern» verstehst. Mit dem onchange="" hat das nichts zu tun, weil das so oder so überflüssig ist. Und in einem Array wird auch nichts gespeichert.
    Bitte versuche deine Frage verständlich zu formulieren, poste die relevanten Teile deines Codes (50 Zeilen HTML/CSS interessieren hier niemanden) in PHP-Tags, wie das in den Formsregeln - die du sicher gelesen hast - steht. Und wenn du in deiner Abfrage die Attribute auflistest, statt SELECT * FROM zu schreiben, hilft das auch beim Verständnis.
    Gruss
    L

    Kommentar


    • #3
      ok:

      erstmal der relevante code:

      <?php require_once('../Connections/golf.php'); ?>
      <?php
      mysql_select_db($database_golf, $golf);
      $query_platzauswahl = "SELECT IDPlatz, Platzname FROM tbl_platz ORDER BY tbl_platz.Platzname;";
      $platzauswahl = mysql_query($query_platzauswahl, $golf) or die(mysql_error());
      $row_platzauswahl = mysql_fetch_assoc($platzauswahl);
      $totalRows_platzauswahl = mysql_num_rows($platzauswahl);


      /*Beginn der Auswahlliste*/
      <select name="platz"
      onchange="">
      <?php
      do {
      ?>
      <option value="<?php echo $row_platzauswahl['IDPlatz']?>"><?php echo $row_platzauswahl['Platzname']?></option>
      <?php
      } while ($row_platzauswahl = mysql_fetch_assoc($platzauswahl));
      $rows = mysql_num_rows($platzauswahl);
      if($rows > 0) {
      mysql_data_seek($platzauswahl, 0);
      $row_platzauswahl = mysql_fetch_assoc($platzauswahl);
      }
      ?>
      </select>
      /*Ende der Auswahlliste*/
      /*Ausgabe der ID entsprechend der Auswahl, aus der Auswahlliste*/
      <?php echo $row_platzauswahl['IDPlatz'];?>!!!!

      Problem:

      Die Daten aus der Abfrage sollen in der Auswahlliste wiedergegeben werden. Sinn ist es, dass ich mit diesen Daten weiterarbeiten möchte. Ich habe verschiedenen Plätze (Platzname) zu dem je eine ID (IDPlatz) zugeordnet ist. Diese werden in den Variablen
      $row_platzauswahl['IDPlatz'] bzw. $row_platzauswahl['Platzname'] gespeichert. Wenn ich jetzt in der Auswahlliste den Platznamen ändere, soll in der Variable $row_platzauswahl['IDPlatz'] die entsprechende ID geschrieben werden. Aber er behält immer du den Wert, von dem Platz den er als erstes anzeigt und wird nicht geändert.

      Ich hoffe dies ist nun etwas verständlicher.

      Kommentar


      • #4
        Zum Posten von PHP Quellcode bitte das PHP-BBCode Tag verwenden.
        [php]echo 'test';[/php] wird dann als
        PHP-Code:
        echo 'test'
        angezeigt und die Formatierungen bleiben erhalten.

        mysql_data_seek($platzauswahl, 0);
        $row_platzauswahl = mysql_fetch_assoc($platzauswahl);
        }
        ?>
        </select>
        /*Ende der Auswahlliste*/
        /*Ausgabe der ID entsprechend der Auswahl, aus der Auswahlliste*/
        <?php echo $row_platzauswahl['IDPlatz'];?>!!!!
        Mit mysql_data_seek(,0) setzt Du den Datensatz-Zeiger auf den ersten Datensatz zurück und rufst dann den ersten Datensatz wieder ab. Wo ist da jetzt die Verknüpfung zu "entsprechend der Auswahl, aus der Auswahlliste"?

        Kommentar


        • #5
          Hallo!

          Warum machst du das so kompliziert? Doppelte Ausführung von mysql_num_rows und mysql_fetch_assoc in einer Select Abfrage? Das ist überflüssig und macht zudem auch keinen Sinn! Für das was du vor hast reicht auch ein einfaches while. Warum dowhile?

          Überdenke dir mal dein Vorhaben und den Code richtig!

          mfg der Litter
          Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
          http://www.lit-web.de

          Kommentar


          • #6
            Ich verstehe leider immer noch nicht was du unter «den Platznamen ändern» verstehst.
            Und einen Submit-Button gibt es, soweit ich das in diesem grässlichen HTML/PHP-Gemisch überhaupt überblicke, keinen, d.h das Formular wird auch gar nie abgeschickt.
            Gruss
            L

            Kommentar


            • #7
              Das gepostete Script passt noch nicht mal annähernd zu seinem Wunsch oder Vorstellung!

              Er soll mal anhand des Codes genau erklären was er sich erhofft! Ich finde den Code unverständlich und grässlich!

              mfg der Litter
              Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
              http://www.lit-web.de

              Kommentar


              • #8
                Den grässliche Code hat meine Anwendung geschrieben

                Ich selber hab da noch weniger Ahnung von. Werd mich noch ein wenig tiefer reinfuchsen und die Frage dann nochmal in verständlicherer Form stellen. Ich denke so hat das noch keinen Sinn.

                Was mir evtl helfen würde, wäre wenn mir einer erklären könnte was das script überhaupt macht. Verstehe das nur zum Teil.

                Danke!

                Kommentar


                • #9
                  Zitat von essenz Beitrag anzeigen
                  DVerstehe das nur zum Teil.
                  welchen Teil verstehst du denn und welchen nicht?
                  und was bedeutet wenig Ahnung? schon mal code geschrieben oder nur gelesen bisher?

                  Kommentar


                  • #10
                    Ja, ich hab schon mal Code selber geschrieben, aber nur ganz simple sachen aus Tutorien und so.

                    PHP-Code:
                     <?php require_once('../Connections/golf.php'); ?>
                    <?php
                    mysql_select_db
                    ($database_golf$golf);
                    $query_platzauswahl "SELECT * FROM tbl_platz ORDER BY tbl_platz.Platzname;";
                    $platzauswahl mysql_query($query_platzauswahl$golf) or die(mysql_error()); 
                    $row_platzauswahl mysql_fetch_assoc($platzauswahl); 
                    $totalRows_platzauswahl mysql_num_rows($platzauswahl);
                    Den Teil verstehe, denke ich zumindest:
                    Die Abfrage wird in $query_platzauswahl gespeichert und anschließend an $platzauswahl übergeben (warum auch immer, kommt mir nämlich doppeltgemoppelt vor)
                    mysql_fetch_assoc($platzauswahl) schreibt die Daten dann als assoziatives Array, welches in $row_platzauswahl übergeben wird.
                    Wozu
                    PHP-Code:
                    $totalRows_platzauswahl mysql_num_rows($platzauswahl
                    soll, verstehe ich nicht.
                    und
                    PHP-Code:
                    <select name="platz" 
                            onchange="">
                     <?php
                    do {  
                    ?>
                                <option value="<?php echo $row_platzauswahl['IDPlatz']?>"><?php echo $row_platzauswahl['Platzname']?></option>
                                <?php
                    } while ($row_platzauswahl mysql_fetch_assoc($platzauswahl));
                      
                    $rows mysql_num_rows($platzauswahl);
                      if(
                    $rows 0) {
                          
                    mysql_data_seek($platzauswahl);
                          
                    $row_platzauswahl mysql_fetch_assoc($platzauswahl);
                      }
                    ?>
                              </select>
                    auch nicht so wirklich, zumindest den do - while Teil. Aber ich arbeite mich vorran.

                    Kommentar


                    • #11
                      Was der Code tut siehst du ja. Was du vermutlich möchtest, ist einen Platz auszuwählen, und diesen dann irgendwie weiterverarbeiten. Schau dir mal den folgenden Code an (den Header-Teil lass ich weg):
                      PHP-Code:
                      <body>
                      <?php 
                      if (isset($_POST['set'])){
                          echo 
                      "Es wurde Platz Nummer " $_POST['platz'] . " ausgew&auml;hlt<br />
                                  <button type='button' onclick='history.back()'>Zur&uuml;ck</button>\n"
                      ;
                      }
                      else{
                          require_once(
                      '../Connections/golf.php'); 
                          
                      mysql_select_db($database_golf);
                          
                      $query_platzauswahl "
                              SELECT 
                                  IDPlatz,
                                  platzname
                              FROM 
                                  tbl_platz 
                              ORDER BY 
                                  platzname;"
                      ;
                          
                      $platzauswahl mysql_query($query_platzauswahl) or die(mysql_error());
                          echo 
                      "
                              <div align='center'>
                                  <p class='Stil1'>GAP - neue Runde anlegen</p>
                                  <p>&nbsp;</p>
                                  <p class='Stil2'>&nbsp;</p>
                              </div>
                              <form id='form1' name='form1' method='post' action='" 
                      $SERVER['PHP_SELF'] . "'>
                              <div align='center'>
                              <table width='592' border='0'>
                              <tr>
                              <td width='380'><div align='right'><span class='Stil2'>W&auml;hlen sie einen Platz aus: </span></div>
                              <span class='Stil2'>
                              </span></td>
                              <td width='18'>&nbsp;</td>
                              <td width='180'><span class='Stil2'>
                              <select name='platz'>\n"
                      ;
                          while (
                      $row_platzauswahl mysql_fetch_assoc($platzauswahl) ){
                              echo 
                      " <option value=" $row_platzauswahl['IDPlatz'] . ">" $row_platzauswahl['Platzname'] . "</option>\n";
                          }
                          echo 
                      "</select>\n</span></td></tr>
                              <tr><td colspan='3'><input type='hidden' name='set' value='1' />
                                                   <input type='submit' name='go' value='Senden'>
                              </td></tr>
                              </table>
                              </div>
                              </form>\n"
                      ;
                      }
                      ?>
                      </body>
                      Gruss
                      L

                      Kommentar


                      • #12
                        Danke, du hast es erfasst!!

                        Leider bekomme ich nen Syntax Error, "unexpected {"
                        in dem While-Part.
                        Also die Klammer nach der While-Anweisung zeigt er mir als Fehler an. Aber dabei ist die Syntax doch vollkommen korrekt, oder??

                        Kommentar


                        • #13
                          Weil da halt, wie meistens irgenwo in meinen Codes, ein Semikolon fehlt. Ich habs nun korrigiert. Der Fehler ist aber so offensichtlich, dass du den selber finden solltest.
                          Eben habe ich gesehen, dass auch noch eine Klammer fehlt, ist ebenfalls korrigiert.
                          Gruss
                          L

                          Kommentar


                          • #14
                            Ja, hätte ich eigentlich sehen sollen.

                            Alles klar, funktioniert!

                            Vielen Dank!!!

                            Kommentar

                            Lädt...
                            X