Bitte um Hilfe

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

  • Bitte um Hilfe

    Hallo zusammen.

    Ich bin ein Neuling in Sachen PHP und versuche gerade mein erstes Skript zu schreiben. Leider sind mir einige Dinge noch unklar wie man es am besten macht.

    Ziel des Skriptes: In der Datenbank werden Nummer gespeichert (ca.50). Diese Nummer was verfügbar sind möchte ich auslesen und als Grafik ausgeben, ist die Nummer in der Datenbank nicht vorhanden soll eine andere Grafik ausgegeben werden.

    Mein Versuch:
    Aus der Datenbank hole ich alle Werte. Nun mein Problem, da es mein erstes Skript ist und ich nicht viel Erfahrung habe bin ich mir nicht im klaren wie es vernünftig weiter geht.

    Mein Versuch was nicht klappt

    PHP-Code:
    for($i=0$i<count($nummer); $i++) {
            
    //Bild1
            
    if($nummer[$i]["id"] == 5050) {
            echo 
    "<img src='".$nummer[$i]["id"]."' height='$bildh' width='$bildb'>";}
            else { 
            echo 
    "<img src='".$nummer[$i]["id"]_nicht."' height='$bildh' width='$bildb'>";}
            
            
    //Bild 2
            
    if($nummer[$i]["id"] == 6060) {
            echo 
    "<img src='".$nummer[$i]["id"]."' height='$bildh' width='$bildb'>";}
            else { 
            echo 
    "<img src='".$nummer[$i]["id"]_nicht."' height='$bildh' width='$bildb'>";}
            } 
    Wie kann ich das am besten durcharbeiten lassen? Mit if-elseif oder ein Array erstellen mit allen IDs? Ich weiß im moment nicht weiter. Wäre über Hilfe sehr verbunden.
    Danke

  • #2
    definiere "nummer als bild ausgeben".

    Kommentar


    • #3
      In der Datenbank sind bei jedem User verschiedene Nummer gespeichert. Insgesamt sind aber nur 50 erhältlich. Die Nummern sind 1010, 2020, 3030 usw...
      Jetzt möchte ich abfragen, welche Nummern sind für den User gespeichert was ich mit der for Schleife mache. Damit habe ich mal alle gespeicherten Nummern. Das Skript sollte nun verarbeiten gibt es die Nummer in der Datenbank dann sollte als echo ein <img src=Grafik1> rauskommen, gibt es die Nummer in der Datenbank des Users nicht <img src=Grafik2>.

      Kommentar


      • #4
        Pseudocode:

        $nummern_all = array('mit allen nummern drin); // das hast du ja bereits.

        select nr from nummern // nummern aus db holen und in $nummern_db speichern.

        for(durch das $nummern_all array laufen)
        {
        if(in_array(nummer,$nummern_db))
        --> vorhanden
        else
        --> nicht vorhanden
        }

        Fertig

        Kommentar


        • #5
          Danke das ist schon ein Schritt in die Richtung wo ich hin will. Jedoch benötige ich für jede ID die im Array ist ein eigenes Bild. Dadurch muß ich jedes Bild einzeln Prüfen und auch die Ausgabe muß einzeln erfolgen.

          Dann müsste ich irgendwie die ID fix festlegen und für jede ID eine true oder false Ausgabe erhalten, wenn die in der DB vorhanden ist Grafik1, wenn nicht Grafik2.

          PHP-Code:
           if($nummer[$i]["id"] == 5050
          Mit $nummer[$i]["id"] hole ich alle Nummer aus der Datenbank. Falls in der DB die Nummer 5050 ist da steh ich jetzt an.

          Wie kann ich da eine if-else function dazubauen (oder gibt es noch andere functionen die man da einsetzen könnte?) die nur für das eine Bild gilt? Ich dachte mir das so wie im ersten Post geschrieben habe, nur für 50 Bilder nicht wie im Beispiel für 2.

          Kommentar


          • #6
            nee nee, du denkst da falsch rum!

            drehs mal andersrum:

            if(inarray(5050,$numbers_db))
            --> bild für id ist vorhanden
            else
            --> nicht vorhanden

            und davon machste dann halt 50 stück.

            wenn du dann weiter bist, kannst du das auch in eine schleife machen. aber soweit bist du noch nicht.

            Kommentar


            • #7
              Danke für deine tolle und rasche Hilfe. Habe es nun zum laufen gebracht.

              Kommentar


              • #8
                Nach ein wenig Pause und nachdenken habe ich es so versucht. Was hälst du von dieser Lösung? Könnte ich lassen oder ist da ein Fehler versteckt?

                PHP-Code:
                // grund tabelle auf und zähler für Zellen auf null
                echo '<table width=100% border="1"><tr>';
                $cell 0;

                // schleife zum abarbeiten 
                for($alle=0$alle<count($nummern_all); $alle++)
                {
                $zuprüfen $nummern_all[$alle];
                $vorhanden 0;

                // schleife zum überprüfen ob vorhanden
                for($i=0$i<count($nummern); $i++) 
                {
                if(
                $nummer[$i]["id"] == $zuprüfen)
                {
                $vorhanden ;}
                };

                // zeilen und spalten erstellen
                if($cell<$spalten) {echo "<td>"$cell++;} else {echo "</tr><tr><td>"$cell=1;};

                // ausgabe in zelle
                if ($vorhanden == 1)
                {echo 
                "du hast "; echo $zuprüfen; echo "</td>";}
                else
                {echo 
                "du hast nicht "; echo $zuprüfen; echo "</td>";};

                Zuletzt geändert von Fred1; 25.03.2006, 11:23.

                Kommentar


                • #9
                  inhalt von $nummern_all??

                  in_array() gibts übrigens auch als Funktion!

                  Kommentar


                  • #10
                    Klasse Danke!

                    $nummern_all ist das Array mit allen verfügbaren Nummern.

                    Kommentar


                    • #11
                      Original geschrieben von Fred1
                      $nummern_all ist das Array mit allen verfügbaren Nummern.
                      Und wie sieht es aus? D.h. Wie ist es aufgebaut?

                      Kommentar


                      • #12
                        Ich nehm mal an, die Bildernummern pro user sind relational, dh in einer Tabelle gespeichert, etwa
                        bildnrtab: bildnr, userid.

                        Dann ist das eigentlich ein Fall für join und left join.

                        Es braucht noch eine Tabelle mit allen Bildern:
                        allebildertab: bildnr

                        PHP-Code:
                        select usertabelle.userid as useridRSbildnrtab.bildnr as bildnrRS 
                          from usertabelle
                          join allebildertab on true
                          left join bildnrtab on allebildertab
                        .bildnr bildnrtab.bildnr 
                           
                        and usertabelle.userid=bildnrtab.userid
                          where userid
                        =$meinuser
                        left join liefert für nicht vorhandene Zeilen in bildnrtab Nullfelder, dh bildnrRS is NULL. Man bekommt auf jeden Fall 50 Zeilen im resultset.

                        Kommentar


                        • #13
                          Das Array sieht so aus:
                          PHP-Code:
                           $nummern_all = array("1010","2020","3030","4040","5050" usw..); 
                          Der Datenbank Zugriff gestaltet sich etwas schwierig da die Daten als "Blog" gespeichert werden. Diese werden nur gecached, die Abfrage erfolgt Live aus dem Inet. Falls aktualisierungen von nöten sind, wird die Datenbank Upgedated.

                          Deshalb die Schleife statt des Direktzugriffes.

                          Kommentar

                          Lädt...
                          X