verknüpfen von arrays ?

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

  • verknüpfen von arrays ?

    Hi Leute leider wieder ein Problem ....


    Zur Erläuterung: Ich habe in meiner Datenbank mehrere Tabellen Müller, Maier, Scholz usw. und eine Sschhlüsseltabelle wo nochmal die Namen der Firman drin steht .
    Nun Habe ich eine Abfrage die mir Die Namen der Firman Also aus der schlüsseltablle abfragt und dann gleich im Anschluss eine Abfrage die die Einzelnen Firmen Tabellen abfragt und mir Daten dazu ausgib, nun das Problem das sind ja jetzt alles einzelne Arrays also Scholz, Müller, Maier oder nun wie bekomm ich diese zu einem Array zusammen da ich später alles Daten brauch um eine zufallsauswahl aus allen Daten zu treffen ?

    Hier nochmal die Abfrage die ich mache ( Danke an Wotan, mrhappiness, Abraxax ) haben mir sehr dabei geholfen :-)


    PHP-Code:

    $conn 
    mysql_connect("$MySQL_Host""$MySQL_User""$MySQL_Pass");
    if(
    $conn)
        {
        
    mysql_select_db("$MySQL_Data"$conn);
        }
    else
        {
        die(
    "<b>Oops, something goes wrong</b> ".mysql_error());
        }
    $sql "SELECT * FROM schluessel";
    $result mysql_query ($sql)or die(mysql_error());
    while(
    $row mysql_fetch_array($result))
    {
        echo 
    '<b>&raquo;&raquo;'.$row['T_name'].'&laquo;&laquo;</b><br>';
        
    $Name_=$row[T_name];
        
    $sql2 "SELECT * FROM $Name_";
        
    $result2 mysql_query ($sql2)or die(mysql_error());
        while(
    $row mysql_fetch_array($result2))
        {
        echo 
    '<a href="#" onClick="window.open(\'start/1_schaufenster/1_popup.php?Produkt='.$row['produkt'];
    echo 
    '&Art='.$row['art'].'&Beschreibung='.$row['beschreibung'].'&Bild='.$row['bild'].'&Firma='.$row['firma'];
    echo 
    '&Ziel='.$row['ziel'].'&Visitenkarte='.$row['visitenkarte'].'\', \'NewWindow\',';
    echo 
    '\'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,';
    echo 
    'resizable=no,copyhistory=no,width=600,height=600\')"><img src="start/'.$row['link'].'/klein/'.$row['bild'].'" ';
    echo 
    'alt="" border="0"></a>';
    echo 
    $row[ID].'<br>';
        }

    Gruss sascha
    Zuletzt geändert von Kleinschmidt; 23.07.2003, 11:25.
    Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

  • #2
    Re: verknüpfen von arrays ?

    Original geschrieben von Kleinschmidt
    Zur Erläuterung: Ich habe in meiner Datenbank mehrere Tabellen Müller, Maier, Scholz usw. und eine Sschhlüsseltabelle wo nochmal die Namen der Firman drin steht .
    warum wählst du dann nicht erstmal per zufall einen eintrag aus dieser schlüsseltabelle aus, und an hand dessen dann die weiteren daten aus der jeweiligen firmen-tabelle?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      das ist es ja gerade ich möchte ja die gsammten Firman mit einbeziehen da ja sonst jemand benachteiligt werden könnte.


      Gruss sascha
      Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

      Kommentar


      • #4
        Nun ja wenn ich dich richtig verstanden habe dann z.B. so

        PHP-Code:
        ....

            }
        else
            {
            die(
        "<b>Oops, something goes wrong</b> ".mysql_error());
            }
        $alle_firmen=array(); // array initialisieren

        $sql "SELECT * FROM schluessel";
        $result mysql_query ($sql)or die(mysql_error());

        .....

        $result2 mysql_query ($sql2)or die(mysql_error());
            while(
        $row mysql_fetch_array($result2))
            {
              
        $alle_firmen[]=$row// jeweilst die aktuelle firma hinzufügen

            
        echo '<a href="#" onClick="window.open('start/1_schaufenster/1_popup.php?Produkt='.$row['produkt'];
        echo '
        &Art='.$row['art'].'&Beschreibung='.$row['beschreibung'].'&Bild='.$row['bild'].'&Firma='.$row['firma'];

        ..... 
        und nach den beiden schleifen, hast du dann alle Firmen in $alle_firmen.

        gruss

        rth







        Zuletzt geändert von RobertTheHero; 23.07.2003, 13:00.
        H I L F E
        GD FreeType Antialising
        Gesuch PHP Entwicklungsumgebung
        ------------------------------------------
        Der Cmabrigde rael tset, sruf whoin du wlilst

        Kommentar


        • #5
          Mhh... das sieht gut aus :-)

          Danke, werd ich gleich mal probieren.


          Gruss sascha
          Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

          Kommentar


          • #6
            das hat funktioniert galub ich. Wie kann ich mir jetzt dieses Array also $alle_firmen; ausgeben lassen.


            Sorry bin wirklich a newbie.


            Gruss Sascha
            Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

            Kommentar


            • #7
              Wie ausgeben ?

              also mit

              PHP-Code:
              var_dump($alle_firmen); 
              siehste was alles in dem array drin ist.

              mit z.B.

              PHP-Code:
              while (list($key,$val)=each($alle_firmen))
              {
              ....

              durchläufst du das ganze array.

              aber du wolltest doch
              zu einem Array zusammen da ich später alles Daten brauch um
              eine zufallsauswahl aus allen Daten zu
              das geht mit
              PHP-Code:
                $zufall=array_rand($alle_firmen); 
              rth
              H I L F E
              GD FreeType Antialising
              Gesuch PHP Entwicklungsumgebung
              ------------------------------------------
              Der Cmabrigde rael tset, sruf whoin du wlilst

              Kommentar


              • #8
                zu einem Array zusammen da ich später alles Daten brauch um
                eine zufallsauswahl aus allen Daten zu
                O.K. das will ich auch immernoch...


                der Hintergrund ist das ich daraus Links gereriere also in einer Firmen Tabelle Steht zum bsp. Id, Produkt, Becshreibung, Bild , Link, Firma, Ziel, Preis,


                und nun muss ich aus allen Firmen halt z.B. durch zufall 10 ausuchen und

                dann sollen 10 Links mit Bildern erscheinen und dann wenn ich darauf klick kommt ein Popup mit den jeweiligen Daten.

                Gruss sascha
                Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

                Kommentar


                • #9
                  Gut

                  das Rüstzeug haste ja dazu schon
                  PHP-Code:
                  $zufall=array_rand($alle_firmen); 
                  musste halt 10 mal machen, und am besten in ein neues Array speichern.

                  Und mit diesem "zufalls array" erzeugst du dann deine seite...

                  .. allerdings hättest du das alles vorher gesagt hätte wir gar nicht mit arrays rumhantieren müssen

                  PHP-Code:

                  $sql 
                  "SELECT * FROM schluessel ORDER BY RAND () LIMIT 0,10"
                  liefert zufällig 10 ergebnisse aus der schlüsseltabelle, und somit ist dies eigentlich das einzige was du ändern muss, brauchst die ganzen arrays gar nicht.

                  rth
                  H I L F E
                  GD FreeType Antialising
                  Gesuch PHP Entwicklungsumgebung
                  ------------------------------------------
                  Der Cmabrigde rael tset, sruf whoin du wlilst

                  Kommentar


                  • #10
                    mhh...
                    PHP-Code:
                    $sql "SELECT * FROM schluessel ORDER BY RAND () LIMIT 0,10"

                    so bekomm ich doch aber bloß 10 Firmen, das was ich will sind aber alle Firmen die in der schlüsseltabelle stehen und von diesen Firmen die teilweise 20 oder 30 oder 5 oder 10 jeweils Produkte haben also Firma Müller hat 10 Produkte und Firma Scholz hat 20 nun sollen alle Firmen in betracht gezogen werden und von allen Firmen aus allen Produkten insgesammt 10 Produkte gewählt werden .


                    vieleicht kann ich ja deinen Abfrage so umstellen also


                    PHP-Code:

                    ...
                    $sql "SELECT * FROM schluessel";
                    $result mysql_query ($sql)or die(mysql_error());
                    while(
                    $row mysql_fetch_array($result))
                    {
                        echo 
                    '<b>&raquo;&raquo;'.$row['T_name'].'&laquo;&laquo;</b><br>';
                        
                    $Name_=$row[T_name];
                        
                    $sql2 "SELECT * FROM $Name_ ORDER BY RAND () LIMIT 0,10";// Diese Zeile mein ich 
                        
                    $result2 mysql_query ($sql2)or die(mysql_error());
                        while(
                    $row mysql_fetch_array($result2))
                        { 
                    kann man das so machen ?
                    werd es mal probieren .


                    Gruss sascha
                    Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

                    Kommentar


                    • #11
                      hm aso, ne leider nicht,

                      denn so würdest du von jeder firma zufällig 10 produkte wählen.

                      Also dann doch mit den arrays machen.
                      H I L F E
                      GD FreeType Antialising
                      Gesuch PHP Entwicklungsumgebung
                      ------------------------------------------
                      Der Cmabrigde rael tset, sruf whoin du wlilst

                      Kommentar


                      • #12
                        mhh.. hab ich gerade gemerkt das es mir dann halt aus jeder fIRMA 10 Produkt nimmt .


                        mhh das iss ganz sche verzwickt.
                        Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

                        Kommentar


                        • #13
                          eigentlich nicht..

                          PHP-Code:
                          $conn mysql_connect("$MySQL_Host""$MySQL_User""$MySQL_Pass");
                          if(
                          $conn)
                              {
                              
                          mysql_select_db("$MySQL_Data"$conn);
                              }
                          else
                              {
                              die(
                          "<b>Oops, something goes wrong</b> ".mysql_error());
                              }
                          $sql "SELECT * FROM schluessel";
                          $alle_produkte=array(); // aray initialsieren
                          $result mysql_query ($sql)or die(mysql_error());
                          while(
                          $row mysql_fetch_array($result))
                          {
                              echo 
                          '<b>&raquo;&raquo;'.$row['T_name'].'&laquo;&laquo;</b><br>';
                              
                          $Name_=$row[T_name];
                              
                          $sql2 "SELECT * FROM $Name_";
                              
                          $result2 mysql_query ($sql2)or die(mysql_error());
                              while(
                          $row mysql_fetch_array($result2))
                              {
                                  
                          $alle_produkte[]=
                                      
                          '<a href="#" onClick="window.open('start/1_schaufenster/1_popup.php?Produkt='.$row['produkt'].
                                  '
                          &Art='.$row['art'].'&Beschreibung='.$row['beschreibung'].'&Bild='.$row['bild'].'&Firma='.$row['firma'].
                                  '
                          &Ziel='.$row['ziel'].'&Visitenkarte='.$row['visitenkarte'].'', 'NewWindow','.
                                  
                          ''toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,'.
                                  '
                          resizable=no,copyhistory=no,width=600,height=600')"><img src="start/'.$row['link'].'/klein/'.$row['bild'].'" '.
                                  
                          'alt="" border="0"></a>'.
                                  .
                          $row[ID].'<br>';
                              }
                              
                              
                          // in $alle_produkte stehen jetzt alle links für die produkte drin
                              // nun 10 zufällig auswählen
                              
                          $zufall_arr=array();
                              
                          srand(time());
                              
                          $a=0;
                              while (
                          $a<10)
                              {
                                  
                          $zuf=rand(0,count($alle_produkte));
                                  if (!isset(
                          $zufall_arr[$zuf]))
                                  {
                                      
                          $zufall_arr[$zuf]=$alle_produkte[$zuf];
                                      
                          $a++;
                                  }
                              }
                              
                              
                          // und jetzt die links noch ausgeben
                              
                          echo implode("<br>",$zufall_arr);
                              
                              
                          // fertig

                          ich dachte nur du kommst selber auf ne lösung ....
                          aber das sollte funktionieren, wenn noch fragen, frag

                          rth
                          H I L F E
                          GD FreeType Antialising
                          Gesuch PHP Entwicklungsumgebung
                          ------------------------------------------
                          Der Cmabrigde rael tset, sruf whoin du wlilst

                          Kommentar


                          • #14
                            PHP-Code:
                            {
                                    
                            $alle_produkte[]=
                                        
                            '<a href="#" onClick="window.open('start/1_schaufenster/1_popup.php?Produkt='.$row['produkt'].
                                    '
                            &Art='.$row['art'].'&Beschreibung='.$row['beschreibung'].'&Bild='.$row['bild'].'&Firma='.$row['firma'].
                                    '
                            &Ziel='.$row['ziel'].'&Visitenkarte='.$row['visitenkarte'].'', 'NewWindow','.
                                    
                            ''toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,'.
                                    '
                            resizable=no,copyhistory=no,width=600,height=600')"><img src="start/'.$row['link'].'/klein/'.$row['bild'].'" '.
                                    
                            'alt="" border="0"></a>'.
                                    .
                            $row[ID].'<br>';
                                } 
                            da macht er irgeneinen parseerror,
                            ich glaub das ist weil darin html und noch javascript enthalten ist das macht irgendwie probleme.



                            mhh auf die lösung würde ich ohne hilfe nicht kommen da ich wirklich noch ein anfänger bin.

                            wollte die zufalls funktion so in etwa aufbauen
                            PHP-Code:
                            srand ((double)microtime()*1000000);
                            $rand_keys array_rand ($zufallcount($zufall));
                            for(
                            $i=;$i <=count($zufall) ;$i++ ){
                            ${
                            "test_".$i} =$zufall[$rand_keys[$i]];

                            mhh ging aber auch nicht.
                            Konservative sind sehr für den Fortschritt sofern der auf der Stelle tritt. ( Norman Mailer )

                            Kommentar


                            • #15
                              naja den string habe ich mir jetzt nicht genau angeschaut, bin davon ausgegangen, das dein prog vorher ohne parse fehler durchläuft.
                              Also wenn der string da richtig ist dann läuft das.

                              kannst ja mal zur probe

                              PHP-Code:

                                      $alle_produkte
                              []=$row['produkt']; 

                              nur schreiben. um zu sehen das das mit dem zufall klappt.

                              rth

                              p.m.
                              zu deinem code, lies dir mal bitte die funktions beschreibung von array_rand durch.
                              H I L F E
                              GD FreeType Antialising
                              Gesuch PHP Entwicklungsumgebung
                              ------------------------------------------
                              Der Cmabrigde rael tset, sruf whoin du wlilst

                              Kommentar

                              Lädt...
                              X