Ankündigung

Einklappen
Keine Ankündigung bisher.

Wert von Radiobuttons in Datenbank eintragen

Einklappen

Neue Werbung 2019

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

  • Wert von Radiobuttons in Datenbank eintragen

    Hey erstmal, ich arbeite z Z an einer website für meinen stiefvater, wo man über einen login-bereich in einen weiteren bereich kommt. in diesem soll eine datenbank ausgelesen werden (funktioniert auch) und dann sollen rechts pro zeile 2 radiobuttons sein. in der datenbank geht es um bestellungen, von daher soll es über die radio-buttons möglich sein, die bestellungen freizugeben oder auch nicht. danach soll der wert in die mysql datenbank eingetragen werden (in der spalte "Freigegeben" in der datenbank steht zur zeit in jeder zeile NULL)

    hier der code

    PHP-Code:
    <?php
            $db_link 
    mysql_connect("localhost","Julius","");
            
    mysql_select_db('svenwebsite'$db_link);

            
    $tabelle mysql_query('SELECT * FROM bestellung, besteller WHERE bestellung.idBesteller = besteller.idBesteller') or die(mysql_error());
             
             echo  
    '<table border="1">';
             
            
             echo 
    "<form action method='post'>";
             
    $z =0;
            while(
    $zeile mysql_fetch_array($tabelleMYSQL_ASSOC))
            { 
            echo 
    "<tr>";
            echo 
    "<td>" $zeile['Bestellnummer'] . "</td>";
            echo 
    "<td>" $zeile['Bestelldatum'] . "</td>";
            echo 
    "<td>" $zeile['idBesteller'] . "</td>";
            echo 
    "<td>" $zeile['Name'] . "</td>";
            echo 
    "<td>" $zeile['Stadt'] . "</td>";
            
    $z $zeile['Bestellnummer']; 
            echo 
    '<td> <input type="radio" name="freigabe_'.$z.'" value="Ja"> Ja </input> </td>'
            echo 
    '<td> <input type="radio" name="freigabe_'.$z.'" value="Nein"> Nein </input> </td>';
            echo 
    "</tr>"
            
            }
            
            

            
            echo 
    "</table>";
            while(
    $zeile mysql_fetch_array($tabelleMYSQL_ASSOC))
                    {
                    
                    
    $z $zeile['Bestellnummer'];
                             if(
    $_POST["freigabe_'.$z.'"] == "Ja" ){
                                echo 
    "Ja";
                            
                                
    mysql_query('Update bestellung SET Freigegeben="Ja" WHERE Bestellnummer="$z"' or die ("Fehler".mysql_error()));
                            }
                            else if(
    $_POST["freigabe_'.$z.'"] == "Nein"){
                                echo 
    "Nein";
                                
    mysql_query('Update bestellung SET Freigegeben="Nein" WHERE Bestellnummer="$z"' or die ("Fehler".mysql_error()));
                            } 
                                                
                    }    
                    
            echo 
    " <input type='submit' value='Speichern' name='speichern'>";
            echo 
    "</form>";
            
            
        
    ?>
    ich krieg leider gar keine fehlermeldung mehr, glaube aber, dass das problem iwie beim erstellen der radiobuttons liegt (durch die vielen anführungsstriche)

    oder liegt der fehler vielleicht bei der erstellung des formulars? die seite soll danach aktualisiert werden und die werte sollten dann wenn möglich schon in die datenbank eingetragen sein und echo sollte angezeigt werden.

    und geht das überschreiben der werte in der datenbank mit UPDATE oder muss ich INSERT INTO nehmen, da die werte ja NULL sind?

    ich wär euch unglaublich dankbar, wenn jemand weiß, was da nicht stimmen könnte oder wenn jemand ne einfachere idee zur umsetzung hat

    danke im voraus, julius

  • #2
    Hi,

    vorab: nutze PDO oder mysqli,. mysql_* ist veraltet. Bitte auch die richtigen PHP Tags hier im WYSIYWG Editor nutzen, damit wir deinen code besser lesen können.

    Warum machst du das nicht einfach mit z.B. 2 buttons oder 2 Links, statt mit radio Buttons? Dadurch kannst du jede Zeile direkt ansprechen ohne kompliziertes auswerten für Dich. Oder (noch übersichtlicher): je nach eingetragenem Status in der Datenbank, steht da nur "aktivieren" oder "deaktivieren" und nur ein button. Dann ist es noch übersichtlicher (vor allem wenn du die Zeilen entsprechend farblich hervorhebst).
    Schöne Alternative ist auch JQuery und ein AJAX Ansatz, dann musst du gar nicht die Seite neu laden.

    die seite soll danach aktualisiert werden und die werte sollten dann wenn möglich schon in die datenbank eingetragen sein und echo sollte angezeigt werden.
    Wenn du Werte in der Datenbank ändern willst, brauchst du UPDATE. Willst Du welche neu einfügen, dann INSERT.

    mfg wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Zitat von jayceeare Beitrag anzeigen
      ich krieg leider gar keine fehlermeldung mehr
      Dann schreibe mal diese beiden Zeilen an den Anfang des Scriptes:
      PHP-Code:
      error_reporting(E_ALL);
      ini_set("display_errors"true); 
      Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

      Kommentar


      • #4
        hey, danke euch erstmal für die antworten. leider kann ich erst heute abend schauen, da ich zur zeit bei der arbeit bin. hab dafür den code oben etwas übersichtlicher gemacht.

        ich will nochmal etwas genauer beschreiben, was die seite genau umsetzen soll und was letztlich auch passieren soll: die personen, die in den bereich reinkönnen, entscheiden, ob die jeweilige bestellung freigegeben wird oder nicht (was ich mit den radios versucht hab). dann wird der wert in die datenbank eingetragen. da ich diese über localhost/phpmyadmin erstellt hab und die zeilen in der spalte "Freigegeben" nicht wirklich frei lassen konnte, wurde hier in jeder zeile der wert "NULL" eingetragen..

        daraus schließ ich, dass ich UPDATE nehmen müsste.
        danach soll die zeile (egal ob freigegeben oder nicht) von der seite entfernt werden, damit der wert aus freigegeben nicht nochmal geändert wird.
        deswegen geht das mit aktivieren/deaktivieren schon mal nicht.

        die idee mit den buttons find ich gut, nur würden in meinem fall beide buttons zur selben seite führen und nun frag ich mich, ob ich auch schon auf der seite, wo ich die buttons einfüge, abfragen kann, welcher der buttons selektiert wurde. und wenn ja wie?
        oder muss ich dafür erst mal auf eine neue seite (auswertung), wo ich dann quasi über $_POST auslesen kann, welcher der buttons ausgewählt wurde?

        danke euch schon mal, Julius

        Kommentar


        • #5
          ich hab die Lösung meines Problems übrigens rausgefunden. der fehler lag da, dass ich nicht

          if($_POST["freigabe_'.$z.'"] == "Ja" )

          schreiben kann, sondern die Variable außerhalb der anführungszeichen stehen muss in dem fall, also:

          if($_POST["freigabe_".$z] == "Ja" )

          danke euch trotzdem für eure hilfe, lg julius

          Kommentar


          • #6
            ich hab die Lösung meines Problems übrigens rausgefunden.
            ...das hilft Dir nur temporär. Wenn du es "richtig" machen möchtest, bitte nochmal meinen Beitrag verinnerlichen!

            mfg Wolf29
            while (!asleep()) sheep++;

            Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

            Kommentar


            • #7
              PHP-Code:
                      echo '<td> <input type="radio" name="freigabe_'.$z.'" value="Ja"> Ja </input> </td>';  
                      echo 
              '<td> <input type="radio" name="freigabe_'.$z.'" value="Nein"> Nein </input> </td>'
              Du darfst auch gerne die Arraynotation benutzen, anstatt dir Bezeichner zu basteln:
              Code:
              <input type="radio" name="freigabe[<DATENSATZ ID HIER>]" value="Ja"> Ja </input>
              Das kommt in PHP unter $_POST['freigabe'][4711] an...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar

              Lädt...
              X