Newbie braucht Eure Hilfe...

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

  • Newbie braucht Eure Hilfe...

    Hi...
    Bin noch ein absoluter Neuling in PHP und SQL. Vielleicht kann mir ja jemand bei meinem Problem helfen. Ich habe eine Datenbank, in der ich zu einer automatisch vergebenen ID jeweils ein Bild, einen Link und ein paar andere Textdaten in einem Datensatz habe. Es handelt sich hierbei um eine Art Shopsystem. Auf meiner Indexseite möchte ich nun einen Zufallsartikel darstellen. Ich habe auch schon einen Lösungsansatz, der aber so nicht funktioniert. Also erschlagt mich hier nicht gleich. Ich suche eine funktionierende Lösung, die auch ein Newbie wie ich verstehe...
    Für Eure Hilfe wäre ich Euch sehr dankbar...
    PHP-Code:
    <?php
    @MYSQL_CONNECT("localhost","Name","Passwort");
    @
    mysql_select_db("Datenbank");

    $query "SELECT id FROM binary_data_dvd ORDER BY RAND() LIMIT 0,1";

    if(
    $id) {
        
        
    $query "select bin_data,filetype from binary_data_dvd where $id";
        
        
    $result = @MYSQL_QUERY($query);

        
    $data = @MYSQL_RESULT($result,0,"bin_data");
        
    $type = @MYSQL_RESULT($result,0,"filetype");
        
        
    Header"Content-type: $type");
        echo 
    $data;

    };
    ?>
    Ich habe mittlerweile festgestellt, dass einfach nur rumprobieren mich nicht weiterbringt, daher wende ich mich an Euch. Für Lösungen oder Lösungsvoschläge sage ich schon einmal im Vorfeld Danke !!!

    Euer Idefix

    EDIT:
    php.tags by Abraxax
    Zuletzt geändert von Abraxax; 04.09.2003, 23:17.

  • #2
    1. die erste query wird nicht an die db gesendet.

    2. solltest du dir die @'s abgewöhnen. dadurch werden nur fehlermeldungen unterdrückt, die dir bei einer fehlersuche hilfreich sind.

    3. arbeite mit or die(mysql_error()) bei mysql_query()

    4. wenn du 1.-3. beachtet hast, kannst du nochmal posten...
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Hallo Abraxax.
      Danke zunächst einmal für Dein Posting.
      Aber genau hier liegt ja mein Problem. Wie kann ich eine Zufalls ID auslesen und den Rest der zu dieser ID gehörenden Daten auch.
      Das mit dem @ habe ich bei mir jetzt schon einmal rausgenommen.
      Aber ich kriege keinerlei Ausgaben oder Fehlermeldungen angezeigt.

      Gruß
      Idefix

      Kommentar


      • #4
        ich habe deinen code mal umgeschrieben.

        PHP-Code:
        <?php

            
        @mysql_connect('localhost','Name','Passwort') or die('can not connect database host');
            @
        mysql_select_db('Datenbank') or die('can nott select database');
            
            
        $sql 'SELECT      id, bin_data, filetype
                    FROM        binary_data_dvd
                    ORDER BY    RAND() LIMIT 1'
        ;
            
        $res mysql_query($sql) or die(mysql_error());
            if (
        mysql_num_rows($res)==1)
            {
                
        $row mysql_fetch_assoc($res);    
                
        header ('Content-type: '.$row['filetype']);
                echo 
        $row['bin_data'];
            }
            else
            {
                echo 
        'error';
            }
            
        ?>
        schaue ihn dir genau an, teste ihn, und sage, dass es passt.... (habe ihn nicht getestet)
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          hiho

          zwar haett es ne einfach suche nach rand() auch getan, aber ich poste dir hier mal ne grobe loesung...
          du machst eine mysql-abfrage, in der du dir einen zufaelligen dagensatz aus der db holst ...

          PHP-Code:
          $sql "select * from binary_data_dvd order by rand(".time().") LIMIT 0,1"
          wichtig ist hierbei das die funktion rand() mit parametern aufgerufen wird, weil sie sonst oft den gleichen datensatz ausspuckt... nen timestamp biettet sich da natuerlich an ....
          haette man auch alles im forum finden koennen ....
          oder bei mysql.com
          den rest solltest alleine hinbekommen

          gruss
          iglo

          Kommentar


          • #6
            Hi.
            Danke für Eure Antworten. Ich habe das Script mal ausprobiert und kriege jetzt folgende Fehlermeldung:

            Call to unsupported or undefined function mysql_fetch_assoc() in Pfad..../getdata.php3 on line 13

            In Zeile 13 ist folgendes eingetragen:

            $row = mysql_fetch_assoc($res);
            header ('Content-type: '.$row['filetype']);
            echo $row['bin_data'];

            Ausserdem weiß ich immer noch nicht wie ich dann aus dem speziellen Datensatz, den sich das Script ausgesucht hat, die anderen Daten ziehe.
            Hört sich sicher blöd an, ist es aber auch...
            Ich fange nunmal gerade an, mich mit der Materie zu beschäftigen...
            Sorry

            Gruß Chris

            Kommentar


            • #7
              was für eine php-version hast du, dass der die fkt nicht kennt?


              probiere auch mal bitte
              PHP-Code:
              $row mysql_fetch_array($res); 
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Hallo Abraxax,
                die Abfrage als solche scheint zu funktionieren. Bei der PHP-Version bin ich mir nicht ganz sicher. Habe einen Server von 1&1...
                Nun habe ich allerdings in Zeile 14 noch ein Problem und die Binärdatei wird scheinbar ohne Filetyp ausgelesen ( nur eine Menge Zeichenfolgen werden ausgegeben) :

                Warning: Cannot add more header information - the header was already sent (header information may be added only before any output is generated from the script - check for text or whitespace outside PHP tags, or calls to functions that output text) in /homepages/39/d74406256/htdocs/Cash-Start/getdata.php3 on line 14
                ÿØÿàJFIFHHÿÛC%%%%0'''''02-////-22566652::<<::BBBBBBBBBBBBBBBÿÛC&&0&!!&060/)/06;522225;8:666:8==;;==BBBBBBBBBBBBBBBÿÀ³ÿÿÄÿÄ<!1"AQ2aBq ‘¡#±Á$RÑð3b‚áñCcr¢²ÿÄÿÄÿÚ ?÷€AÂë Iœ ˜”P€@ €@
                ... usw.

                Aber wenigstens findet er ja schon einmal eine Bilddatei... :-)

                In Zeile 14 habe ich folgenden Scripttext stehen:

                header ('Content-type: '.$row['filetype']);

                Und dann wäre da immer noch das kleine Problem, wie ich die restlichen Daten aus dem nun ausgesuchten Datensatz herauslesen kann.

                Ach ja, so ein Script kann einen schon zur Verzweiflung treiben, wenn man sich nicht so auskennt wie Ihr....

                Gruß
                Idefix

                Kommentar


                • #9
                  ich würde mal sagen, dass du einen falschen content-type in der db hast...

                  mache mal bitte zum test folgendes:
                  PHP-Code:
                  echo $row['filetype'];
                  // header ('Content-type: '.$row['filetype']);
                  // echo $row['bin_data']; 
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Original geschrieben von Idefix
                    Warning: Cannot add more header information - the header was already sent (header information may be added only before any output is generated from the script - check for text or whitespace outside PHP tags, or calls to functions that output text)
                    ich weiss zwar nicht, was es an dem fett markierten teil der meldung nicht zu verstehen gibt - aber wenn du es wirklich nicht kapierst, leis es halt noch einmal hier nach.
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar


                    • #11
                      Hi Abraxax.
                      er liest den Filetyp korrekt aus und gibt nun folgendes aus:

                      image/pjpeg

                      Hilft das weiter ???

                      Gruß
                      Idefix

                      Kommentar


                      • #12
                        Original geschrieben von Idefix
                        Hilft das weiter ???
                        in sofern schon, dass ich nun weiss, dass der korrekte type gesendet wird...

                        aber es bringt mich nicht weiter, warum dein script da meckert.
                        1. ist das script denn absolut alleine in einer datei und hat keinerlei leerzeichen zu beginn und ende der datei?
                        2. hast du das script irgendwo includet?
                        3. was genau machst du wie?


                        ich hoffe, dass ich dann mehr sagen kann.
                        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                        Kommentar


                        • #13
                          Hallo,
                          ich poste Dir mal das Script, mit dem ich die Dateien in die Datenbank schreibe. Ich habe das Ausgabescript nirgendwo included und rufe es einfach auf. Ursprünglich hatte ich das Script so geschrieben, das die Variable $id mit im Browser eingetragen wurde und das Bild dann anzeigte. Auch hier hatte ich aber das Problem, dass ich noch gar nicht weiß, wie ich die anderen Daten aus dem Datensatz dann auslesen soll. Newbie halt



                          Gruß vom Idefix
                          Zuletzt geändert von Idefix; 05.09.2003, 17:56.

                          Kommentar


                          • #14
                            ich wollte jetzt nicht dein hochlade-script checken. da habe ich keine lust zu ...

                            aber grundsätzlich solltest du mal die neuen schreibweisen prüfen.
                            http://de.php.net/manual/de/features.file-upload.php

                            ich denke, dass du erst einmal dies korrekt umsetzen solltest. dann dürften auch keine probleme auftreten.
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              So... Probleme soweit gelöst !!!
                              Jetzt habe ich nur noch 2 Sachen...

                              Hier mein aktuelles Ausgabescript :

                              PHP-Code:
                              <?php

                                  
                              @mysql_connect("localhost","Name","Passwort") or die('can not connect database host');
                                  @
                              mysql_select_db('Datenbank') or die('can not select database');
                                  
                                  
                              $query 'SELECT      id, bin_data, filetype,produktname1,produktname2,beschreibung,datum,sendtime,preis,beurteilung,filelink
                                          FROM        binary_data_dvd
                                          ORDER BY    RAND() LIMIT 1'
                              ;
                                 
                                      
                              $result = @MYSQL_QUERY($query);
                                      
                              $data = @MYSQL_RESULT($result,0,"bin_data");
                                      
                              $type = @MYSQL_RESULT($result,0,"filetype");
                                      
                              $name1 = @MYSQL_RESULT($result,0,"produktname1");
                                      
                              $name2 = @MYSQL_RESULT($result,0,"produktname2");
                                      
                              $beschreibung = @MYSQL_RESULT($result,0,"beschreibung");
                                      
                              $datum = @MYSQL_RESULT($result,0,"datum");
                                      
                              $sendtime = @MYSQL_RESULT($result,0,"sendtime");
                                      
                              $preis = @MYSQL_RESULT($result,0,"preis");
                                      
                              $beurteilung = @MYSQL_RESULT($result,0,"beurteilung");
                                      
                              $link = @MYSQL_RESULT($result,0,"filelink");
                                      
                              Header"Content-type: $type");
                                      echo 
                              "$data";
                                                              echo 
                              "$preis";
                                 
                                  
                                  
                              ?>
                              Ich kriege leider immer noch nicht den Preis angezeigt. Er zeigt mir entweder $data an, oder wenn ich es herauskommentiere den Preis an. Aber ich kann so nicht beides darstellen.
                              Das zweite Problem ist, das ich aus $data (Bild) und $link (http://www....)
                              ein Link unter php auf das Bild setzen möchte, über den man dann auf die Produktseite kommt. Die Zufallsanzeige funzt schon mal super so.... !!!

                              Gruß vom Idefix

                              Kommentar

                              Lädt...
                              X