login  Naam:   Wachtwoord: 
Registreer je!
 Forum

?php $id=1 ['domain'] ?

Offline Alexjeee - 21/10/2014 17:02
Avatar van AlexjeeeLid Beste,

Ik ben bezig met een overzicht. Maar wat is nu de bedoeling, ik wil een resultaat uit de database ophalen en die laten tonen op me website. Nou dat lukt allemaal wel, maar ik wil aan het resultaat dus het stukje wat het resultaat ophaalt een ID meegeven, dat als ik hem een ID = 1 Meegeef bijvoorbeeld dat hij dus ook het resultaat ophaalt van alles wat bij ID1 hoort. Ik hoop dat jullie me een beetje snappen.

Dit is een beetje het idee:

<?php echo id=1 ['domain'] ?>

Resultaat
http://www.domein.nl/
Maar van de rij in de database met ID 1

<?php echo id=2 ['domain'] ?>
http://www.anderdomein.nl/
En deze zou het dus weer van ID 2 moeten halen.

15 antwoorden

Gesponsorde links
Offline Thomas - 21/10/2014 17:48
Avatar van Thomas Moderator Uhm, je bedoelt een soort van overzichtspagina met hyperlinks met hierin een of ander id, en als je klikt op id X dat er dan een detailpagina getoond wordt met uitgebreide informatie over id X?
Offline Alexjeee - 21/10/2014 17:51
Avatar van Alexjeee Lid Nee, Ik bedoel ik heb 1 pagina waarop 4 pakketten getoond worden, maar ieder pakket heeft ze eigen details. Nou moet het dus zo zijn, dat ik dus als ik het resultaat uit de db ophaal. Dat daar een id aangekoppeld is. Dus dat hij als hij ID 1 meekrijgt hij bijvoorbeeld "Naam" van ID 1 weergeeft als hij ID 2 meekrijgt hij de "Naam" van ID 2 weergeeft.
Offline Thomas - 21/10/2014 19:20
Avatar van Thomas Moderator Hangt helemaal van je database-structuur af.

Enne, SQL tutorials over JOINs enzo are that way  >klik<
Offline Alexjeee - 21/10/2014 19:23
Avatar van Alexjeee Lid Nou me database structuur is gewoon normaal

Dus Tabel -> Rij

Offline Thomas - 21/10/2014 19:29
Avatar van Thomas Moderator Als alle details van één pakket in één record staan, wat is dan precies het probleem?

Als de pakketten en details in verschillende tabellen staan, dan moe(s)t er op een of andere manier (al) een verband tussen zijn? Hoe je deze informatie weer bij elkaar brengt (met JOINs of meerdere queries) hangt van je database-strucuur af.

Of ik begrijp de vraag niet.
Offline Alexjeee - 21/10/2014 19:36 (laatste wijziging 21/10/2014 19:37)
Avatar van Alexjeee Lid Ik denk dat je de vraag niet begrijpt.

Mijn html structuur ziet er zo uit:
  1. &#8203;
  2. <div style="float: left; width: 25%;">OS:</div>
  3. <div style="float: left; width: 18%;"><b>None</b></div>
  4. <div style="float: left; width: 18%;"><b>None</b></div>
  5. <div style="float: left; width: 18%;"><b>None</b></div>
  6. <div style="float: left; width: 18%;"><b>Limiet</b></div>
  7. <div style="clear: left;"></div>


Maar dit moet het worden:
  1. &#8203;
  2. <div style="float: left; width: 25%;">OS:</div>
  3. <div style="float: left; width: 18%;"><b>$DB & ID=1 Resultaat = ['name'] - DirectAdmin</b></div>
  4. <div style="float: left; width: 18%;"><b>$DB & ID=2 Resultaat =['name'] - Wefact</b></div>
  5. <div style="float: left; width: 18%;"><b>$DB & ID=3 Resultaat =['name'] - Linux</b></div>
  6. <div style="float: left; width: 18%;"><b>$DB & ID=4 Resultaat =['name'] - Debian</b></div>
  7. <div style="clear: left;"></div>
Offline Thomas - 21/10/2014 19:49
Avatar van Thomas Moderator En die ID's, dat zijn... identifiers van specifieke eigenschappen? Die per pakket een verschillende waarde kunnen hebben ofzo?
Offline Alexjeee - 21/10/2014 19:52
Avatar van Alexjeee Lid Nee bijvoorbeeld:

Tabel: packages
Rij 1: id, name, os, ftp, etc. etc.
rij 2: id, name. os, ftp, etc. etc.
Offline Thomas - 21/10/2014 20:06
Avatar van Thomas Moderator En wat is daarbij het probleem? Past het niet in je HTML-structuur / is het lastig om dit in loops te verwerken? Kun je de informatie niet goed ophalen?

Als ik het goed begrijp (wat ik niet echt doe, maar goed) dan heb je per "eigenschap" (bijvoorbeeld "OS") een aantal "waarden" (bijvoorbeeld "DirectAdmin", "Wefact" etc.) die je af wilt drukken. Maar die waarden haal je toch ook ergens vandaan, en je moet dan toch op een of andere manier weten welke waarden bij welke eigenschap horen? Dus je eigenschap zou ook een id moeten hebben zodat je hier waarden aan kunt koppelen?

En dan zou je ook nog pakketspecifieke "opties" kunnen hebben (subsets van deze eigenschappen/waarden) waar uit gekozen kan worden. Zoiets dan?

Ik kan me er eigenlijk nog steeds niks bij voorstellen eigenlijk .

Je kunt mogelijk hierbij de volgende vuistregels hanteren:
- als je het niet makkelijk in 1 query kunt oplossen, gebruik er dan meerdere
- je kunt opgehaalde informatie structureren in arrays, als je dit soort "datasets" een beetje handig bouwt dan kun je meestal je doel relatief eenvoudig bereiken
Offline Alexjeee - 21/10/2014 20:15
Avatar van Alexjeee Lid Nee, ik heb gewoon de tabel: package en dan de tabel heeft de structuur ID, Name, OS, FTP etc.. etc..
In die tabel voeg ik een rij toe ID wordt bepaald door de INT Auto Increment.

Nu heb ik op de pagina zelf van de website, dat er 4 pakketten worden getoond. Basis, Medium, Premium etc.

Nu moet dus van: package

Bij basis alles van ID 1 opgehaald worden.
Bij Medium alles van ID 2

ID 1 = Rij 1 van package
ID 2 = Rij 2 van package

Maar zoals je kijkt naar de html opmaak, dan betekend het dat ik dus 4 verschillende resultaten moet ophalen. Dit wil ik dus doen door het resultaat ook een id mee te geven die die de database weer heeft gegeven aan de rij 1 of rij 2

Een soort van voorbeeld is dus:

Dit resultaat zou dus de naam moeten ophalen van Rij 1 Die dus ID 1 heeft
<?php echo $id=[1] & $Arow=['name']; ?>

Dit resultaat zou dus de naam moeten ophalen van Rij 2 Die dus ID 2 heeft
<?php echo $id=[2] & $Arow=['Name']; ?>

Noem zo maar op.
Offline Thomas - 21/10/2014 20:27
Avatar van Thomas Moderator Okay, dus je wilt per HTML "rij" de waarden van één eigenschap afdrukken (die in je database in één kolom staan)?

Dus zoiets:
  1. . | basis | medium | premium |
  2. -------------+---------+--------+---------+
  3. eigenschap 1 | x | y | z |
  4. eigenschap 2 | a | b | c |
  5. eigenschap 3 | 1 | 2 | 3 |


Waarbij een package dus bijvoorbeeld een record is met de waarden "x", "a", en "1"?

Echt, het maken van een plaatje is best wel handig voor het begrip.

In feite wil je dus een record-rij als een HTML-kolom afdrukken?
Offline Alexjeee - 21/10/2014 20:33 (laatste wijziging 21/10/2014 20:37)
Avatar van Alexjeee Lid ja, precies zoals je plaatje beschrijft.

De HTML Code die ik net liet zien geeft dus 4 rijen naast elkaar weer
Met dus 4 verschillende waardes van 4 verschillende rijen uit de database dus van Basis, Medium Premium, XL

Maar als ik nu 4 resultaten ophaal uit de database krijg ik alles van Rij 1 met ID 1
Maar ik moet dus 4 resultaten ophalen met ID 1, ID 2, ID 3, ID 4.
Maar die ID moet dus aan het resultaat dus de <?php echo $resultaat ?> gekoppeld zijn, anders zou ik dus continue php moeten openen met welke id dan de resultaat ophalen, php sluiten, php openen andere id, resultaat ophalen, php sluiten. Maar dat is geen optie.

Je plaatje klopt precies en net wat je zegt werkt makkelijker inderdaad haha
Offline Thomas - 21/10/2014 21:02
Avatar van Thomas Moderator Zet je resultaten in een of meer arrays, op de volgende manier.

De volgende code moet aangepast worden aan je eigen naamgeving.

Op soortgelijke wijze kun je de HTML table ook omzetten naar divs als je dat leuk vindt.

  1. <?php
  2. // je query
  3. $res = $db->query('SELECT * FROM table ORDER BY id');
  4. $headings = array();
  5. $rows = array();
  6. while ($row = $res->fetch_assoc()) {
  7. $headings[] = $row['<kolom_die_naam_van_package_bevat>'];
  8. foreach ($row as $k => $v) {
  9. $rows[$k][] = $v;
  10. }
  11. }
  12. $res->free();
  13.  
  14. // voorbeeld resultaat:
  15. /*
  16. $headings = array(
  17.   'basic',
  18.   'medium',
  19.   'premium',
  20. );
  21. $rows = array(
  22.   'property 1' => array(
  23.   'x',
  24.   'y',
  25.   'z',
  26.   ),
  27.   'property 2' => array(
  28.   'a',
  29.   'b',
  30.   'c',
  31.   ),
  32.   'property 3' => array(
  33.   '1',
  34.   '2',
  35.   '3',
  36.   ),
  37. );
  38. */
  39. ?><table border="1">
  40. <thead>
  41. <tr>
  42. <th>&nbsp;</th><?php
  43. foreach ($headings as $v) {
  44. ?><th><?php echo $v ?></th><?php
  45. }
  46. ?></tr>
  47. </thead>
  48. <tbody><?php
  49. foreach ($rows as $k => $row) {
  50. ?><tr>
  51. <td><?php echo $k ?></td><?php
  52. foreach ($row as $col) {
  53. ?><td><?php echo $col ?></td><?php
  54. }
  55. ?></tr><?php
  56. }
  57. ?></tbody>
  58. </table>


Succes.
Offline Alexjeee - 21/10/2014 21:12
Avatar van Alexjeee Lid Echt top !
Alleen ik vraag me nu wel af, want dit soort code's snap ik dus nog niet helemaal.
Hoe zorg ik er dan voor dat ik dus die waarde echo op de plek dat die moet komen. Dus zoals hieronder aangegeven.

  1. &#8203;
  2. <div style="float: left; width: 25%;">OS:</div>
  3. <div style="float: left; width: 18%;"><b>(['name']Resultaat van Basis)</b></div>
  4. <div style="float: left; width: 18%;"><b>(['name']Resultaat van Medium)</b></div>
  5. <div style="float: left; width: 18%;"><b>(['name']Resultaat van Premium)</b></div>
  6. <div style="clear: left;"></div>


Kan aan mij liggen dat ik het vraag hoor, maar ik snap nu niet zo goed hoe je alsnog het resultaat ophaalt en het onderscheid van ID 1 of ID 2 etc..
Offline Thomas - 22/10/2014 00:13
Avatar van Thomas Moderator $var[] = <iets>;
wil zeggen:
ken <iets> toe aan de eerste vrije positie van het array $var. Arrays worden op die manier genummerd (geïndexeerd) vanaf 0.

Die
$rows[$k][] = $v;
zorgt ervoor dat elke eigenschap ($k) wordt opgeslagen in zijn eigen subarray die ook weer genummerd wordt vanaf 0.

De buitenste foreach in de bovenstaande code doorloopt de eigenschappen.
De binnenste foreach in de bovenstaande code doorloopt alle indexen van een eigenschap.

Het bovenstaande fragment kun je echt 1:1 vertalen uit mijn code...

  1. <?php
  2. foreach ($rows as $k => $row) {
  3. ?><tr>
  4. <td><?php echo $k ?></td><?php
  5. foreach ($row as $col) {
  6. ?><td><?php echo $col ?></td><?php
  7. }
  8. ?></tr><?php
  9. }
  10. ?>


Wordt

  1. <?php
  2. foreach ($rows as $k => $row) {
  3. ?><div style="float: left; width: 25%;"><?php echo $k ?></div><?php
  4. foreach ($row as $col) {
  5. ?><div style="float: left; width: 18%;"><b><?php echo $col ?></b></div><?php
  6. }
  7. ?> <div style="clear: left;"></div><?php
  8. }
  9. ?>


Ik had eerlijk gezegd gedacht dat je dat nog wel zou lukken...

Overigens: voor de goede orde zou je al je output (alles wat je echo'd) moeten escapen.

Daarnaast: inline styles maken je code echt onleesbaar... Ik zou je daarom ook aanraden om gebruik te maken van aparte stylesheets.

En ook: omdat het toch om "tabular data" gaat, waarom niet gewoon een table gebruiken. Het is een beetje masochistisch om complete tables na te bouwen met divs, terwijl dit echt geen toegevoegde waarde heeft...
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.224s