Ankündigung

Einklappen
Keine Ankündigung bisher.

array_unique Problem

Einklappen

Neue Werbung 2019

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

  • array_unique Problem

    Hey

    nachdem ich mich einige zeit durch CSS und noch einige Bereiche von PHP
    gewühlt habe, sieht meine seite mitlerweile ganz gut aus

    leider habe ich ein problem mit der Abfrage aus einer datenbank:

    (Der folgende Code ist nur eine vereinfachung des eigentlichen codes)
    PHP-Code:
    //Prüfen ob im Link ein Film angegeben wurde
    if (!isset($_GET["film"]))
    {
    $alleFilme "SELECT Filmtitel FROM formularsuche";
    $alleFilme_erg mysql_query$alleFilme );
    $row1 mysql_fetch_array($alleFilme_ergMYSQL_BOTH);
    $row2 array_unique($row1);
    for(
    $i 0$i count($row2); ++$i)
        {
        echo 
    "$row2[$i]";
        }

    das problem ist einfach, dass es doppelte einträge im Formular "formularsuche" in der Spalte "Filmtitel" geben wird, und ich diese einfach
    überspringen möchte
    Habe schon mit for, while und foreach schleifen rumprobiert, leider
    gibt er meist nur einen Film an, die anderen werden nicht ausgegeben

    hoffe jemand hat den entscheidenden ratschlag

    gruß Kaito

  • #2
    - [man]mysql_fetch_array[/man] holt einen Datensatz ab, das Array enthält alle Datenfelder des Datensatzes die du selektiert hast.
    - SELECTs ohne LIMIT-Angabe können schnell ins Auge gehen, besser dort schon Pagination denken und bspw. maximal 25 Datensätze abholen.
    - MYSQL_BOTH zeugt irgendwo von Shizophrenie, das Engelchen auf der linken Schulter will die Datenbankfelder als Index, das Teufelchen auf der rechten Schulter will numerische Indexes.
    - Wenn du doppelte Einträge nicht darstellen willst solltest du DISTINCT nutzen. ( Hier lesen gehen )

    Kommentar


    • #3
      oder er sollte das ganze mit einer while-schleife lösen:
      PHP-Code:
      while($row mysqli_fetch_assoc($result))
          {
              foreach(
      $row as $value)
              {
                  
      $array[] = $value;
              }
          }
          
      $array array_unique($array); 
      oder halt ähnlich

      Kommentar


      • #4
        Warum mehr selektieren als man eigentlich brauch .. ?

        Kommentar


        • #5
          ja, das stimmt natürlich. das erhöht den traffic und schadet bei großen datenmengen der performance, bei kleineren ist es allerdings weitgehend egal.

          Kommentar


          • #6
            danke tr0y es läuft

            Kommentar


            • #7
              Zitat von maxorxy Beitrag anzeigen
              ja, das stimmt natürlich. das erhöht den traffic und schadet bei großen datenmengen der performance, bei kleineren ist es allerdings weitgehend egal.
              In etwa vergleichbar mit 20 mysql_fetch_array untereinander schreiben statt schleifen zu benutzen - nicht egal, wenn dann richtig.

              Kommentar


              • #8
                ja das habe ich aber nicht gemeint, ich meinte, dass es dann von der performance egal ist, dass man es wenn dann richtig machen sollte ist ja klar

                Kommentar


                • #9
                  vielleich noch eine kurze Frage ! (dann muss ich dafür nicht
                  extra einen neuen threat eröffnen )

                  ich würde user gerne comments schreiben lassen,
                  sollte ich diese eher in einer datei oder eher in einer datenbank speichern?

                  Kommentar


                  • #10
                    Hi,

                    sollte ich diese eher in einer datei oder eher in einer datenbank speichern?
                    Datenbank. Da du anscheinend Erweiterungen planst, bietet sich ein Datenbank deutlich besser an, als ein Textdatei. Zudem lässt es sich besser verwalten. Hier ein kleines tut, wie man mit Datenbanken (MySQL) arbeitet:

                    http://www.php-kurs.com/mysql-datenbank-auslesen.htm

                    ..siehe das Menü links.

                    mfg Wolf29

                    Kommentar


                    • #11
                      da du schon ne Datenbank hast - neue Tabelle ->
                      id -> primary key, auto_increment
                      user_id integer
                      film_id integer
                      kommentar text oder für die Romanschreiber mediumtext

                      Kommentar


                      • #12
                        bin zwar noch anfänger mit datenbanken, aber ein wenig kenn ich mich
                        bereits aus ^^

                        auf jeden fall danke wolf29

                        (auch an eagle275)

                        besonders für die schnellen antworten!

                        Kommentar


                        • #13
                          A Comment should (n)ever able to carry the hole series of Harry Potter without hitting its storage quota.

                          medium-text~ wie wärs direkt mit (long)BLOB ? oO

                          Kommentar


                          • #14
                            In ein Blob passt halt einfach nicht soviel .

                            edit sagt:
                            nacher noch ein (long) rein bringen ist auch geschummelt

                            Kommentar


                            • #15
                              tja - laut mysql-Handbuch long-blob = 2^32 - text=32768 (bei 2 Byte pro Zeichen UTF-

                              Kommentar

                              Lädt...
                              X