CSV/XML Produktdaten

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

  • CSV/XML Produktdaten

    Hallo Leute,

    ich suche schon seit Wochen nach einem Script oder einem Tutorial, wie ich "CSV/XML Produktdaten" von meinen Advertisern, auf meine Homepage bekomme. Ich bin auch bereit für Support zu Zahlen.

    Leider vergeblich, egal auf welche Forenbeiträge (die schon einige Jahre alt waren, zudem die scripte fehlerhaft waren(oder ich habe es nicht hinbekommen)) ich gestoßen bin, wirklich weiter gekommen bin ich nicht. Ich habe wirklich viele Foren durchsucht, viele Wörterkombinationen in Google eingegeben, es ist einfach zum verzweifeln...

    Vorab möchte ich sagen, das ich Html- und css Kenntnisse habe.

    In phpmyadmin Tabellen erstellen, in PHP mit Datenbanken eine Verbindung aufbauen, habe ich hinbekommen.

    Auch habe ich es geschafft eine CSV Datei in eine Datenbanktabelle einzuspielen und den Inhalt auf meine Homepage zu bekommen. (Leider fehlerhaft, url der Bilder wurden angezeigt, statt die Bilder selbst)

    Nun zu meinen Fragen:

    1. Wie bekomme ich es hin, den gesamten Inhalt einer CSV Datei (Größer als 2MB) über PHP in meine Datenbank einzuspielen?

    2. Den gesamten Inhalt einer CSV Datei, auf meine Homepage auslesen, sodass alles (inkl. der Bilder) angezeigt wird.

    3. Ich einen/mehrere Filter einbauen kann (Sortieren nach...) und per css den Inhalt auch formatieren kann.

    Ich bitte Euch um Hilfe, ich bin schon so verzweifelt. Ich zahle auch gerne für guten Support.

    Gruß

    Isi

  • #2
    Zitat von isi1985 Beitrag anzeigen
    Vorab möchte ich sagen, das ich Html- und css Kenntnisse habe.
    Wenn ich den nächsten Satz lese, so erweckt das eher den Eindruck, als würden diese Kenntnisse vollständig fehlen.

    Zitat von isi1985 Beitrag anzeigen
    (Leider fehlerhaft, url der Bilder wurden angezeigt, statt die Bilder selbst)
    Du müsstest die Ausgabe der Image-URIs schon in Image-Tags einfügen, was ja kein Problem für Dich sein sollte, wenn Du HTML- und CSS-Kenntnisse besitzt.

    HTML-Code:
    <img src="URL" ... >
    Einfach mal in den Quelltext schauen, dann siehst Du ja, warum die Image-URL ausgegeben wird, statt den Bildern.

    Kommentar


    • #3
      Hallo Melewo,

      PHP-Code:
      include("head.php");

      $abfrage mysql_query("SELECT * FROM `test`");

                
      /* solang mysql_fetch_assoc() eine Zeile (row) aus der Resource "ziehen" kann ist $row jeweils eine Zeile aus der Datenbank. Und es werden nun einige Elemente des Arrays ausgegeben */
      while($row mysql_fetch_assoc($abfrage)) {
           echo 
      "<b>$row[Deeplink1] $row[ImageMediumUR]   $row[ProductCategoryID]   $row[ProductCategoryName]     $row[ShopCategoryID]    $row[PricePrefix]                                </b><br />
                
                <br />\n\n"
      ;     

      Angezeigt wird:

      ImageMediumURL http://ad.zanox.com/ppc/?24093145C1045495526&ULP=[[719154a858e2ba4abab64184fd feminin taillierte Passform; Rückenlänge bei Größe 36 ca. 65 cm leicht elastische Baumwollmisch mit dieser eleganten Bluse sind Sie immer perfekt


      Ich weiß ja wie ich Bilder in meine hp bekomme (in html), aber das o.g Beispiel ist ja PHP. In dem Fall bitte ich ja den Server mir den Inhalt der Tabelle anzuzeigen. Wie kann ich das richtig anzeigen lassen? Also formatiert und mit dem Bild, statt der url?

      Kommentar


      • #4
        Zitat von isi1985 Beitrag anzeigen
        Ich weiß ja wie ich Bilder in meine hp bekomme (in html), aber das o.g Beispiel ist ja PHP.
        Ja und? Es gibt trotzdem HTML-Code aus, bspw. das <b> im gezeigten Schnippsel. Also wo ist das Problem, es analog ein <img> Element ausgeben zu lassen?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Danke erstmal für deine Hilfe.

          Also ich denke, ich komme der sache näher.

          Wo genau muss ich <img src=""> einfügen?

          Ich habs so probiert: <img src= "$row[ImageMediumURL]">

          Hat aber nicht geklappt.

          Noch ne Frage:

          wenn ich in der CSV Datei Spalten habe, also Spalte "a", "b", "c", muss ich in mer db Tabelle die gleichen Spalten errichten?

          Vielen vielen Dank euch beiden.

          Kommentar


          • #6
            Habe mal ein altes, von mir nicht benutztes Script herausgesucht, nur von MySQL auf MySQLi geändert und für den Anfang überflüssige Teile entfernt. In einer Testumgebung funktioniert es, geht aber sicherlich noch besser, doch zum Testen sollte es für Dich für den Anfang erst einmal genügen. Alles was "..." 3 Punkte hat, das musst Du gegen Deine Zugangsdaten ersetzen.

            Bei Image würden eigentlich noch die Attribute width="" und height="" fehlen, weiß jetzt aber nicht mehr, wie es in der CSV aussieht, ob die da enthalten sind (die CSV liegt seit 4 oder 5 Jahren unbenutzt in einer DB, vielleicht hat sich zwischenzeitlich etwas geändert mit den Feldern), ansonsten müsste Images erst geprüft werden. Musst halt mal schauen. Sehe erst einmal zu, dass Du soweit kommst, dann sehen wir vielleicht weiter.

            PHP-Code:
            <!doctype html>
            <html>

            <head>
            <title>Titel</title>
            </head>

            <body>
            <table style="width:80%; border:1px solid #862000; margin:auto">

            <?php
            $key 
            "leuchte";  // Eigentlich ein vom Formular übergebener Suchbegriff

            $sql mysqli_connect("...""...""...""...");

            if (!
            $sql) {die('Fehler: '.mysqli_connect_errno());
            }

            if (
            $result mysqli_query($sql"SELECT * FROM ... WHERE ProductName LIKE '%".$key."%' LIMIT 0, 20")) {

                while (
            $row mysqli_fetch_assoc($result)) {

                    echo 
            "<tr><td><img src=\"".htmlspecialchars($row["ImageMediumURL"])."\" alt=\"Produktbild\"></td>".
                    
            "<td><b>".htmlspecialchars($row["ProductName"])."</b><br>".
                    
            htmlspecialchars($row["CurrencySymbolOfPrice"])." ".
                    
            htmlspecialchars($row["ProductPrice"])."<br>".
                    
            "Beischreibung: ".htmlspecialchars($row["ProductShortDescription"]).
                    
            htmlspecialchars($row["ProductLongDescription"])."<br>\n".
                    
            "<br><a href=\"".htmlspecialchars($row["ZanoxProductLink"])."\">Produktlink</a></td></tr>\n";
                }
                
            mysqli_free_result($result);
            }
            mysqli_close($sql);
            ?>
            </table>
            </body>
            </html>

            Kommentar


            • #7
              @Melewo,

              Ich bin positiv überrascht. Hatte nicht damit gerechnet, dass mir jemand helfen wird...

              Hab das mal ausprobiert:
              PHP-Code:

              <?php
              include("head.php");

              $abfrage mysql_query("SELECT * FROM `teste`");

                        
              /* solang mysql_fetch_assoc() eine Zeile (row) aus der Resource "ziehen" kann ist $row jeweils eine Zeile aus der Datenbank. Und es werden nun einige Elemente des Arrays ausgegeben */
              while($row mysql_fetch_assoc($abfrage)) {
              echo 
              "  <li class='item'> Artikelnr.: $row[ArtNumber] <a href='$row[Deeplink1]'><img src='$row[Img_url]'    max-width='140px' height='230px' ></a><br>   <big><b>$row[Title]</big></b><br>   $row[DisplayPrice]<br> 
                 
              $row[ProductCategoryName]<br>    
                 
              $row[Stil]  $row[NEU]  <a href='$row[Img_url]'> klicke hier</a>   <a href='$row[ImgUrl_seite]'>von seite</a> <a href='$row[ImgUrl_oben]'>von oben</a> <a href='$row[ImgUrl_unten]'>von unten</a>
                
              $row[Geschlecht] </a>                            
                         
                        "
              ;     
              }
              ?>
              Hat auch gut funktioniert.

              Dein Skript sieht anders aus. Kannst Du mir vielleicht den Unterschied erklären?

              Kannst Du mir vielleicht erklären, wie ich csv Dateien die größer sind als 2MB, auf meine Datenbank bekomme?

              Warum auch immer, ich kriege nur kleine Größen auf die DB.

              Solltest Du Hilfe benötigen, jeglicher Art, einfach eine PN an mich

              Kommentar


              • #8
                Zitat von isi1985 Beitrag anzeigen
                Dein Skript sieht anders aus. Kannst Du mir vielleicht den Unterschied erklären?
                Das könnte ich, doch dann könnte ich auch gleich ein Buch für Einsteiger schreiben, dass sollte vom Aufwand her in etwa auf das Gleiche hinauslaufen. PHP lernt man nun einmal nicht in 3 Tagen über Ostern.

                Meine Empfehlung, besorge Dir mindestens zwei Bücher, eins für Kids oder für Einsteiger und dann noch ein allgemeines, welches von der Syntax bis zum Datenbankzugriff alle wichtigen Themen enthält. Mit den Büchern für Kids hat es nichts mit dem Alter zu tun, die sind nur leichter verständlich geschrieben, gehen dann halt auch solche Selbstverständlichkeiten wie einem HTML-Grundgerüst ein (zumindest das was ich hatte) und ich war da auch schon über 50, als ich mir eins für Kids holte.

                Die Datei hatte ich Anfang 2008 auf dem Server abgespeichert, seither nicht mehr benutzt, nun habe ich die sogar auf meinem Rechner wiedergefunden, zusammen mit der CSV, die keine weiteren Attribute für Images enthält, wie ich gerade sah.

                Mit der Größe, ich denke diese Beschränkung mit 2 MB entfällt, wenn Du die CSV nicht vom Computer, sondern vom Server aufrufst und falls das auch nicht funktionieren sollte, dann halt per Script einlesen und abspeichern, notfalls in mehrere Durchläufe unterteilen, falls erforderlich. Doch damit habe ich keine Erfahrung, eigentlich sollte es in einem Rutsch gehen.

                Kommentar


                • #9
                  Hallo alle zusammen,

                  vielen Dank für Eure Unterstützung.

                  Hier ist mein derzeitiger Stand:

                  [code=php]
                  <?php

                  function blaetterfunktion($seite,$maxseite,$url="",$anzahl=4,$get_name="seite")
                  {
                  if(ereg("\?",$url)) $anhang = "&";
                  else $anhang = "?";

                  if(substr($url,-1,1) == "&") {
                  $url = substr_replace($url,"",-1,1);
                  }
                  else if(substr($url,-1,1) == "?") {
                  $anhang = "?";
                  $url = substr_replace($url,"",-1,1);
                  }

                  if($anzahl%2 != 0) $anzahl++; //Wenn $anzahl ungeraden, dann $anzahl++

                  $a = $seite-($anzahl/2);
                  $b = 0;
                  $blaetter = array();
                  while($b <= $anzahl)
                  {
                  if($a > 0 AND $a <= $maxseite)
                  {
                  $blaetter[] = $a;
                  $b++;
                  }
                  else if($a > $maxseite AND ($a-$anzahl-2)>=0)
                  {
                  $blaetter = array();
                  $a -= ($anzahl+2);
                  $b = 0;
                  }
                  else if($a > $maxseite AND ($a-$anzahl-2)<0)
                  {
                  break;
                  }

                  $a++;
                  }
                  $return = "";
                  if(!in_array(1,$blaetter) AND count($blaetter) > 1)
                  {
                  if(!in_array(2,$blaetter)) $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=1\">1</a>&nbsp;...";
                  else $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=1\">1</a>&nbsp;";
                  }

                  foreach($blaetter AS $blatt)
                  {
                  if($blatt == $seite) $return .= "&nbsp;<b>$blatt</b>&nbsp;";
                  else $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=$blatt\">$blatt</a>&nbsp;";
                  }

                  if(!in_array($maxseite,$blaetter) AND count($blaetter) > 1)
                  {
                  if(!in_array(($maxseite-1),$blaetter)) $return .= "...&nbsp;<a href=\"{$url}{$anhang}{$get_name}=$maxseite\">letzte</a>&nbsp;";
                  else $return .= "&nbsp;<a href=\"{$url}{$anhang}{$get_name}=$maxseite\">$maxseite</a>&nbsp;";
                  }

                  if(empty($return))
                  return "&nbsp;<b>1</b>&nbsp;";
                  else
                  return $return;
                  }
                  $seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist

                  //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1
                  if(!isset($seite)){
                  $seite = 1;
                  }



                  //Verbindung zu Datenbank aufbauen

                  include("head.php");


                  //Einträge pro Seite: Hier 15 pro Seite
                  $eintraege_pro_seite = 20;

                  //Ausrechen welche Spalte man zuerst ausgeben muss:

                  $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite;

                  $abfrage = mysql_query("SELECT * FROM `teste` LIMIT $start, $eintraege_pro_seite ");

                  /* solang mysql_fetch_assoc() eine Zeile (row) aus der Resource "ziehen" kann ist $row jeweils eine Zeile aus der Datenbank. Und es werden nun einige Elemente des Arrays ausgegeben */
                  while($row = mysql_fetch_assoc($abfrage)) {
                  echo " <li class='item'> <a href='$row[Deeplink1]'><img src='$row[Img_url]' max-width='140px' height='230px' ></a><br> <big><b>$row[Title]</big></b><br> $row[DisplayPrice]<br>
                  $row[ProductCategoryName]<br>

                  $row[Geschlecht] </a>

                  ";
                  }
                  // Tabelle schliessen








                  echo "</div>";
                  //Ausgabe der Links zu den Seiten

                  //Jetzt kommt das "Inhaltsverzeichnis",
                  //sprich dort steht jetzt: Seite: 1 2 3 4 5


                  //Wie viele Einträge gibt es überhaupt

                  //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten
                  //also der gleiche Text wie in der Variable $abfrage, blo&szlig; das hier das LIMIT fehlt
                  //Sonst funktioniert die Blätterfunktion nicht richtig,
                  //und hier kann nur 1 Feld abgefragt werden, also id

                  $result = mysql_query("SELECT * FROM `teste` ");
                  $menge = mysql_num_rows($result);


                  //Errechnen wie viele Seiten es geben wird
                  $wieviele_seiten = ceil($menge / $eintraege_pro_seite);


                  //Ausgabe der Seitenlinks:
                  echo "<div align=\"center\">";
                  echo "<b>Seite:</b> ";


                  //*****************************************
                  //* Dieser Abschnitt ist neu
                  //*****************************************
                  //Aufruf unserer Funktion
                  echo blaetterfunktion($seite, $wieviele_seiten);


                  echo "</div>";
                  ?>
                  [/code]

                  Damit bin ich auch zufrieden erstmal. :P

                  Nun möchte ich eine erweiterte Suchfunktion (User kann mehrere Wörter eingeben und suchen), 3 mehrfach-selection-Boxen und ein Dropdown-selection fürs sortiern der DB Inhalte (Auf und absteigend nach Preis bsp.).

                  Ich habe sehr viele Skripte versucht, ich habe es einfach nicht zum laufen bekommen.

                  Könnst ihr mir helfen???

                  Kommentar

                  Lädt...
                  X