dynamische Editierseite

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

  • #16
    Naja, der Rückgabewert ist schon ein String, ich hab glaube ich die Frage falsch gestellt.

    Vielleicht kann man so sagen, alles was von Funktionen zurückkommt, oder was in einer Variable drinsteht ist (sofern es ein String ist), schon ein "fertiger" String, da brauchst du dich nicht mehr drum kümmern, im Gegenteil, solche Sachen sollen nicht in Anführungszeichen.

    Einzig und allein das, was du selber dazuschreibst, also sowas
    PHP-Code:
    $name 'Klaus';
    $_POST['test'] = 'test'
    gehört in Anführungszeichen. Nicht sowas wie
    PHP-Code:
    $_POST[$name]

    echo(
    "Hallo " $name);
    echo(
    mysql_num_rows()); 
    Verstehst du ungefähr was ich meine? Die richtige Antwort wäre gewesen: in dem genannten Codeblock kommt gar kein String vor. Alle Anführungszeichen, die da drinstehen, sind überflüssig, die meisten sogar falsch.

    Und nun suchst du dir ein Kapitel irgendwo, wo das nochmal richtig erklärt wird. Zum Beispiel das hier, oder das von Kropff. Du sollst das ja verstehen was du da treibst, und nicht 8 Stunden lang herumprobieren.


    Edit: dies hier ist das richtige zum Lesen.
    Zuletzt geändert von ministry; 13.05.2007, 21:43.
    ich glaube

    Kommentar


    • #17
      Super, es klappt! Vielen Dank für deine Erklärung und für deine Hilfe!




      PHP-Code:
      <?
      session_start();
      include 'sessionhelpers.inc.php';

      if (!logged_in())
      {
          echo 'Sie sind nicht eingeloggt.<p />';
      echo '<a href="index.php?section=login">Start</a>';
      exit;
      }
      ?> 


      <?php


      include("dbconnect.php");

      $welche=$_GET["welche"];

      $abfrage 'SELECT * FROM bauteil WHERE NameBauteil LIKE "%' $welche '%"';

      $result mysql_query($abfrage) or die(mysql_error());

      for (
      $i 0$i mysql_num_fields($result); $i++){

      $name[$i]= mysql_field_name($result,$i); // Name des Textfeldes

      echo $name[$i];  

      $zwischen[$i] = $_POST[$name[$i]];  //Post Wert des Textfeldes

      echo $zwischen[$i];  
       
      $aendern "UPDATE bauteil Set $name[$i] = '$zwischen[$i]' WHERE NameBauteil LIKE "%' . $welche . '%"";

      $update mysql_query($aendern) ;

      }

      ?>

      Die Daten wurden geändert.


      <br>

      Kommentar


      • #18
        Argh, hab wieder ein Problem

        Etwas was sonst immer geklappt hat, klappt jetzt irgendwie nicht mehr...und zwar diese Zeile:
        $welche=$_GET["welche"];

        Die Variable "welche" stammt aus der vorherigen php Datei mit der Zuweisung:
        $welche=$_GET['id'];
        und mit dem link Aufruf......&id=bla.

        Normalerweise hat diese Vorgehensweise wirklich immer geklappt aber jetzt siehen meine SQL Anfragen z.B. so aus:
        UPDATE bauteil Set BemessungsfrequenzHz = ' ' WHERE NameBauteil = ''

        dabei sollte zwischen den '....' die ID stehen....ARGHHH

        Kommentar


        • #19
          GET-Variablen werden hinter dem Fragezeichen in der URL übergeben. Wenn diese lautet "id=xyz", dann heißt die Variable wie?

          Kommentar


          • #20
            Die Seite wird mit diesem Link aufgerufen:

            http://****/index.php?section=editie...,5-10-xx0-9000

            auf dieser editieren.php Seite wird zur Probe der korrekte Wert ausgegeben, wird aber nicht wie sonst durch die POST Methode auf der aendern.php transferiert.
            Aber genau so hat es sonst auch immer funktioniert.....l

            Kommentar


            • #21
              Ich verstehe das Problem nicht.
              Was ist wo leer, und wie sieht der entsprechende GET-String bzw. ein var_dump() der POST-Variablen aus?

              Kommentar


              • #22
                diese Variable
                PHP-Code:
                $welche=$_GET["welche"]; 
                auf meiner aendern.php ist leer, liefert nach einem echo $welche keinen Wert zurück. Auf meiner ersten Seite, der editieren.php klappt das WQerteübergeben problemlos. Die editieren.php ruft die aendern.php auf. eine mögliche Belegung wäre z.B. $welche=DT3-0,5-10-xx0-9000.

                Kommentar


                • #23
                  Die editieren.php ruft die aendern.php auf.
                  Wie macht sie das?
                  ich glaube

                  Kommentar


                  • #24
                    Um das ganze mal zu verdeutlichen zeige ich nochmal den Code der editieren.php:
                    (das hidden Feld habe ich erst nach der Feststellung, das das Werteübergeben nicht klappt, hin zu gefügt)
                    PHP-Code:
                    <?
                    session_start();
                    include 'sessionhelpers.inc.php';

                    if (!logged_in())
                    {
                        echo 'Sie sind nicht eingeloggt.<p />';
                    echo '<a href="index.php?section=login">Start</a>';
                    exit;
                    }
                    ?> 

                    <?
                    include("dbconnect.php");

                    echo ' <form action=index.php?section=aendern method="post"> ';
                    echo ' <table border ="0"> ';

                    $welche=$_GET['id'];

                    echo $welche;  

                    $abfrage = 'SELECT * FROM bauteil WHERE NameBauteil LIKE "%' . $welche . '%"';

                    $result = mysql_query($abfrage) or die(mysql_error());

                    $row = mysql_fetch_row($result);



                    for ($i = 0; $i < mysql_num_fields($result); $i++){

                    echo ' <tr> ';
                     echo ' <td>'.mysql_field_name($result,$i).':</td> ';
                          echo ' <td><input type="text" name="'.mysql_field_name($result,$i).'" size="45" value=" ' . $row[$i] . '" > ';

                    echo ' </td> ';
                    echo '</tr> ';

                    }






                    ?>

                    </table>
                    <input type="hidden" name="welche" value="<?php echo $_GET['id'];  ?>">
                     <input type="submit" value="Diese Werte ändern"> 
                      </form>
                    </body> 
                    </html> 

                    </body>
                    </html>

                    Kommentar


                    • #25
                      ... wo ist der Anfang des Formulars geblieben ?
                      ich glaube

                      Kommentar


                      • #26
                        Was meinst du mit Anfang? Die editieren.php wird wiederum aus der bauteildar.php aufgerufen, wenn der Benutzer auf editieren klickt, wird der editieren.php die entsprechende ID per Link übergeben.

                        Kommentar


                        • #27
                          Sorry, hatte mich verguckt...
                          PHP-Code:
                          echo ' <form action=index.php?section=aendern method="post"> '
                          Das Formular geht an die index.php.

                          in dieser sind $_GET['section'] (='aendern') und $_POST['welche'] (= die $_GET['id']) verfügbar.

                          Was ist nun das Problem?

                          Das action-Ziel sollte übrigens in Anführungszeichen.
                          ich glaube

                          Kommentar


                          • #28
                            Das Problem ist, dass der Wert von $welche auf der anedern.php (section=aendern) der vorher noch auf der der editieren.php vorhanden war, nun nicht mehr vorhanden ist! Warum auch immer. Die Variable hat einfach keinen Wert und das ist mir völlig unbegreiflich

                            Kommentar


                            • #29
                              also, in der index wird aendern.php included, ja?

                              dann mach mal in die aendern.php an den anfang:

                              PHP-Code:
                              echo("dies sind die GETs:<pre>");
                              var_dump($_GET);
                              echo(
                              "</pre> und hier sind die POSTs:<pre>");
                              var_dump($_POST);
                              echo(
                              "</pre>"); 
                              ich glaube

                              Kommentar


                              • #30
                                Hier meine Ausgabe (wie du siehst ist der Wert von "welche" korrekt, aber er taucht trotzdem in keinem der SQL Aufrufe auf...):

                                EDIT: ich glaube ich hab den Fehler...das muss $_POST('welche') heißen! Vielen Dank für deine Mühen und für deine Hilfe!

                                dies sind die GETs:

                                array(1) {
                                ["section"]=>
                                string(7) "aendern"
                                }

                                und hier sind die POSTs:

                                array(39) {
                                ["Projekt"]=>
                                string(1) " "
                                ["Kategorie"]=>
                                string(1) " "
                                ["Lastminus"]=>
                                string(1) " "
                                ["Last0"]=>
                                string(1) " "
                                ["Lastplus"]=>
                                string(1) " "
                                ["Lebensdauer"]=>
                                string(1) " "
                                ["InstandsetungsEmpfehlung"]=>
                                string(1) " "
                                ["NameBauteil"]=>
                                string(20) " DT3-0,5-10-xx0-9000"
                                ["Hersteller"]=>
                                string(13) " AMK-Antriebe"
                                ["Motorart"]=>
                                string(14) " Synchronmotor"
                                ["Schutzklasse"]=>
                                string(6) " IP 65"
                                ["Isolierklassee"]=>
                                string(1) " "
                                ["Kuehlungsart"]=>
                                string(19) " konvektionsgek?hlt"
                                ["Beschreibung"]=>
                                string(42) " Servomotor, Hightorquemotoren Baureihe DT"
                                ["LeistungkW"]=>
                                string(5) " 0,28"
                                ["BemessungsspannungV"]=>
                                string(2) " 0"
                                ["BemessungsfrequenzHz"]=>
                                string(1) " "
                                ["BemessungsdrehmomentNm"]=>
                                string(5) " 0,45"
                                ["BemessungsdrehzahlUmin"]=>
                                string(5) " 6000"
                                ["BemessungsstromA"]=>
                                string(5) " 0,73"
                                ["Einspeisungsart"]=>
                                string(1) " "
                                ["DauerstillstandsmomentNm"]=>
                                string(4) " 0,5"
                                ["MaximalmomentNm"]=>
                                string(4) " 1,6"
                                ["AnlaufmomentNmAnzugsmoment"]=>
                                string(1) " "
                                ["SattelmomentNm"]=>
                                string(1) " "
                                ["KippmomentNm"]=>
                                string(1) " "
                                ["MaximaldrehzahlUmin"]=>
                                string(7) " 10.000"
                                ["GrenzdrehzahlfconstPn"]=>
                                string(2) " 0"
                                ["Leerlaufdrehzahl"]=>
                                string(2) " 0"
                                ["DauerstillstandstromA"]=>
                                string(4) " 0,8"
                                ["MaximalstromA"]=>
                                string(4) " 3,1"
                                ["AnlaufstromA"]=>
                                string(1) " "
                                ["Leerlaufstrom"]=>
                                string(1) " "
                                ["zulaessigerSpitzenstrom"]=>
                                string(2) " 0"
                                ["Entmagnetisierungsstrom"]=>
                                string(1) " "
                                ["DrehmomentkonstanteNmA"]=>
                                string(5) " 0,62"
                                ["Leistungsfaktor"]=>
                                string(1) " "
                                ["Wartung"]=>
                                string(27) " weitestgehend Wartungsfrei"
                                ["welche"]=>
                                string(19) "DT3-0,5-10-xx0-9000"
                                }

                                SELECT * FROM bauteil WHERE NameBauteil LIKE "%%"Resource id #11Projekt UPDATE bauteil Set Projekt = ' ' WHERE NameBauteil = ''Kategorie UPDATE bauteil Set Kategorie = ' ' WHERE NameBauteil = ''Lastminus UPDATE bauteil Set Lastminus = ' ' WHERE NameBauteil = ''Last0 UPDATE bauteil Set Last0 = ' ' WHERE NameBauteil = ''Lastplus UPDATE bauteil Set Lastplus = ' ' WHERE NameBauteil = ''Lebensdauer UPDATE bauteil Set Lebensdauer = ' ' WHERE NameBauteil = ''InstandsetungsEmpfehlung UPDATE bauteil Set InstandsetungsEmpfehlung = ' ' WHERE NameBauteil = ''NameBauteil DT3-0,5-10-xx0-9000UPDATE bauteil Set NameBauteil = ' DT3-0,5-10-xx0-9000' WHERE NameBauteil = ''Hersteller AMK-AntriebeUPDATE bauteil Set Hersteller = ' AMK-Antriebe' WHERE NameBauteil = ''Motorart SynchronmotorUPDATE bauteil Set Motorart = ' Synchronmotor' WHERE NameBauteil = ''Schutzklasse IP 65UPDATE bauteil Set Schutzklasse = ' IP 65' WHERE NameBauteil = ''Isolierklassee UPDATE bauteil Set Isolierklassee = ' ' WHERE NameBauteil = ''Kuehlungsart konvektionsgek?hltUPDATE bauteil Set Kuehlungsart = ' konvektionsgek?hlt' WHERE NameBauteil = ''Beschreibung Servomotor, Hightorquemotoren Baureihe DTUPDATE bauteil Set Beschreibung = ' Servomotor, Hightorquemotoren Baureihe DT' WHERE NameBauteil = ''LeistungkW 0,28UPDATE bauteil Set LeistungkW = ' 0,28' WHERE NameBauteil = ''BemessungsspannungV 0UPDATE bauteil Set BemessungsspannungV = ' 0' WHERE NameBauteil = ''BemessungsfrequenzHz UPDATE bauteil Set BemessungsfrequenzHz = ' ' WHERE NameBauteil = ''BemessungsdrehmomentNm 0,45UPDATE bauteil Set BemessungsdrehmomentNm = ' 0,45' WHERE NameBauteil = ''BemessungsdrehzahlUmin 6000UPDATE bauteil Set BemessungsdrehzahlUmin = ' 6000' WHERE NameBauteil = ''BemessungsstromA 0,73UPDATE bauteil Set BemessungsstromA = ' 0,73' WHERE NameBauteil = ''Einspeisungsart UPDATE bauteil Set Einspeisungsart = ' ' WHERE NameBauteil = ''DauerstillstandsmomentNm 0,5UPDATE bauteil Set DauerstillstandsmomentNm = ' 0,5' WHERE NameBauteil = ''MaximalmomentNm 1,6UPDATE bauteil Set MaximalmomentNm = ' 1,6' WHERE NameBauteil = ''AnlaufmomentNmAnzugsmoment UPDATE bauteil Set AnlaufmomentNmAnzugsmoment = ' ' WHERE NameBauteil = ''SattelmomentNm UPDATE bauteil Set SattelmomentNm = ' ' WHERE NameBauteil = ''KippmomentNm UPDATE bauteil Set KippmomentNm = ' ' WHERE NameBauteil = ''MaximaldrehzahlUmin 10.000UPDATE bauteil Set MaximaldrehzahlUmin = ' 10.000' WHERE NameBauteil = ''GrenzdrehzahlfconstPn 0UPDATE bauteil Set GrenzdrehzahlfconstPn = ' 0' WHERE NameBauteil = ''Leerlaufdrehzahl 0UPDATE bauteil Set Leerlaufdrehzahl = ' 0' WHERE NameBauteil = ''DauerstillstandstromA 0,8UPDATE bauteil Set DauerstillstandstromA = ' 0,8' WHERE NameBauteil = ''MaximalstromA 3,1UPDATE bauteil Set MaximalstromA = ' 3,1' WHERE NameBauteil = ''AnlaufstromA UPDATE bauteil Set AnlaufstromA = ' ' WHERE NameBauteil = ''Leerlaufstrom UPDATE bauteil Set Leerlaufstrom = ' ' WHERE NameBauteil = ''zulaessigerSpitzenstrom 0UPDATE bauteil Set zulaessigerSpitzenstrom = ' 0' WHERE NameBauteil = ''Entmagnetisierungsstrom UPDATE bauteil Set Entmagnetisierungsstrom = ' ' WHERE NameBauteil = ''DrehmomentkonstanteNmA 0,62UPDATE bauteil Set DrehmomentkonstanteNmA = ' 0,62' WHERE NameBauteil = ''Leistungsfaktor UPDATE bauteil Set Leistungsfaktor = ' ' WHERE NameBauteil = ''Wartung weitestgehend WartungsfreiUPDATE bauteil Set Wartung = ' weitestgehend Wartungsfrei' WHERE NameBauteil = '' Die Daten wurden geändert.
                                Zuletzt geändert von JCDenton; 14.05.2007, 13:34.

                                Kommentar

                                Lädt...
                                X