implode / explode

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

  • implode / explode

    Hab da mal ne bloede frage =)

    PHP-Code:

    mysql_select_db
    MYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
    $news_sql "SELECT favoritengames FROM user WHERE benutzername='$benutzername'";
    $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
    while (
    $row mysql_fetch_array($news_resultMYSQL_NUM)){
    $favoriten[] = $row[0];}

    // Da lese ich die Favoriten aus die im Format: "1,2,12,28" gespeihcert sind

    $favoritengeordnet explode(","$favoriten[0]);

    // hier baue ich den String "1,2,12,28" in vier einzelteile also
    // [0] = 1 
    // [1] = 2 
    // [2] = 12 
    // [3] = 28 

    $favoritenneu implode(" or "$favoritengeordnet);

    // [B]hier ist der fehler[/B] 
    // will hier den string wieder zusammensetzen das "1 or 2 or 12 or 28" bei raus kommt
    // es kommt aber immer nur "1" dabei raus

    // also echo '$favoritenneu[0]'; == 1
    // sollte aber "1 or 2 or 12 or 28" sein

    ich möchte das ergebniss gerne in ne MySQL abfrage haben zB.
    WHERE kategorie='$favoritenneu[0]' 
    Zuletzt geändert von owi; 14.10.2008, 06:54.

  • #2
    wenn du implode auf einen array anwendest kommt ein string dabei heraus.
    wenn du dann mit "WHERE kategorie='$favoritenneu[0]'" auf den string zugreifst wird nur das erste zeichen behandelt.

    "WHERE kategorie='$favoritenneu'" ist richtig
    it's not a bug,
    it's a feature!

    Kommentar


    • #3
      Danke, das Problem oben habe ich gerade gelöst nur jetzt komm ich bei der MySQL abfrage nicht weiter...

      Fehler = Fehler 3: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='4' OR '5' OR '8' OR '6' ORDER BY postdatum DESC' at line 1

      PHP-Code:
      mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
      $news_sql "SELECT favoritengames FROM user WHERE benutzername='$benutzername'";
      $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
      while (
      $row mysql_fetch_array($news_resultMYSQL_NUM)){
      $favoriten[] = $row[0];}

      $favoritengeordnet explode(","$favoriten[0]);

      $favoritenneu[0] = implode("' OR '"$favoritengeordnet);

      $fav[0] = '\'';
      $fav[1] = $favoritenneu[0];
      $fav[2] = '\'';

      $fav2[0] = implode(""$fav);

      $fav3 $fav2[0]; 


      PHP-Code:
      mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
      $news_sql "SELECT titel FROM WHERE id=$fav3 ORDER BY postdatum DESC";
      $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
      while (
      $row mysql_fetch_array($news_resultMYSQL_NUM)){
      $titel[] = $row[0];} 
      WHERE id='4' OR '5' OR '8' OR '6'

      geht scheinbar nicht =((((

      hat wer nen Tipp für mich ?

      Das \ zum maskieren hat das board wohl raus genommen ist im script auf jedenfall drin
      Zuletzt geändert von owi; 14.10.2008, 07:41.

      Kommentar


      • #4
        entweder
        WHERE id='4' OR id='5' OR id='8' OR id='6'

        oder WHERE id IN (4,5,8,6)
        it's not a bug,
        it's a feature!

        Kommentar


        • #5
          danke danke danke =)

          Kommentar


          • #6
            bitteschön. sind aber eigentlich grundlagen
            it's not a bug,
            it's a feature!

            Kommentar


            • #7
              mh....

              Bei WHERE id IN (4,5,8,6) kommt:

              error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id IN (4,5,8,6) ORDER BY postdatum DESC' at line 1

              PHP-Code:
              mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
              $news_sql "SELECT favoritengames FROM user WHERE benutzername='$benutzername'";
              $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
              while (
              $row mysql_fetch_array($news_resultMYSQL_NUM)){
              $favoriten[] = $row[0];}

              // $favoriten[0] == 4,5,8,6

              $fav $favoriten[0];

              mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
              $news_sql "SELECT titel FROM WHERE id IN ($fav) ORDER BY postdatum DESC";
              $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
              while (
              $row mysql_fetch_array($news_resultMYSQL_NUM)){
              $titel[] = $row[0];} 
              Bei WHERE id='4' OR id='5' OR id='8' OR id='6' kommt:

              error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='4' OR id='5' OR id='8' OR id='6' ORDER BY postdatum DESC' at line 1



              PHP-Code:
              mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
              $news_sql "SELECT favoritengames FROM user WHERE benutzername='$benutzername'";
              $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
              while (
              $row mysql_fetch_array($news_resultMYSQL_NUM)){
              $favoriten[] = $row[0];}

              $favoritengeordnet explode(","$favoriten[0]);

              $favoritenneu[0] = implode("' OR id='"$favoritengeordnet);

              $favx $favoritenneu[0];

              $fav[0] = '\''// ist maskiert zeigt das forum nur nicht an
              $fav[1] = $favoritenneu[0];
              $fav[2] = '\''// ist maskiert zeigt das forum nur nicht an

              $fav2[0] = implode(""$fav);

              $fav3 $fav2[0];

              // fav3 == '4' OR id='5' OR id='8' OR id='6' 

              mysql_select_dbMYSQL_DATENBANK ) or die("Auswahl der Datenbank fehlgeschlagen");
              $news_sql "SELECT titel FROM WHERE id=$fav3 ORDER BY postdatum DESC";
              $news_result mysql_query($news_sql) or die('Fehler 3: '.mysql_error());
              while (
              $row mysql_fetch_array($news_resultMYSQL_NUM)){
              $titel[] = $row[0];} 
              Zuletzt geändert von owi; 14.10.2008, 18:21.

              Kommentar


              • #8
                Bei WHERE id IN (4,5,8,6) kommt: error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id IN (4,5,8,6) ORDER BY postdatum DESC' at line 1
                Poste die VOLLE QUERY!

                Bei WHERE id='4' OR id='5' OR id='8' OR id='6' kommt: error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE id='4' OR id='5' OR id='8' OR id='6' ORDER BY postdatum DESC' at line 1
                Poste die VOLLE QUERY!

                Bei einer MYSQL-Fehlermeldung hat PHP-Code NICHTS zu suchen!

                Kommentar


                • #9
                  SELECT titel FROM WHERE

                  Ja from welcher Tabelle wollen wir denn selecten?

                  Kommentar


                  • #10
                    ok das war doch nen ziemlich ziemlich dummer fehler =)

                    muss mir wohl beim ganzen hin und her editieren irgendwann mal abhanden gekommen sein ... das mir das nicht selber aufgefallen ist *grml

                    danke

                    Kommentar

                    Lädt...
                    X