wisler: MySQL Daten in Array als Checkbox

Hallo

Ich komme einfach nicht weiter.

Ich möchte in ein Formular dynamische Checkboxfelder erstellen und diese dann in einer Tabelle speichern.

Ich denke das ich das ganze mit einem array umsetzen kann.

include('connect.php');  
$fehlerkategorie=array();  
	$abfrage9 = "SELECT * FROM auswahlfeld WHERE feldkennung = 'fehlerkategorie'";  
	$ergebnis9 = mysql_query($abfrage9);  
	while($row9 = mysql_fetch_object($ergebnis9))  
{  
    $auswahl="<input type=\"checkbox\" name=\"$fehlerkategorie()\" value=\"1\">$row9->bezeichnung<br>";  
    echo "$auswahl";  
    //$fehlerkategorie[] = $row['bezeichnung'];  
  
}

Die anzeige funktioniert auch, doch ich denke dass es nicht richtig ausgeführ wird.

Ich wollte auf der nächsten seite (wo später die Daten in die MySQL gespeichert werden) ausgeben.

print_r($fehlerkategorie);

Kann mir jemand sagen welchen fehler ich im array habe?

Danke.

lg.

  1. Hi!

    Kann mir jemand sagen welchen fehler ich im array habe?

    Kannst Du den generierten HTML Code zeigen?

    --
    "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
          - T. Pratchett
    1. welchen HTMl-Code? Meinst du den?

      <link rel="stylesheet" href="style.css" type="text/css">  
      <html>  
      <body>  
               <?php  
               	include('ueberschrift.php');  
               ?>  
        
               <div id="inhalt">  
        
               <?php  
        
               include('info.php');  
        
               echo "<form action=\"benutzer.php\" method=\"GET\">";  
      //enddatum festlegen  
      $tag=date("d");  
      $monat=date("m");  
      $jahr=date("Y");  
        
      echo "<h3>Enddatum:";  
      echo "<input type=\"text\" name=\"endtag\" value=\"$tag\" size=\"1\">.";  
      echo "<input type=\"text\" name=\"endmonat\" value=\"$monat\" size=\"1\">.";  
      echo "<input type=\"text\" name=\"endjahr\" value=\"$jahr\" size=\"2\"></h3>";  
        
      //dauerfeld       !!! wird nun automatisch im cognos berechnet !!!  
      //echo "<h3>Dauer in Tagen:<input type=\"text\" name=\"dauer\" value=\"1\" size=\"2\"></h3>";  
        
        
      //Abschluss negativ oder Positiv 1=positiv, 2=negativ  
            echo "<h3>Abschluss: <input type=\"radio\" name=\"abschluss\" value=\"1\"> Positiv ";  
            echo " <input type=\"radio\" name=\"abschluss\" value=\"2\"> Negativ</h3>";  
        
      //Kostenmäßig erfasst 1=ja, 2=nein  
            echo "<h3>FM Kostenmäßig erfasst: <input type=\"radio\" name=\"kostenerfasst\" value=\"1\"> Ja ";  
            echo " <input type=\"radio\" name=\"kostenerfasst\" value=\"2\"> Nein</h3>";  
        
      //Eigenfehler oder Fremdfehler 1=eigenfehler, 2=fremdfehler  
            echo "<h3>Fehler: <input type=\"radio\" name=\"fehler\" value=\"1\"> Eigenfehler ";  
            echo " <input type=\"radio\" name=\"fehler\" value=\"2\"> Fremdfehler</h3>";  
        
        
      //Produkt 1=alt 2=neu  
            echo "<h3>Produkt: <input type=\"radio\" name=\"prodaltneu\" value=\"1\"> Alt ";  
            echo " <input type=\"radio\" name=\"prodaltneu\" value=\"2\"> Neu</h3>";  
        
        
      //FM Workshot 1=ja, 2=nein         !!! gibts nimmer!!!  
      //      echo "<h3>FM Workshop: <input type=\"radio\" name=\"workshop\" value=\"1\"> Ja ";  
      //      echo " <input type=\"radio\" name=\"workshop\" value=\"2\"> Nein</h3>";  
        
      //fehlerkategorie, wird in eine getrennte tabelle geschrieben!  
      include('connect.php');  
      //$fehlerkategorie=array();  
      	$abfrage9 = "SELECT * FROM auswahlfeld WHERE feldkennung = 'fehlerkategorie'";  
      	$ergebnis9 = mysql_query($abfrage9);  
      	while($row9 = mysql_fetch_object($ergebnis9))  
      {  
          $auswahl="<input type=\"checkbox\" name=\"$fehlerkategorie()\" value=\"1\">$row9->bezeichnung<br>";  
          echo "$auswahl";  
          //$fehlerkategorie[] = $row['bezeichnung'];  
        
      }  
      //print_r($fehlerkategorie);  
        
      //Sonderfreigabe 1=ja, 2=nein  
            echo "<h3>Sonderfreigabe: <input type=\"radio\" name=\"sonderfreigabe\" value=\"1\"> Ja ";  
            echo " <input type=\"radio\" name=\"sonderfreigabe\" value=\"2\"> Nein</h3>";  
        
            	echo "<input type=\"hidden\" name=\"benutzer\" value=\"$_GET[benutzer]\">";  
               echo "<input type=\"hidden\" name=\"aktivitat\" value=\"fallschliesen\">";  
               echo "<input type=\"hidden\" name=\"fallnr\" value=\"$_GET[fallnr]\">";  
       	echo "<input type=\"submit\" value=\"Fall Schließen\">";  
               echo "<input type=\"button\" value=\"Übersicht\" onclick=\"location='benutzer.php?benutzer=$_GET[benutzer]'\">";  
        
        
                  echo "</form>";  
        
        
        
        
        
                   ?>  
        
              </div>  
      </body>  
      </html>
      
      1. welchen HTMl-Code? Meinst du den?

        Aeh. Nein.

        Das ist php Code. Ich meine den HTML Code der letztlich an den Browser geschickt wird. Schau Dir den einfach mal an und Wenn Du da auch nichts siehst, was Dir auffaellt, poste den relevanten Teil hier.

        Du generierst doch ein Formular, das nicht so funktioniert, wie gedacht. Also schau Dir erstmal das erstellte Formular an.

        Merke: Ist der Code erst generiert, debugt es sich ganz ungeniert.

        --
        "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
              - T. Pratchett
      2. Hallo,

        welchen HTMl-Code? Meinst du den?

        <link rel="stylesheet" href="style.css" type="text/css">

        <html>
        <body>
                 <?php
                  include('ueberschrift.php');
                 ?>

        <div id="inhalt">

        <?php

        include('info.php');

        echo "<form action="benutzer.php" method="GET">";
        //enddatum festlegen
        $tag=date("d");
        $monat=date("m");
        $jahr=date("Y");
        ...

          
        ist das etwa HTML-Code? Das ist PHP-Code, der HTML erzeugt. Was meinst du, warum [Steel](https://forum.selfhtml.org/?t=196095&m=1313352) nach dem  
          
        
        > generierten HTML Code  
          
        fragte, also der Ausgabe des Scripts?  
        Die HTML-Ausgabe hätte den Fehler nämlich auch gezeigt:  
          
        
        > $auswahl="<input type=\"checkbox\" name=\"$fehlerkategorie()\" value=\"1\">$row9->bezeichnung<br>";  
          
        Was steht für diese Zeile \*wirklich\* im HTML-Quelltext?  
        Es ist weder sinnvoll, an einen Variablennamen (hier $fehlerkategorie) runde Klammern für Funktionsparameter anzuhängen. Ganz abgesehen davon, dass $fehlerkategorie in deinem Beispiel auskommentiert, demzufolge undefiniert ist und PHP an der Stelle eine Notice-Meldung schmeißt.  
        Darüber hinaus ist die Notation $row9->bezeichnung so in einen String eingebettet nicht möglich. Nutze entweder Stringverkettung, oder setze den Ausdruck in geschweifte Klammern. So wie du es notiert hast, wird der Ausdruck nicht korrekt ausgewertet.  
          
        So long,  
         Martin  
        
        -- 
        Paradox ist, wenn jemand eingefleischter Vegetarier ist.  
        
        
  2. Hi,

    print_r($fehlerkategorie);

    Kann mir jemand sagen welchen fehler ich im array habe?

    Der gravierendste Fehler ist, dass du annimmst, dass POST-Werte automatisch in normalen Variablen vorliegen würden - das ist seid langem nicht mehr der Fall.

    Informiere dich, was register_globals=off bedeutet, und wie man stattdessen auf POST-Werte zugreift.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
    1. MfG ChrisB

      Bist du per Mail erreichbar bzw. schick mir ggf. eine Nachricht an meine Adresse, ich muss dir etwas mitteilen ;)

      1. bin ich!!!

        1. bin ich!!!

          Schön, mit anderen Worten du bist nicht ChrisB und hast versucht, seine Identität zu stehlen.

          Meine Bitte nach einer E-Mail war ausdrücklich an ChrisB gerichtet.

          1. Schön, mit anderen Worten du bist nicht ChrisB und hast versucht, seine Identität zu stehlen.

            Meine Bitte nach einer E-Mail war ausdrücklich an ChrisB gerichtet.

            Haettest dafuer auch nen Thread aufmachen koennen. Nen allgemeinen "Laberthread" gibts ja grad nicht.

            --
            "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                  - T. Pratchett
            1. Haettest dafuer auch nen Thread aufmachen koennen. Nen allgemeinen "Laberthread" gibts ja grad nicht.

              Ich hab' einfach den nächstbesten gehighjacked :p

      2. Hi,

        Bist du per Mail erreichbar bzw. schick mir ggf. eine Nachricht an meine Adresse, ich muss dir etwas mitteilen ;)

        Ich dir auch: 3cc8662fe052a7ebfcd64c1d61326104
        ;-)

        MfG ChrisB

        --
        “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
        1. Lieber ChrisB,

          Ich dir auch: 3cc8662fe052a7ebfcd64c1d61326104

          ist das Dein öffentlicher PGP-Schlüssel?

          Liebe Grüße,

          Felix Riesterer.

          --
          ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
          1. Ich dir auch: 3cc8662fe052a7ebfcd64c1d61326104

            ist das Dein öffentlicher PGP-Schlüssel?

            Nein - ein MD5-Hash, Scherzkeks[1]

            [1] Achtung, Spätzünder.

            1. Ich dir auch: 3cc8662fe052a7ebfcd64c1d61326104

              ist das Dein öffentlicher PGP-Schlüssel?

              Nein - ein MD5-Hash, Scherzkeks[1]

              [1] Achtung, Spätzünder.

              Zitat Cheatah:

              Hier haben zwar viele - schon von Berufs wegen - einen ziemlich kranken Geist

              Ich hab in der Sammlung, glaub ich, dafuer gestimmt...

              --
              "Die Diebesgilde beklagte sich darueber, dass Mumm in aller Oeffentlichkeit behauptet hatte, hinter den meisten Diebstaehlen steckten Diebe."
                    - T. Pratchett
  3. Hello,

    Ich möchte in ein Formular dynamische Checkboxfelder erstellen und diese dann in einer Tabelle speichern.

    Was sind dynamische Checkboxfelder?

    Meinst Du, dass Du den HTML-Code für Checkboxen aus einer Datenbankabfrage generieren willst?
    Hat es einen besonderen Grund, dass Du mysql_fetch_object() benutzt, wenn Du doch nur imperativ programmierst?

    Vinzenz würde jetzt wahrscheinlich sowoeso anraten, ohnehin gelich die überarbeiteten mysqli-*-Funktionen zu verwenden. :-)
    http://de.php.net/manual/de/book.mysqli.php

    Aber auch dort gibt es sowohl eine objektorientierte als auch eine imperative (funktionale) Möglichkeit der Benutztung.

    Es ist immer gut, wenn man sein Script in eigene Funktionen (oder Klassen und Methoden) aufteilt und dabei die Steue4rflußkontrolle, Datenbeschaffung, Datenverarbeitung, Ausgabevorbereitung und die eigentliche Ausgabe (Anzeige, HTML-Code senden) trennt.

    Da Speicherplatz heute nicht mehr sooo kritisch zu betrachten ist, wie vor 20 Jahren, kann man diese Trennung meistens auch wunderbar einhalten.

    Fülle mit der SQL-Abfrage ein Array und übergib dieses Array dann an Deine Darstellungsfunktion, also die Funktion, die aus den Daten einen HTML-String macht, den Du dann zu gegebener Zeit ausgeben lässt von Deiner Ausgabeeinheit.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de