Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem beim schreiben sql, was ist falsch?

Einklappen

Neue Werbung 2019

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

  • Problem beim schreiben sql, was ist falsch?

    Hallo, ich brauch da mal hilfe von euch profis, ich hab ein kleines formular mit 3 textfeldern.
    Nach submit sollen alle drei felder in di db geschrieben werden.
    Lesen klappt via php einwandfrei, nur schreibt es keine daten...


    PHP-Code:
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    </head>

    <body bgcolor="#FFFFFF" text="#000000">
    <div align="center">
      <?PHP

      
    if ($button=="speichern") {

       include(
    "db.php");




    $sql "INSERT INTO att(link,ausbau,zustand)VALUES('$link','$ausbau','$zustand')";

    mysql_query($sql) or die (mysql_error());



    ?>
    <?PHP
    } else { ?>






      <form name="form1" method="post" action="">
        <table width="722" border="0" align="center">
          <tr>
            <td width="560" height="20">
              <div align="center">Link</div>
            </td>
            <td width="73" height="20">
              <div align="center">Ausbau %</div>
            </td>
            <td width="75" height="20">
              <div align="center">Zustand %</div>
            </td>
          </tr>
          <tr>
            <td width="560">
              <input type="text" name="link" value="link"  size="110">
            </td>
            <td width="73">
              <input type="text" name="ausbau"  value="ausbau" size="10">
            </td>
            <td width="75">
              <input type="text" name="zustand"  value="zustand" size="10">
            </td>
          </tr>
          <tr>
            <td width="560">&nbsp;</td>
            <td width="73">&nbsp;</td>
            <td width="75">&nbsp;</td>
          </tr>
          <tr>
            <td width="560">
              <div align="center">Stimmen diese Angaben, dann klick auf speichern
                um die DB zu aktualisieren</div>
            </td>
            <td colspan="2">&nbsp;</td>
          </tr>
          <tr>
            <td width="560">&nbsp;</td>
            <td width="73">&nbsp;</td>
            <td width="75">&nbsp;</td>
          </tr>
        </table>
        <input type="submit" name="button" value="speichern">
      </form>
       <?PHP

      
    ?>

    </div>
    </body>
    </html>

  • #2
    Wieder einmal [man]register_globals[/man]

    Kommentar


    • #3
      Speicherst du die Variablen aus dem Formular zwischen? Also z.B.

      PHP-Code:
      <?php
        $ausbau 
      $_POST["ausbau"];
      ?>
      Wenn nicht, liegt da das Problem. Die Daten werden immer in den jeweiligen Variablen des HTTP-Requests übergeben und nicht in Variablen des gleichen Namens.

      Kommentar


      • #4
        nein, speicher nicht zwischen, ich versuchs mal

        Kommentar


        • #5
          habs jetzt eingebaut, aber irgendwie häng ich, er submittet, aber in der db kommst nix an


          PHP-Code:
            <?PHP
              
          if ($button=="speichern") {

             include(
          "db.php");




          $sql "INSERT INTO att(link,ausbau,zustand)VALUES('$link','$ausbau','$zustand')";

          mysql_query($sql) or die (mysql_error());



          ?>
          <?PHP
            $link 
          $_POST["link"];
            
          $ausbau $_POST["ausbau"];
            
          $zustand $_POST["zustand"];
            
          ?>
          <?PHP
          } else { ?>






            <form name="form1" method="post" action="">

          Kommentar


          • #6
            Und was ist $button? Und was bringt es, Variable in die DB zu schreiben, bevor sie definiert sind?

            Kommentar


            • #7
              Okay, du verstehst das grad ziemlich falsch. Die einzelnen Felder deines Formulars landen NICHT in Variablen mit dem gleichen Namen, sondern in dem Array $_POST. Zugreifen kannst du über $_POST["VariablenName"].

              PHP-Code:
              <?php
              if($_POST["button"] == "speichern")
              {
                include(
              "db.php");

                
              $link $_POST["link"];
                
              $ausbau $_POST["ausbau"];
                
              $zustand $_POST["zustand"];

                
              $sql "INSERT INTO att(link,ausbau,zustand)VALUES('$link','$ausbau','$zustand')";

                
              mysql_query($sql) or die (mysql_error());
              } else
              {
                
              // ...
              ?>

              Kommentar


              • #8
                jipppieh, es funzt.

                Jetzt hab ich noch ein anderes problem wenn ich mit folgendem code:

                PHP-Code:
                <?php
                mysql_connect
                "xxxx""xxxxx""xxxxx" );

                mysql_select_db("xxxxxxx")
                or die (
                "existiert nicht");

                $sql "SELECT * FROM att";
                $att_query mysql_query($sql) or die("Anfrage nicht erfolgreich");
                ?>
                <body bgcolor="#CCCCCC">
                <div align="center"></div>
                <table cellpadding="1" cellspacing="3" border="1" align="center">
                  <tr>

                <td>Link</td>

                <td>Ausbau %</td>

                <td>Zustand %</td>

                </tr>



                <?php

                while ($adr mysql_fetch_array($att_query)){

                ?>

                <tr>

                <td><?=$adr['link']?></td>

                <td><?=$adr['ausbau']?></td>

                <td><?=$adr['zustand']?></td>

                <</tr>

                <?php

                }

                ?>



                </table>

                Die datenbank abfrage, kommt über der tabelle immer pro eintrag ein <...wie krieg ich das weg?

                http://www.fotohol.de/forum/kriegera...st/spalte1.php

                So, jetzt ist erstmal wochenende und ich muss arbeiten...
                wie ich die einzellnen zeilen bei bedarf auch wieder löschen kann, frag ich nächste woche... versuchen will ich es aber erstmal alleine.
                danke soweit
                holger

                Kommentar


                • #9
                  <</tr>
                  Indem Du es aus dem Code löschst

                  Kommentar


                  • #10
                    boah ne wat einfach. und ich hab den code sowas von durchsucht... naja

                    jetzt hab ich die funktion zum löschen aus einemt tuto nachgebaut, aber es klappt nicht so wirklich:

                    PHP-Code:
                    <input type="checkbox" name="loeschen[]"
                     value="<? echo '$link' ?>">

                    <?
                    $db=@mysql_connect("xxxx", "xxxxx", "xxxxx");
                    $select=@mysql_select_db("xxxx",$db);


                    if($submit) {


                    $y=count($loeschen);
                    echo "$y Datensätze werden gelöscht.<br><br>";


                        for($x=0;$x<$y;$x++) {
                        mysql_query("delete from att
                    where link='$loeschen[$x]'");
                        echo "Gelöscht: $loeschen[$x]<br>";
                        }
                    }

                    $result=mysql_query("select * from att");

                    if(mysql_num_rows($result)) {
                    ?>
                    <form method="post" action=" adminp2.php">
                      <table width="300" border="0" cellspacing="0"
                    cellpadding="0">
                      <?

                      while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
                      $link=$row["link"];
                      $feld=$row["feld"];
                      ?>
                        <tr>
                          <td width="30">
                            <input type="checkbox" name="loeschen[]"
                    value="<? echo $link ?>
                          </td>
                          <td><? echo $feld ?></td>
                      </tr>
                      <? } ?>
                    </table>
                      <br>
                      <input type="submit" name="submit" value="Löschen">
                    </form>
                    <?
                    } else {
                    echo "Keine Daten gefunden.";
                    }
                    ?>
                    http://www.fotohol.de/forum/kriegera...st/adminp2.php

                    Kommentar


                    • #11
                      Selbes Problem wie oben. Mal sehen, was Du gelernt hast.

                      Kommentar


                      • #12
                        Mhhhh, den ersten eintrag liest er mir, aber es sieht noch alles komisch aus

                        Denke mal ich hab das mit den Variablen noch nicht ganz richtig

                        PHP-Code:
                        <input type="checkbox" name="loeschen[]"
                         value="<? echo '$link' ?>">

                        <?
                        $db=@mysql_connect("xxxxx", "xxxxx", "xxxxx");
                        $select=@mysql_select_db("xxxx",$db);


                        if($_POST["button"] == "Löschen")
                        {


                        $loeschen = $_POST["loeschen"];
                        $link = $_POST["link"];

                        $y=count($loeschen);
                        echo "$y Datensätze werden gelöscht.<br><br>";


                            for($x=0;$x<$y;$x++) {
                            mysql_query("delete from att
                        where link='$loeschen[$x]'");
                            echo "Gelöscht: $loeschen[$x]<br>";
                            }
                        }

                        $result=mysql_query("select * from att");

                        if(mysql_num_rows($result)) {
                        ?>
                        <form method="post" action="adminp2.php">
                          <table width="300" border="0" cellspacing="0"
                        cellpadding="0">
                          <?

                          while($row=mysql_fetch_array($result,MYSQL_ASSOC)) {
                          $link=$row["link"];
                          $feld=$row["feld"];
                          ?>
                            <tr>
                              <td width="30">
                                <input type="checkbox" name="loeschen[]"
                        value="<? echo $link ?>">
                              </td>
                              <td><? echo $feld ?></td>
                          </tr>
                          <? } ?>
                        </table>
                          <br>
                          <input type="submit" name="button" value="Löschen">
                        </form>
                        <?
                        } else {
                        echo "Keine Daten gefunden.";
                        }
                        ?>

                        löschen:
                        http://www.fotohol.de/forum/kriegera...st/adminp2.php

                        anzeigen:
                        http://www.fotohol.de/forum/kriegeraction/att.php

                        Kommentar


                        • #13
                          Sorry, habe mich verschrieben

                          Kommentar


                          • #14
                            Mhhh, hat keiner eine Idee ???

                            Kommentar


                            • #15
                              Zitat von deathhholly Beitrag anzeigen
                              Mhhh, hat keiner eine Idee ???
                              Doch:
                              • Zitat von deathhholly
                                aber es sieht noch alles komisch aus
                                ist eine sehr hilfreiche Problembeschreibung
                              • error_reporting() einschalten
                              • Fehlermeldungen nicht unterdrücken (@)
                              • Returnwert von mysql-Befehlen abfragen
                              • Evaluierte SQL-Befehle ausgeben
                              • Code anständig formatieren (ist keine Kosmetik, sondern hilft ganz konkret Fehler zu finden)
                              • Kein SELECT * FROM verwenden

                              Oder zusammengefasst: Debuggen
                              Das würde dann mal etwa so aussehen (inhaltlich habe ich nichts geändert):
                              PHP-Code:
                              <?php
                              error_reporting
                              (E_ALL);
                              echo 
                              "<input type='checkbox' name='loeschen[]' value='$link'>\n";

                              $db mysql_connect('xxxxx''xxxxx''xxxxx') or exit(mysql_error());
                              $select mysql_select_db('xxxx') or exit(mysql_error());

                              if(!empty(
                              $_POST['button']) && $_POST['button'] == 'Löschen'){
                                  
                              $loeschen $_POST['loeschen'];
                                  
                              $link $_POST['link'];
                                  
                              $y count($loeschen);
                                  echo 
                              '$y Datensätze werden gelöscht.<br /><br />';

                                  for(
                              $x 0;$x $y;$x ++) {
                                      
                              $sql "
                                          DELETE FROM
                                              att
                                          WHERE 
                                              link = '
                              $loeschen[$x]'";
                              echo 
                              "$sql <br />"//    DEBUG-Ausgabe
                                      
                              mysql_query($sql) or exit(mysql_error());
                                      echo 
                              "Gel&ouml;scht: $loeschen[$x]<br />";
                                  }
                              }

                              $sql "
                                  SELECT
                                      link,
                                      feld
                                  FROM
                                      att"
                              ;
                              $result mysql_query(sql) or exit(mysql_error());

                              if(
                              mysql_num_rows($result)) {
                                  echo 
                              "
                                      <form method='post' action='adminp2.php'>
                                      <table width='300' border='0' cellspacing='0' cellpadding='0'>"
                              ;
                                  while(
                              $row mysql_fetch_array($resultMYSQL_ASSOC)) {
                                      
                              $link $row['link'];
                                      
                              $feld $row['feld'];
                                      echo 
                              "
                                          <tr>
                                              <td width='30'>
                                                  <input type='checkbox' name='loeschen[]' value='
                              $link' />
                                              </td>
                                              <td>
                              $feld</td>
                                          </tr>
                                  }
                                  echo "
                                      
                              </table>
                                      <
                              br />
                                      <
                              input type='submit' name='button' value='L&ouml;schen' />
                                      </
                              form>\n";

                              else {
                                  echo 'Keine Daten gefunden.';
                              }
                              ?>

                              Kommentar

                              Lädt...
                              X