Ankündigung

Einklappen
Keine Ankündigung bisher.

String löschen in Variable

Einklappen

Neue Werbung 2019

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

  • String löschen in Variable

    Hallo,
    ich habe ein Auswahlmenü wo man sich Musiktracks auswählen kann. enn man etwas ausgewählt hat, steht dann in der Variable der Inhalt "Track 1", "Track 2" bzw. "Track 3". Alles schön und gut.

    Wenn ich einen DB-Eintrag mache, will ich in der Datenbank jedoch nicht "Track 1" usw. hinerinspeichern, sondern nur die "1", "2" bzw. die "3".

    Gibt es so etwas wie eine Funktion, mit der man sagt:
    wenn $musik den String "Track " enthält, dann bitte diesen löschen, so dass aus "Track 1" eine "1" wird?

    Dankeschön!


  • #2
    PHP-Code:
    <?php
    if (strpos($musik'Track ') === 0$musik $musik[6];
    ?>

    Kommentar


    • #3
      Danke, Karl!

      Jedoch folgende nicht-nachvollziehbare Fehlermeldung:
      Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /homepages/7/.../eintragen2b.php on line 39

      Line 39 ist die if-Zeile. Ich habe auch folgendes gemacht:

      PHP-Code:
      <?php
      if*
      (strpos($musik,*'Track*')*===*0)
      {
      $musik*=*$musik[6];
      }
      ?>
      Hat aber auch nicht geholfen Was bedeuet die 6 in $musik[6]?

      Kommentar


      • #4
        Der von dir gepostete Bereich bringt keinen Fehler.
        Der Fehler muss davor liegen.

        Vielleicht kann man das Problem aber gleich umgehen bevor es entsteht.
        Wenn du sagst du hast ein Auswahlmenü, dann kannst du doch gleich die Variablen passend übergeben.

        Z.B. bei einer Liste (da ich nicht weiß wie dein Menü aussieht):

        <select>
        <option value="1">Track1</option>
        <option value="2">Track2</option>
        ....

        </select>

        Und schon hast du nur die Zahlen übergeben.

        Kommentar


        • #5
          Doch, oben aufgeführte Fehlermeldung erscheint. Kein Scherz.

          So einfach geht das nicht, da die Werte auch aus der DB geholt werden. Hier der Code:
          PHP-Code:
          <?php
          <select name="musik" style="width:150px;">
          <
          option>auswaehlen</option>
          <?
          php 
          $result
          mysql_query("SELECT musikid FROM musik order by musikid ASC");
          while (
          $row mysql_fetch_object($result)) 
          {
          print 
          "<option value=".$row->primary_key.">"."Track ".$row->musikid."</option>";
          }
          ?>
          </select>

          ?>
          Wenn es damit irgendwie geht, dann bitte wie?

          1001 Dank,
          Gruss!

          Kommentar


          • #6
            nimm lieber das:
            PHP-Code:
            <?php
            $musik 
            substr($musik6strlen($musik));
            ?>
            statt:
            PHP-Code:
            <?php
            $musik 
            $musik[6];
            ?>
            funzt sonst nur bei einstelligen zahlen

            zu deinem problem: wie sieht deine vorige zeile aus (...; ?)

            Kommentar


            • #7
              Hallo,
              da ich mit Sessions arbeite, ist auf Seite 1 der Code den ich oben gepostet habe. Also das ganze mit der Auswahlliste.

              Auf Seite 2 habe ich dann jetzt diesen Code:
              PHP-Code:
              <?php
              if*
              (strpos($musik,*'Track*')*===*0)
              {
              $musik*=*substr($musik,*6,*strlen($musik)); 
              }
              ?>
              Und da bei Seite 2 erscheint obenaufgeführte Fehlermeldung, dass in der if-Zeile ein Fehler ist. Der Code soll die Variable $musik welches z.B. "Track 1" auf Seite 1 enthält, bei Seite 2 in "1" umwandeln.

              Danke und hoffe es wurde verstanden was ich will )

              Gruss!

              Kommentar


              • #8
                In der Zeile ist aber kein fehler, kannst du überprüfen indem du nur deinen geposteten Code alleine in eine Datei schreibst.

                Der Fehler muss davor irgendwo liegen und wirkt sich dann in der Zeile aus. Deshalb poste doch bitte den Code davor.

                damit:

                PHP-Code:
                <?php 
                <select name="musik" style="width:150px;"
                <
                option>auswaehlen</option
                <?
                php  
                $result
                mysql_query("SELECT musikid FROM musik order by musikid ASC"); 
                while (
                $row mysql_fetch_object($result))  

                print 
                "<option value=".$row->primary_key.">"."Track ".$row->musikid."</option>"

                ?> 
                </select> 


                ?>
                damit hast du doch schon die musikid ohne track in der variable $_POST['musik']. Wozu das ganze also noch?

                Kommentar


                • #9
                  so könnte dein fehler z.b. entstehen
                  PHP-Code:
                  <?php
                  $musik 
                  'Track 13''';
                  ?>
                  oder so:
                  PHP-Code:
                  <?php
                  $musik 
                  'Track 13'1.'';
                  ?>
                  aber wie du das mit meiner anweisung schaffen willst

                  Zitat von esmeralda
                  Danke und hoffe es wurde verstanden was ich will )
                  das wurde es

                  /edit:
                  und noch ein beispiel:
                  PHP-Code:
                  <?php
                  $musik 
                  '
                  if (true) echo '';
                  echo '';
                  ?>

                  Kommentar


                  • #10
                    He?
                    Sorry, aber glaube wirklich dass ich nicht verstanden wurde.

                    Also in der Variable würde nur die id stehen, wenn ich nicht extra noch "Track*" einfügen würde. Das mache ich aber, weil ich nicht will, dass in der Auswahlliste nur 1, 2, 3 usw. steht. Wenn ich aber den DB-Eintrag mache, sollte aber nur 1, 2, 3 usw. in der Variable stehen.

                    Was genau muss ich denn jetzt machen?

                    Vor diesem Code ist kein anderer PHP-Code, da wie schon gesagt ich mit Sessions arbeite, und dieser Code auf Seite 2 ist. Und auf Seite 1 erscheint ja keine Fehlermeldung. Der Code zu Seite ist oben.

                    Danke noch mal,
                    Gruss!

                    Kommentar


                    • #11
                      Ich glaube du verstehst nicht wie das Formularfeld funktioniert. Oder wir reden wirklich aneinander vorbei.

                      Im Originalformular steht:

                      <option value="34">Track 34</option>

                      Das heißt für den Benutzer steht im Auswahlfeld 'Track 34'. An das Script übertragen wird nur die Nummer 34. Diese Kannst du also direkt in die Datenbank reinschreiben.
                      Wo und wie musst du denn jetzt nochmal "Track" an die Variable dranhängen?



                      Wegen dem PHP Fehler: Poste doch einfach den kompletten Code deiner Seite2 von Zeile 1 bis Zeile X, dann kann dein Problem sicher gelöst werden.

                      Kommentar


                      • #12
                        Hallo,
                        ich befürchte wir reden aneinander vorbei :wink:

                        Jetzt aber:
                        Wenn das Auswahlmenü nicht dynamisch von der Datenbank geladen würde, wäre es sicherlich kein Problem, das so zu schreiben wie Du meinst. Also:

                        Code:
                        <option value="34">Track 34</option>
                        Die Werte werden aber dynamisch von der DB geladen. Siehe dazu Code oben. Es wird die "id"-Spalte geladen. Weil ich es aber nicht schön finde wenn im Auswahlmenü nur 1, 2, 3, usw. steht, habe ich einfach den String "Text " davor platziert. Nur kommt dieser String auch in die Variable. Das will ich aber nicht, da ich die id in DB schreiben will, und das nicht geht wenn da "Track 1" steht.

                        Hoffe man hat mich jetzt verstanden. Im Prinzip ist das nur ein Schönheitsfehler, damit nicht nur 1, 2, 3 usw. im Auswahlmenü stehen.

                        Und noch mal: PHP-Code vor der Zeile mit dem Fehler gibt es nicht.

                        Danke,
                        Gruss!

                        Kommentar


                        • #13
                          man hat dich die ganze zeit verstanden!

                          wofür setzt du denn im <option>-tag value="x", weil es schön aussieht???
                          nein, um ihm den Wert x zuzuweisen.

                          Also:
                          Code:
                          <select name="select1"
                            <option value="1">hier kann stehen, was will, es wird immer der wert '1' übergeben</option>
                          </select>
                          Ergebnis (nach abgeschicktem formular) ist $_POST['select1'] = 1.

                          P.S.: so langsam beginne ich an deiner signatur zu zweifeln - auf das alles hätte man irgendwie auch selber kommen können (probieren/selfhtml/...)

                          Zitat von esmeralda
                          Und noch mal: PHP-Code vor der Zeile mit dem Fehler gibt es nicht.
                          Dann könntest du ja dein Skript mal Posten, der Fehler kann - meiner Ansicht nach - nicht durch diese Anweisung hervorgerufen werden.

                          Kommentar


                          • #14
                            Hmm?
                            Was für ein X im Option-Tag? Mein Code den ich gepostet habe, sieht so aus:
                            PHP-Code:
                            <?php
                             
                            <select name="musik" style="width:150px;">
                            <
                            option>auswaehlen</option>
                            <?
                            php 
                            $result
                            mysql_query("SELECT musikid FROM musik order by musikid ASC");
                            while (
                            $row mysql_fetch_object($result)) 
                            {
                            print 
                            "<option value=".$row->primary_key.">"."Track ".$row->musikid."</option>";
                            }
                            ?>
                            </select>
                            ?>
                            Als value setze ich die id-Spalte, und im Tag drinne den String "Track" + die id-Spalte. Trotzdem wird bei der Übergabe "Track 1" übergeben.

                            Wer kann mir helfen? Total verzweifelt.

                            Danke!

                            Kommentar


                            • #15
                              dann führ doch bitte mal deine versuche auf
                              1) ausgabe von $_POST['musik'], ich würd gerne mal das script sehen, wo da als ergebnis "Track x" steht
                              2) wenn da dann wirklich "Track x" steht, bitte das andere script posten, worum du schon mehrfach gebeten wurdest

                              wenn du willst, dass dir hier jemand weiterhilft, würde ich das wirklich mal machen [und nicht wie zuvor jeden tipp und jede aufforderung ignorieren], und auch nicht immer deinen ersten Post umformuliert wiederholen

                              ich habe dich verstanden [und wohl auch jeder andere (gesetzt der fall, du meinst auch a wenn du a sagst und nicht b)]

                              Kommentar

                              Lädt...
                              X