login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Sql uitvoer mooi weergeven met html css (Opgelost)

Offline smekkie - 04/11/2008 06:34 (laatste wijziging 04/11/2008 18:17)
Avatar van smekkieNieuw lid Hallo allemaal ik heb het volgende probleem ik wil de volgende tabellen:

  1. CREATE TABLE `categorie` (
  2. `categorieid` bigint(20) NOT NULL AUTO_INCREMENT,
  3. `naam` varchar(25) collate latin1_general_ci NOT NULL,
  4. PRIMARY KEY (`categorieid`)
  5. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
  6.  
  7.  
  8. CREATE TABLE `pagina` (
  9. `paginaid` bigint(20) NOT NULL AUTO_INCREMENT,
  10. `categorieid` bigint(20) NOT NULL,
  11. `paginanaam` varchar(25) collate latin1_general_ci NOT NULL,
  12. `content` longtext collate latin1_general_ci NOT NULL,
  13. `subnaam` varchar(25) collate latin1_general_ci NOT NULL,
  14. PRIMARY KEY (`paginaid`)
  15. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=3 ;



Op deze manier weergeven:

**************************************
*Dit is de uitvoer van categorie.naam*
**************************************

*********************************
*Dit is de uivoer van paginanaam*
*********************************


En hier dan de volgende categorie
**************************************
*Dit is de uitvoer van categorie.naam*
**************************************

Om hier weer de volgende paginanamen die onder deze categorie vallen af te drukken.

Kan ik dit voor elkaar krijgen door php met css te combineren?
En hoe doe je dat dan?

8 antwoorden

Gesponsorde links
Offline MiST - 04/11/2008 07:53
Avatar van MiST Lid Whuh? 

Nu zijn er wellicht veel mensen die vinden dat programmeurs chinees spreken, en vinden we dat onderling niet. Op deze uitzondering na dan... 

Er is een fundamenteel verschil tussen PHP (en MySQL) en HTML & CSS

PHP haalt informatie op uit MySQL (of andere databases, of helemaal niet), de Data Layer. PHP genereert HTML (of andere, maar dat is hier niet ter zake). HTML is de structural Layer. De stijlen van elk HTML-attribuut kan je bepalen met CSS, de presentation layer.

In geen geval hebben PHP en CSS dus ook maar iets met elkaar te maken.


Offline Wijnand - 04/11/2008 09:19
Avatar van Wijnand Moderator Ja dit kun je doen, gewoon met query's... ik snap niet helemaal waarom je dit hier vraagt want volgens mij zijn er genoeg tutorials over.

Je doet één query met de categorieën en per categorie haal je de juiste pagina op. Of als je het andersom wilt draai je het gewoon om. Het is volgens mij niet de bedoeling om ons een heel script te laten schrijven. Je moet gewoon beginnen en als je vragen daarover hebt (dus bv : 'waarom werkt dit niet' dan kun je die vraag op het forum stellen).
Offline Kr4nKz1n - 04/11/2008 09:36
Avatar van Kr4nKz1n Onbekend
Wijnand schreef:
Ja dit kun je doen, gewoon met query's... ik snap niet helemaal waarom je dit hier vraagt want volgens mij zijn er genoeg tutorials over.

Je doet één query met de categorieën en per categorie haal je de juiste pagina op. Of als je het andersom wilt draai je het gewoon om. Het is volgens mij niet de bedoeling om ons een heel script te laten schrijven. Je moet gewoon beginnen en als je vragen daarover hebt (dus bv : 'waarom werkt dit niet' dan kun je die vraag op het forum stellen).
Omdat er tegenwoordig niet meer gezocht wordt. Oow een forum, ik vraag het gewoon, scheelt mij weer tijd.

Maar ik snap je vraag niet echt. Wil je de gegevens gewoon uitlezen?
Offline smekkie - 04/11/2008 18:00 (laatste wijziging 05/11/2008 06:31)
Avatar van smekkie Nieuw lid Ik vraag helemaal niemand om voor mij te scripten!

Ik vraag me alleen af hoe ik de gegevens uit de database op de gewenste manier kan presenteren.

Bijvoorbeeld:

  1. $sql = "SELECT * FROM categorie";
  2. $result = mysql_query($mysql);
  3. while ($row = mysql_fetch_array($result))
  4. {
  5. echo $row['naam'];
  6. }


Op deze manier zal de complete inhoud van alle rijen $row['naam']
in 1 keer worden afgedrukt. Maar dat wil ik niet ik wil ze afdrukken dan vervolgens de bijbehorende pagina's eronder.

En dat zal je wel via joins kunnen regelen dat snap ik ook.
Maar het gaat me er dus om dat ik niet in 1 keer alles uit de rij naam in 1 keer afdruk.

Dus het gaat me er niet om hoe krijg ik de gegevens uit de database maar hoe krijg ik ze op de juiste plek op mijn pagina.

Hier het gehele script zoals ik hem nu heb:
  1. <?php
  2. require 'Connections/connect.php';
  3.  
  4. mysql_select_db("$database_connect");
  5. $sql = "SELECT
  6. *
  7. FROM
  8. pagina WHERE paginaid =".mysql_real_escape_string($_GET["pagid"]);
  9. $resultaat = mysql_query($sql);
  10. while ($rij = mysql_fetch_array($resultaat))
  11. {
  12. $id = $rij['paginaid'];
  13. $naam = $rij['paginanaam'];
  14. $content = $rij['content'];
  15. }
  16. if (!mysql_query($sql)) {
  17. echo "Uitvoeren van de query is mislukt".mysql_error();
  18. } else {
  19.  
  20. ?>
  21.  
  22. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  23. <html xmlns="http://www.w3.org/1999/xhtml">
  24. <head>
  25. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  26. <title>Titel</title>
  27. <style type="text/css">
  28. <!--
  29. body {
  30. background: url(ontwerp1.jpg) no-repeat 0% 0%;
  31. background-image: url();
  32. }
  33. #main {
  34. }
  35. #titelbalk
  36. {
  37. display:inline-block;
  38. position: relative;
  39. top: 125px;
  40. left: 20px;
  41. }
  42. #titel {
  43. height: 55px;
  44. top: 500px;
  45. background-image: url(titelbg.png);
  46. background-repeat: repeat-x;
  47. padding: 10px;
  48. width: auto;
  49. float: left;
  50. color: #0033CC;
  51. }
  52. #titellinks {
  53. float: left;
  54. background-image: url(titelbgl.png);
  55. width: 69px;
  56. height: 55px;
  57. }
  58. #content {
  59. float: left;
  60. position: absolute;
  61. top: 211px;
  62. width: 100%;
  63. height: auto;
  64. left: 8px;
  65. }
  66. #contentmain {
  67. float: left;
  68. width: 50%;
  69. color:#0033CC;
  70. padding-left: 20px;
  71. }
  72. #contentnav {
  73. float: right;
  74. width: 49%;
  75. height: auto;
  76. }
  77. #contentnav h1 {
  78. font-size: 16px;
  79. background-image: url(menubg.jpg);
  80. background-repeat: no-repeat;
  81. padding: 5px;
  82. color: #FFFFFF;
  83. }
  84. #contentnav a {
  85. color: #0033CC;
  86. text-decoration: none;
  87. }
  88. #kop {
  89. background-image: url(kop.png);
  90. background-repeat: repeat-x;
  91. height: 167px;
  92. width: 100%;
  93. }
  94. .logo {
  95. float: right;
  96. margin-top: 45px;
  97. margin-right: 20px;
  98. }
  99. #kop h1 {
  100. font-size: 24px;
  101. font-family:Verdana, Arial, Helvetica, sans-serif;
  102. color: #FFFFFF;
  103. position: absolute;
  104. top: 70px;
  105. left: 50px;
  106. }
  107. </style>
  108. <link rel="shortcut icon" href="/favicon.ico">
  109. </head>
  110.  
  111. <body>
  112. <div id="main">
  113. <div id="kop">
  114. <img src="logo.png" class="logo" /><h1>koptekst</h1>
  115. <div id="titelbalk">
  116. <div id="titellinks"></div>
  117. <div id="titel"><?php echo $naam;?></div>
  118. <img src="titelbgr.png" />
  119. </div>
  120. </div>
  121. <div id="content">
  122. <div id="contentmain"><?php echo $content;?></div>
  123. <div id="contentnav"><?php
  124. }
  125. mysql_select_db("database_connect");
  126. $mysql = "SELECT * FROM pagina, categorie WHERE categorie.categorieid = pagina.categorieid";
  127. $result = mysql_query($mysql);
  128. if (!$result) {
  129. while ($row = mysql_fetch_array($result))
  130. {
  131. echo "<h1>".$row['categorieid']."</h1><br />";
  132. echo "<a href=\"index.php?pagid=".$row['paginaid']."\">".$row['paginanaam']."</a><br />"
  133.  
  134. ?>
  135. <?php
  136. }
  137. ?>
  138. </div>
  139. </div>
  140. </div>
  141. </body>
  142. </html>

Zoals hij hier staat drukt hij boven elke link de categorienaam er boven die erbij hoort.
Wat ik dus wil is dat alle links die bij 1 categorie horen onder 1 categorienaam komen.
Offline zointer - 05/11/2008 04:00
Avatar van zointer HTML gevorderde Gebruik aub code tags






Tussen je while $row moet (x)html code en dan hoe je die wil positioneren toch simpel??? Die code lijkt nergens op(rommelig)
Offline smekkie - 05/11/2008 06:28
Avatar van smekkie Nieuw lid Tussen de While $row hoe dan? Zo heb ik het nog nooit gezien.

En dat rommelige daar werk ik nog aan ik wil eerst alles werkend hebben.
Offline henver - 05/11/2008 13:56
Avatar van henver HTML gevorderde Misschien is het wel makkelijker het werkend te krijgen wanneer het niet zo rommelig is. Denk daar maar eens over na.
Offline smekkie - 05/11/2008 18:08 (laatste wijziging 05/11/2008 23:44)
Avatar van smekkie Nieuw lid Ik denk niet dat mijn oplossing daar ligt.
Als het minder rommelig is is het waarschijnlijk wat overzichtelijker maar mijn probleem blijft!

Edit
Probleem al opgelost namelijk zo:
  1. <?php
  2. }
  3. mysql_select_db("database_connect");
  4.  
  5. //menu
  6. $query_cat = "SELECT * FROM categorie";
  7. $query_info = mysql_query($query_cat) or die(mysql_error());
  8.  
  9. //SUCCES!!!
  10. while($gegevens = mysql_fetch_array($query_info))
  11. {
  12.  
  13.  
  14. echo "<h1>" . $gegevens['naam'] . "</h1>";
  15.  
  16. $query_pag = "SELECT * FROM pagina WHERE categorie_id = '" . $gegevens['categorieid']. "'";
  17. $query_info2 = mysql_query($query_pag) or die(mysql_error());
  18.  
  19. ?>
  20. <ul>
  21. <?php
  22. while($rows = mysql_fetch_array($query_info2))
  23. {
  24.  
  25. echo "<li><a href=index.php?pagid=";?><?php echo $rows['paginaid']; ?><?php echo "> " . $rows['paginanaam']. "</a></li>";
  26. }
  27. ?>
  28. </ul>
  29. <?php
  30. echo "<p>";
  31.  
  32.  
  33.  
  34. }
  35.  
  36.  
  37. ?>


Jammer dat niemand me dat hier kon vertellen.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.248s