[PHP5] Etwas schwerer PHP Code (2 Schleifen)

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

  • [PHP5] Etwas schwerer PHP Code (2 Schleifen)

    Hallo,

    Ich habe ein Problem bei dieser Seite:
    Vereinfacht ohne Datenbankverbindung:
    PHP-Code:
    <?
    $keys = explode(",","ware,warex,software");
    $xad = "0";
    $x = "0";
    $anzahl = substr_count("ware,warex,software",",");
    $anzahl = "$anzahl"+"1";

    while ("$xad" < "6" AND "$x" < "$anzahl") {
    $partnerprogramm_ad=mysql_query("SELECT * FROM `partnerprogramm_ad` WHERE `keyword` LIKE '%$keys[$x]%'");
    while ($ad = mysql_fetch_array($partnerprogramm_ad, MYSQL_ASSOC) AND "$xad" < "6") {
    echo"$ad[titel]<br>";
    $xad = "$xad"+"1";
    }

    $x = "$x"+"1";
    }
    ?>
    PHP-Code:
    <? 
    // Verbindung zur Datenbank 
    include("config.inc.php"); 
    // die keys werden aus dem Datenbank gelesen 
    $daten=mysql_query("select * from partnerprogramm where name='$name'"); 
    $partnerprogramm=mysql_fetch_array($daten); 
    // die wörter werden einzeln augeteilt 
    $keys = explode(",",$partnerprogramm[key]); 
    // 0 für das erste wort und erste Anzeige 
    $xad = "0"; 
    $x = "0"; 
    // Die Anzahl der Kommas von den ganzen Keywöter (die durch Kommas getrennt sind) werden ermittelt 
    $anzahl = substr_count("$partnerprogramm[key]",","); 
    // +1 sonst gehts nicht.. obwohl es ein witeres problem gibt wenn in $partnerprogramm[key] z.B steht computer,software,pc,,,,,,,,, 
    $anzahl = "$anzahl"+"1"; 
    // solange die Anzahl von 5 noch nicht errecht wurde und die Keywörter nicht alle abgeabeitet wurden 
    while ("$xad" < "6" AND "$x" < "$anzahl") { 
    // werbung wird gesucht von dem $x keywort 
    $partnerprogramm_ad=mysql_query("SELECT * FROM `partnerprogramm_ad` WHERE `keyword` LIKE '%$keys[$x]%'"); 
    while ($ad = mysql_fetch_array($partnerprogramm_ad, MYSQL_ASSOC) AND "$xad" < "6") { 
    // ausgabe 
    echo"[ $ad[titel] - $ad[text] - $ad[link] ]<br>"; 
    // anzeige wird um 1 erhöht 
    $xad = $xad++; 

    // wirt wird um 1 erhöht 
    $x = $x++; 

    ?>
    Ich weis nicht genau wie ich das Script bauen kann...
    Es ist ein Partnerprogramm wo Werbung anzeigt. In $partnerprogramm[key] sind Keywörter mit Kommas getrennt. Das erste Keywört soll suchen ob Werbung für das Keywort vorhanden ist und wenn ja alles anzeigen bis zu dem 5. Wort. Falls es 4 oder weniger waren soll das 2. Keywort suchen ob Werbung vorhanden ist.. das solange bis keine Keywörter mehr vorhanden sind oder die Anzahl von 5 erreicht wurde.

    Kann mit dabei jemand helfen? das script funktioniert nicht richtig, denn es werden z.B 6 Wörter angezeigt.
    Zuletzt geändert von kostenlosx; 24.12.2004, 21:44.

  • #2
    insider-tipp: bevor goth oder jemand anders dich in stücke reißt und deine unsterbliche seele bis in alle ewigkeiten foltert, nimmst du mal ganz schnell erstmal alle anführungsstriche raus, wo die nicht hingehören, und zwar - variablen und zahlen. bedenke - es geht um dein wohl.

    Kommentar


    • #3
      hey hey hey

      hab ich was falsch gemacht?

      Ich programmiere schon lange so und hat immer alles geklappt

      aber gut wenn es so richtiger ist.. also $anzahl = "$anzahl"+"1";
      und $anzahl = $anzahl+1;
      oder wie muss ich dass verstehen?

      Kommentar


      • #4
        genau, zweiteres ist definitiv richtiger.

        Kommentar


        • #5
          hmm,

          vielleicht solltest du die aufgabenstellung nochmal formulieren, ich zumindest hab sie nicht verstanden.

          es sieht auch so aus, als ob sich der code noch extrem vereinfachen ließe ...
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            wenn der code funktioniert, und das einzige problem ist, dass statt 5-irgendwas 6-irgendwas angezeigt wird, würde sich anbieten, die zahl 6, die hier zwei mal auftaucht, mal durch eine 5 zu ersetzen.

            den code werd ich mir nur anschauen, wenn er richtig formatiert ist.

            Kommentar


            • #7
              folgendes Ziel hab ich:

              Ich möchte ein Partnerprogramm wie bei Google bauen.
              http://www.kostenlosx.net/partnerprogramm [ Demo = Name: 1 / Passwort: 1 ] geht auf Profil und da seht ihr Keyword wo trin steht z.B ware
              Der User soll dort seine Keywords eingeben von der er Werbung einblenden möchte.
              Er bindet mit Jave dann den die Seite auf seiner Homeapge ein:
              http://www.kostenlosx.net/partnerprogramm/ad.php?name=1

              Folgendes verwende ich in der Mysql Tabelle:
              --
              -- Tabellenstruktur für Tabelle `partnerprogramm_ad`
              --

              CREATE TABLE `partnerprogramm_ad` (
              `id` text NOT NULL,
              `name` text NOT NULL,
              `titel` text NOT NULL,
              `text` text NOT NULL,
              `keyword` text NOT NULL,
              `link` text NOT NULL,
              `klicks_buy` text NOT NULL,
              `klicks_noch` text NOT NULL
              ) TYPE=MyISAM;

              --
              -- Daten für Tabelle `partnerprogramm_ad`
              --

              INSERT INTO `partnerprogramm_ad` VALUES ('1', '4', 'kostenlosx', 'free warex', 'free warex', 'http://www.kostenlosx.net', '10', '0');
              INSERT INTO `partnerprogramm_ad` VALUES ('2', '4', 'kostenlosx2', 'free ware', 'free ware', 'www.de', '10', '0');
              INSERT INTO `partnerprogramm_ad` VALUES ('3', '4', 'kostenlosx', 'free warex', 'free ware', 'www.de', '10', '0');
              INSERT INTO `partnerprogramm_ad` VALUES ('4', '4', 'kostenlosx', 'free warex', 'free warex', 'www.de', '10', '0');
              INSERT INTO `partnerprogramm_ad` VALUES ('5', '4', 'kostenlosx', 'free warex', 'free warex', 'www.de', '10', '0');


              ----------------------------------

              Wenn jetzt jemand die Seite ad.php?name=1 aufruft sollden die Keywords verwendet werden die auch in der Datebank gespeichert sind. Es soll dann aus `partnerprogramm_ad` die Werbung geladen werden die auch das Keyword hat.
              z.B wenn jetzt jemand nach warex sucht sollen 3 texte angezeigt werden. oder wenn man nach ware sucht 5 texte.

              selbst wenn mehr werbung in der tabelle steht sollen nur max. 5 angezeigt werden.

              Das Script soll so funktionieren dass nach dem ersten Keyword gesucht wird und die Werbung angezeigt wird. Wenn es noch keine 5 sind soll von dem Zweite Keyword die Werbung angezeigt werden, wenn es wieder keine 5 (mit den vorigen dazu) sind soll nach dem dritten keyword gesucht werden. (bis 30)

              naja den code den ich am anfang geschreiben hatte wird auf
              http://www.kostenlosx.net/partnerprogramm/ad.php?name=1 verwendet.

              Ich hoffe ihr versteht was ich möchte?

              Kommentar


              • #8
                und das einzige, was nicht stimmt, ist, dass es ein keyword zuviel ausgegeben wird?

                p.s. ich höre schritte...

                Kommentar


                • #9
                  ich weis nicht...

                  so wie ich die seite geschreiben habe solle sie funktionieren... tut sie aber nicht... ich find das selber ein bischen verwirrend mit zwei Schreifen...
                  wollte das es sich ein Profi mal anschaut und sagt was falsch tran ist und ob sonst noch was falsch sein könnte.

                  Warum ich zwei Schleifen benutzte: Einmal um alle und max. 5 Ergebnisse von einem Keyword anzuzeigen. Und einmal um das ganze mit mehreren Wörtern zu machen.

                  Kommentar


                  • #10
                    ich hab jetzt ein bischen was getestet und glaube ich weis worans liegt...

                    an

                    while ($ad = mysql_fetch_array($daten, MYSQL_ASSOC)) { ????? }

                    wie kann man da eine bedingung einbauen?

                    while ($ad = mysql_fetch_array($daten, MYSQL_ASSOC) AND $x < 6)

                    dass mit AND $x < 6 scheint da nicht mehr zu funktionieren

                    Kommentar


                    • #11
                      zwischendurch
                      PHP-Code:
                      if(x==5) break; 

                      Kommentar


                      • #12
                        mal wieder ein code den die welt nich brauch...
                        Anführungszeichen wurden a schon bemängelt
                        Schiesst Du Dir eigentlich immer von hinten Durchs Knie in die Brust?
                        $keys = explode(",","ware,warex,software");
                        $xad = "0";
                        $x = "0";
                        $anzahl = substr_count("ware,warex,software",",");
                        // eiw wärs mit count($keys); ???
                        $anzahl = "$anzahl"+"1";
                        while ("$xad" < "6" AND "$x" < "$anzahl") {
                        oje also höchsten 6 oder $anzahl Datensätze?? schon mal was von LIMIT gehört
                        weiter gehts dann genauso, blickst DU da selbst überhaupt durch?
                        OffTopic:
                        ich hab zuviel Zeit sonst würde ich mir son kram gar nich erst anschauen...
                        Beantworte nie Threads mit mehr als 15 followups...
                        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                        Kommentar

                        Lädt...
                        X