Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten als Rotation ausgeben

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten als Rotation ausgeben

    Ich bin absoluter Neuling in Php & versuche gerade mein erstes kleines Script zu proggen. Dabei geht es um Folgendes.
    Ich betreibe einen Onlineshop und möchte eine Rotation von Artikeldaten auf anderen Webseiten anzeigen.

    Zur Zeit liest das bis jetzt von mir geschriebene Script, die Artikeldaten aus einer CSV-Datei aus. Über eine Schleife & den echo Befehl kann ich nun alle Artikeldaten als html Daten ausgeben.

    Wie kann ich nun eine Auswahl der Daten (zBsp. 10 Artikel) rotieren lassen?


    Hier seht Ihr den Code, der mich schon einige Nerven gekostet hat.

    PHP-Code:
    <TABLE ID="Produktdatenausgabe" BORDER=0 CELLSPACING=3 CELLPADDING=0 WIDTH="680" >
    <?php
    //Einlesen der CSV Daten
    $Zeilen 0;
    $Dateizeiger fopen("Link zur CSV Datei""r");
    while((
    $Daten=fgetcsv($Dateizeiger1000"\t"))!==FALSE)
    {

    //Ausgabe aller Artikeldaten
    $Zeilenanzahl $Zeilen++;
    for(
    $i=1$i<=$Zeilenanzahl$i=$Zeilen)
      {
         echo 
    "<tr>";
         echo 
    "<td valign=\"top\" width=\"85px\">";
         echo 
    "<img width=\"85\" border=\"0\" src=\"$Daten[4]\" alt=\"$Daten[2]\">",
            
    "<br>";
         echo 
    "</td>";
         echo 
    "<td valign=\"top\" width=\"100%\">";
         echo 
    "<b>$Daten[2]</b>",
            
    "<br>";
         echo 
    $Daten[3],
            
    "<br>";
         echo 
    "<b>$Daten[5] Euro</b> <font size=\"-2\">inkl. MwSt. zzgl. Versandkosten</font>",
            
    "<br>";
         echo 
    "<a href=\"$Daten[1]\" target=\"_blank\">Hier Klicken</a>",
            
    "<br><br>";
         echo 
    "</td>";
         echo 
    "</tr>";   
         }
           
    }
    //Einlesen der Artikeldaten beenden
    fclose($Dateizeiger);
    ?>
    </TABLE>

  • #2
    Hi,

    was heisst denn Rotation? Du willst abwechseln einen Artikel von 10 ausgewählten anzeigen lassen? Oder die Reihenfolge ändern? Soll das bei jedem Seitenaufruf passieren oder während ein User sich die Seite anguckt ohne reload?

    Gruß
    Cy

    Kommentar


    • #3
      mh glaube er will aus allen angeboten einfach 10 zufällige auswählen... aber dann versteh ich das script von ihm nicht, das gibt doch nur alles einfach aus !?
      Under Construktion

      Kommentar


      • #4
        probier es mal mit der funktion :

        PHP: rand - Manual

        Kommentar


        • #5
          Also ich würde array_rand() benutzen...
          [URL="http://www.schmars-world.de/"]Mein Blog[/URL]

          Kommentar


          • #6
            jepp stimmt is eigentlich noch effektiver

            Kommentar


            • #7
              Danke für die Antworten. Wie gesagt ich bin absoluter Neuling und mein erstes Ziel war es überhaupt die Artikeldaten ausgegeben zu bekommen.

              Nun möchte ich das aus der kompletten Produktpalette eine beliebige Anzahl an Produkten (zBsp. 10 Produkte) Ausgegeben wird. Bei jedem Seiteaufruf sollen die Produkte per Zufall ausgewählt werden.

              Die for Schleife mit der Ausgabe habe ich eingefügt, weil der 1. Datensatz in der CSV Liste der Kopf ist und nicht mit ausgegeben werden soll. Das war für mich schon eine mächtige Herausforderung.

              Mein Ansatz wäre nun die gesamten Daten in ein neues array abzulegen. Ist das richtig?

              Kommentar


              • #8
                Wenn ich array_rand() benutze, wie bekomme ich denn da einen kompletten Datensatz formatiert in das array?

                Kommentar


                • #9
                  Du musst erst alles in ein Array lesen und dann kannst du array_rand() nutzen.

                  Kommentar


                  • #10
                    Zitat von PTC Beitrag anzeigen
                    Du musst erst alles in ein Array lesen und dann kannst du array_rand() nutzen.
                    Ja genau. Das habe ich mir schon gedacht. Jedes Produkt muß ein Wert in dem Array sein. Nur wie mache ich das?

                    Das neue array müsste doch etwa so aussehen:

                    $Produkte = array("Produkt1","Produkt2","Produkt3");

                    Mir fehlt hier gerade ein Ansatz wie Php die Werte in den Klammern ausfüllt.

                    Kommentar


                    • #11
                      Hallo!

                      Also so weit ich weis bekommen die Sachen die in einem Array stehen authomatisch eine indce zu gewiesen bei 0 beginnend!
                      Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
                      [URL]http://www.lit-web.de[/URL]

                      Kommentar


                      • #12
                        Nicht unbedingt. Es gibt auch assoziative Arrays, bei denen du den Index-Namen frei wählen kannst. $_POST ist zum Beispiel ein assoziatives Array.
                        Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                        Kommentar


                        • #13
                          Das hilft mir bei der Lösung des Problemes nicht wirklich weiter.

                          Derzeit sieht die Ausgabe des Arrays wie folgt aus. Wenn ich das richtig verstehe wird für jeden Schleifendurchlauf ein neues array erstellt. Was kann ich tun?

                          Array ( [0] => http://www.afrostore.biz/modules/sho...7b6d2ccdb6.jpg [1] => Schale von 3 Elefanten getragen Afrika 33cm [2] => Es handelt sich hier um eine grosse, wunderschoen geschnitzte Schale aus Afrika. Sie wurde aus Holz gefertigt & sehr fein beschnitzt. Die Hoehe betraegt etwa 33cm. [3] => 24.49 [4] => Djembe Trommel & Kunsthandwerk Onlineshop - afrostore.biz ) Array ( [0] => http://www.afrostore.biz/modules/sho...f515c20296.jpg [1] => Djembe Trommel 60cm Holz [2] => Die Djembe Trommel wurde in feinster Handarbeit aus zwei Stuecken Holz gefertigt. Sie hat eine Hoehe von etwa 60 cm & einen Durchmesser von etwa 27-30 cm. [3] => 59.50 [4] => Djembe Trommel & Kunsthandwerk Onlineshop - afrostore.biz )

                          Kommentar


                          • #14
                            Man kann wo der Index beginnen soll auch einstellen.

                            $rotation = array_rand ( array $dein_array, 10 );
                            echo $rotation;

                            gibt 10 Sachen aus $dein_array aus

                            Kommentar


                            • #15
                              Ich bekomme da leider die übliche Meldung, welche schon die ganze Zeit mein Problem ist.


                              $b = array($Bild,$Titel,$Beschreibung,$Preis,$Link);
                              $rotation = array_rand ( $b, 10 ); //Zeile 18
                              echo $rotation;

                              Ausgabe:

                              Warning: array_rand() [function.array-rand]: Second argument has to be between 1 and the number of elements in the array in C:\xampp\htdocs\Produktlisten\test.php on line 18

                              Kommentar

                              Lädt...
                              X