kniffelige Sache

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

  • kniffelige Sache

    Hallo Leute,

    ich bins mal wieder der Anfänger am kleinen privaten Projekt.

    Noch immer arbeite ich an dem Galerie System. Weit bin ich gekommen, doch beim Feinschliff da happert es.
    Folgende Ausgangssituation habe ich. Die Tabellen:
    Tablename = Competition:
    com_id, pic_link, Thumb_link, name, sn usw
    Tablename = Verweis:
    verweis_id, com_id, style_id
    Tablename = style:
    style_id, stylename

    Ich frage nun in einer Query die Table Competition nach einer SN ab, die ich per Submit übermittelt habe.
    PHP-Code:
    $keywords = ($_GET['sn']); 
    Das sieht dann so aus in der Query:
    PHP-Code:
        if ($result $mysqli->query("SELECT  * FROM   competition,verweis,style, fabric, colour, size, varia
                                    WHERE   sn = '
    $keywords'
                                AND competition.com_id=verweis.com_id
                                AND verweis.style_id=style.style_id"
    ); 
    Das klappt auch alles Super ich bekomme das Ergebnis welches ich gerne möchte.
    ABER. Nun zu meinem Problem.

    Ich lade daraus Bilder die per Link eingebunden werden ( Gott sei dank habe ich mir den Rat zu herzen genommen, Bilder nicht in der DB zu speichern ).
    Es ergibt sich aber das Problem das zu einem Eintrag in der Table Competition, mehrere Einträge in der Verweis Table gemacht werden.
    Zusätzlich nutze ich zum anzeigen der Bilder die Lightbox. Die kann den "title" des Bildes darstellen.
    Also alles was ich möchte ist:
    Zu jedem Bild die dazugehörigen Einträge aus der Verweis holen und dann im title anzeigen lassen.

    Mein bis Quellcode bis jetzt sieht so aus:
    PHP-Code:
    $last "";
        while(
    $daten $result->fetch_array()) 
        {    
          if (
    $last != $daten['com_id'])
              {
                   echo 
    '<a rel="lightbox[pictures]" class="navi" 
            title="'
    .htmlspecialchars($daten["name"]) .'<br/>'
           
    htmlspecialchars ($daten["stylenum"]).'-'.'<br />'
           
    .'" href="'htmlspecialchars($daten["pic_link"]) . '">
           <img src="'
    htmlspecialchars($daten["thumb_link"]). '" alt=""/></a>';
              
    $last $daten['com_id'];
        }
           else
           {
           echo  
    htmlspecialchars ($daten['stylenum'])  
        .
    '-'htmlspecialchars ($daten['stylename']) 
        .
    '<br />';
           } 
    Damit schaffe ich es das der erste Eintrag in den title geschrieben wird. Aber leider schaffe ich es nicht, alle Einträge für die com_id in den title zu laden.
    Ich habe schon alles versucht wie ich den link zum Bild nach der Abfrage der zusätzlichen Einträge schliessen kann. Aber das scheint nicht das Mittel zum
    Erfolg zu sein.
    Es muss irgendwie auch anders gehen oder... aber leider reichen meine Fähigkeiten noch nicht aus das Problem zu lösen.
    Vielleicht habt ihr einen Tip???
    Vielen Dank schon mal im Voraus!!!
    lg
    Sascha
    Zuletzt geändert von sascha_h; 25.02.2011, 11:51.

  • #2
    habs noch nicht ganz verstanden.

    welche query setzt du ein und welches Ergebnis erwartest du. Poste ruhig ein kleines, reduziertes Beispiel.

    Kommentar


    • #3
      Hallo,

      habe das Problem gestern mit einem Kumpel zusammen Schritt für Schritt gelöst.
      Der Code sieht nun so aus:
      PHP-Code:
          function clear($text)
          {
              return 
      htmlspecialchars($text);
          }
          
      $keywords = ($_GET['sn']);     
              
      $i=1;
              
      $ausgabe='';
              if (
      $comresult $mysqli->query('SELECT * FROM competition WHERE sn = '.$keywords.' ORDER BY com_id'))
                   {     
      $ausgabe .= '<tr>';
                      while( 
      $comerg $comresult->fetch_array())
                      {
                          if(
      $verweisresult $mysqli->query('SELECT * FROM verweis WHERE com_id = '.$comerg['com_id']))
                              { 
                                  
      $info='';
                                  while(
      $verweiserg $verweisresult->fetch_array())
                                      {    if(
      $inforesult $mysqli->query('SELECT * FROM  style, fabric, varia, colour, size WHERE
                                              style.style_id = '
      .$verweiserg['style_id'].'
                                              AND fabric.fabric_id  = '
      .$verweiserg['fabric_id'].'
                                              AND varia.varia_id  = '
      .$verweiserg['varia_id'].'
                                              AND colour.colour_id  = '
      .$verweiserg['colour_id'].'
                                              AND size.size_id  = '
      .$verweiserg['size_id'] ))
                                          {    
                                              while(
      $infoerg =$inforesult->fetch_array())
                                              {    
                                                  if(
      strlen($info)>0
                                                  {
                                                      
      $info.='<br>';
                                                  }
                                                  
                                                  
      $info.= clear($infoerg['stylenum']).' '.clear($infoerg['stylename']).
      '
      .clear($infoerg['fabricname']).' '.clear($infoerg['varianame']).
      '
      .clear($infoerg['colourname']).' '.clear($infoerg['sizename']);

                                              }
                                          }
                                      }
                              }
                              
                          
      $ausgabe .= '<td><a rel="lightbox[pictures]" class="navi" href="'.clear($comerg['pic_link']) .'" title="'.clear($comerg['name']) .'<br>'.$info.'">';
                          
      $ausgabe .= '<img src="'clear($comerg['thumb_link']). '" alt=""/></a></td>'."\n";
                          
                          if((
      $i%4) ==0)
                              { 
                                  
      $ausgabe.='</tr><tr>'
                              }
                              
                          
      $i++;
                      }
                  
      $add='';
                  if((
      $i-1)%4!=0# Letzte Zeile
                  
      {
                        for(
      $j=($i-1)%4+1;$j<=4;$j++)
                       
      $add.='<td></td>';
                       
      $ausgabe .= $add.'</tr>';
                  }
              }
          if(
      strlen($ausgabe)>)
              {     echo 
      '<table align="center" width="740px" border="0px #ac0c2a" >'.$ausgabe.'</table>'
              }
              else { echo 
      'Keine Daten gefunden'
                  }
              
      ?> 
      Danke für eure Mühen.
      Sascha

      Kommentar

      Lädt...
      X