[PHP] Data 2 verschillende tabellen naast elkaar zetten.

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • MrVegeta
  • Registratie: September 2002
  • Laatst online: 11-09 20:46

MrVegeta

! Dolf is rechtvaardig !

Topicstarter
Ik ben bezig mijn portfolio een update te geven en ik wilde graag mijn "kennis" van PHP hierbij gebruiken. Nu gaat het allemaal prima, het doel is om een "CMS" op te bouwen achter de portfolio waarmee ik dus snel, simpel en overal mijn portfolio kan updaten zonder HTML / FTP programma's te gebruiken. Zoals ik zei gaat het allemaal wel prima alleen loop ik nu tegen een vervelend probleem aan.

Namelijk de pagina waar ik mijn werk wil laten zien heb ik verdeeld in 2 divs, namelijk een div links voor het plaatje en rechts voor wat text en uitleg. Plaatje uploaden en showen gaat prima en ik haal ook prima de data uit de DB.

Het probleem is echter dat de pagina verkeerd wordt opgebouwd, ipv "img / text / img text / img text" etc doet die "img img img"en daarna pas de text divs. Dat ligt hem dus aan mijn PHP structuur van die pagina.

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    <?
    $data = mysql_query("SELECT * FROM portfolio_img ORDER BY id DESC");
    while($info = mysql_fetch_array( $data ))
        {
    echo "<div class='portfolioimg'>";
    echo    "<a href='http://www.no-illusions.nl/demo/images/".$info['image'] ."'>
            <img alt='' src='http://www.no-illusions.nl/demo/images/".$info['image'] ."'></img>
            </a>";
    echo "</div>";
        }

    $result = mysql_query("SELECT * FROM portfolio ORDER BY id DESC");
    while($row = mysql_fetch_array($result))
      {
      echo "<div class='portfoliotxt'>";
      echo "<p><b>" . $row['soort'] ."</b><br />";
      echo "" . $row['link'] ."<br /><br />";
      echo "<b>Vaardigheden</b><br />";
      echo nl2br( "" . $row['vaardigheden'] . "<br /><br />");
      echo "<b>Omschrijving</b><br />";
      echo nl2br( "" . $row['omschrijving'] . "<br />");
      echo "</p>";
      echo "</div>";
    }
    ?>


http://www.no-illusions.nl/demo/portfolio.php
Ik weet wat het probleem is namelijk de pagina wordt opgebouwd door de {} tags dus het is logisch wat er gebeurd maar ik kan er geen oplossing voor vinden. En ik loop nu toch wel vast, heb al een aantal dingen geprobeerd zoals de tabellen "mergen" zodat ik alles uit 1 tabel kan halen maar dat gaat mis omdat dan mijn plaatjes het opeens niet meer doen.

Dus als jullie nog een oplossing hebben (of hoe het wel moet) dan hoor ik het graag,

Geeft steekhoudelijke argumenten terwijl hij niet weet waar het over gaat. BlizzBoys, HD casts van StarCraft II gemaakt door Tweakers! Het begint, Zombiepocalyps


Acties:
  • 0 Henk 'm!

  • DaRKie
  • Registratie: December 2001
  • Laatst online: 16-09 16:18
je kan dit toch in 1 while doen zodat er steeds <div>img</div><div>text</div> uitkomt?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 <? 
    $data = mysql_query("SELECT * FROM portfolio_img ORDER BY id DESC"); 
    $result = mysql_query("SELECT * FROM portfolio ORDER BY id DESC"); 

    while($info = mysql_fetch_array( $data )) { 
    $row = mysql_fetch_array($result)
    echo "<div class='portfolioimg'>"; 
    echo     "<a href='http://www.no-illusions.nl/demo/images/".$info['image'] ."'> 
            <img alt='' src='http://www.no-illusions.nl/demo/images/".$info['image'] ."'></img> 
            </a>"; 
    echo "</div>"; 

    
      echo "<div class='portfoliotxt'>"; 
      echo "<p><b>" . $row['soort'] ."</b><br />"; 
      echo "" . $row['link'] ."<br /><br />"; 
      echo "<b>Vaardigheden</b><br />"; 
      echo nl2br( "" . $row['vaardigheden'] . "<br /><br />"); 
      echo "<b>Omschrijving</b><br />"; 
      echo nl2br( "" . $row['omschrijving'] . "<br />"); 
      echo "</p>"; 
      echo "</div>"; 
    } 
    ?>


Moesten de beide resultsets niet altijd even groot zijn, wel check inbouwen voor de 2de resultset.

[ Voor 4% gewijzigd door DaRKie op 10-06-2009 15:22 ]


Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
DaRKie schreef op woensdag 10 juni 2009 @ 15:21:
Moesten de beide resultsets niet altijd even groot zijn, wel check inbouwen voor de 2de resultset.
Goh wat zou het toch handig zijn als de database tabellen zou kunnen joinen.

{signature}


Acties:
  • 0 Henk 'm!

  • RobertMe
  • Registratie: Maart 2009
  • Laatst online: 18:59
En ik loop nu toch wel vast, heb al een aantal dingen geprobeerd zoals de tabellen "mergen" zodat ik alles uit 1 tabel kan halen maar dat gaat mis omdat dan mijn plaatjes het opeens niet meer doen.
Ik ga er vanuit dat er altijd een relatie is tussen het plaatje (voorbeeld) en de tekst (het bijbehorende project)

Wat je dus moet doen is bij het plaatje aangeven bij welke tekst het hoort, vervolgens kun je met een join de plaatjes bij de tekst ophalen en die weergeven.

Acties:
  • 0 Henk 'm!

  • MrVegeta
  • Registratie: September 2002
  • Laatst online: 11-09 20:46

MrVegeta

! Dolf is rechtvaardig !

Topicstarter
DaRKie schreef op woensdag 10 juni 2009 @ 15:21:
je kan dit toch in 1 while doen zodat er steeds <div>img</div><div>text</div> uitkomt?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 <? 
    $data = mysql_query("SELECT * FROM portfolio_img ORDER BY id DESC"); 
    $result = mysql_query("SELECT * FROM portfolio ORDER BY id DESC"); 

    while($info = mysql_fetch_array( $data )) { 
    $row = mysql_fetch_array($result)
    echo "<div class='portfolioimg'>"; 
    echo     "<a href='http://www.no-illusions.nl/demo/images/".$info['image'] ."'> 
            <img alt='' src='http://www.no-illusions.nl/demo/images/".$info['image'] ."'></img> 
            </a>"; 
    echo "</div>"; 

    
      echo "<div class='portfoliotxt'>"; 
      echo "<p><b>" . $row['soort'] ."</b><br />"; 
      echo "" . $row['link'] ."<br /><br />"; 
      echo "<b>Vaardigheden</b><br />"; 
      echo nl2br( "" . $row['vaardigheden'] . "<br /><br />"); 
      echo "<b>Omschrijving</b><br />"; 
      echo nl2br( "" . $row['omschrijving'] . "<br />"); 
      echo "</p>"; 
      echo "</div>"; 
    } 
    ?>


Moesten de beide resultsets niet altijd even groot zijn, wel check inbouwen voor de 2de resultset.
Dat had ik natuurlijk al geprobeerd maar gaat die van over zijn nek en laat die niets meer zien.

Geeft steekhoudelijke argumenten terwijl hij niet weet waar het over gaat. BlizzBoys, HD casts van StarCraft II gemaakt door Tweakers! Het begint, Zombiepocalyps


Acties:
  • 0 Henk 'm!

  • MBV
  • Registratie: Februari 2002
  • Laatst online: 19-09 12:39

MBV

Had je de 'join' optie al geprobeerd? 2 queries doen uit 1 database is nogal doelloos, als je met één query alle gegevens op kan halen :)

Ik zie verder dat je geen error handling hebt. Wat krijg je als je error-reporting aanzet, en bij fouten in de queries mysql_error() aanroept?

[ Voor 34% gewijzigd door MBV op 10-06-2009 15:55 ]


Acties:
  • 0 Henk 'm!

  • MrVegeta
  • Registratie: September 2002
  • Laatst online: 11-09 20:46

MrVegeta

! Dolf is rechtvaardig !

Topicstarter
Uiteindelijk gefixed met wat CSS, werkt nou "prima". Misschien dat ik er later nog eens in duik want PHP vind ik toch wel moeilijk!

Geeft steekhoudelijke argumenten terwijl hij niet weet waar het over gaat. BlizzBoys, HD casts van StarCraft II gemaakt door Tweakers! Het begint, Zombiepocalyps

Pagina: 1