[PHP] Weergeven tabel in while loop *

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Goedemiddag,

Ik heb een probleem en heb geen flauw idee hoe ik het aan moet pakken (heb nog niet heel erg veel ervaring met php). Ik hoop dat jullie me kunnen helpen!

Zal het eerst even proberen uit te leggen, en daarna de code posten die ik op dit moment heb.

Ik ben bezig met een voortgangsrapportagescript, dit script moet er voor zorgen dat werknemers online hun werkzaamheden van die dag in kunnen vullen en dat deze vervolgens in de database opgeslagen kunnen worden etc. Op dit moment ben ik bezig met het zoekgedeelte. Gemachtigde personen kunnen 2 datums aangeven dmv 6 drop down boxjes. En het script geeft dan alle records op en tussen die 2 datums weer in een tabel (Zie stuk code). Dit dacht ik te doen dmv een WHILE loop. Alleen ik heb geen flauw idee hoe ik er voor kan zorgen datde verschillende variabele gegevens uit de verschillende rijen in de database in de verschillende tabellen terecht komen..Snappen jullie het nog? :x

Misschien brengt mijn code wat verduideliking:

code:
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<HTML> 
<HEAD> 
<TITLE> Zoekresultaten op periode </TITLE> 
</HEAD> 

<? 

error_reporting(E_ALL ^ E_NOTICE); 

include("../dbconnect.php"); 

echo mysql_error(); 

?> 

<body bgcolor="#5F0B7B" link="#FFFFFF" vlink="#FFFFFF" alink="#FFFFFF"> 
<h2>[img]"img/header.jpg"[/img]</h2> 

<? 

$selJaar1=$_POST['selJaar1']; 
$selMaand1=$_POST['selMaand1']; 
  $selDag1=$_POST['selDag1']; 
   $selJaar2=$_POST['selJaar2']; 
    $selMaand2=$_POST['selMaand2']; 
     $selDag2=$_POST['selDag2']; 
      $selDatum1= $selJaar1."-".$selMaand1."-".$selDag1; 
       $selDatum2= $selJaar2."-".$selMaand2."-".$selDag2; 

$selQuery = "SELECT * FROM rapportage WHERE (Date <='".$selDatum1."' AND Date >= '".$selDatum2."')"; 
$selQuery2 = "SELECT * FROM rapportage"; 



mysql_query($selQuery); 
mysql_query($selQuery2); 

echo mysql_error(); 

?> 

<h2><font color="#FFFFFF" face="Verdana">Overzicht zoekresultaten</font></h2> 

<? 

$loop = "$selDatum1"; 
while ($loop == "$selDatum2") 

    { 
      $loop++; 
      echo "<table border=\"1\" bordercolor=\"black\" width=\"78%\" cellspacing=\"0\"
 style=\"font-family: Verdana; font-size: 10px; border-style: solid; border-width: 1px\"> 
      <tr> 
        <td width=\"144\"><font color=\"#FFFFFF\"><b>Datum: (VARIABELE?)</b></font></td> 
        <td width=\"172\"><font color=\"#FFFFFF\"><b>Naam:</b> (VARIABELE?)</font></td> 
        <td width=\"219\"><font color=\"#FFFFFF\"><b>Functie: </b>(VARIABELE?)</font></td> 
        <td width=\"93\"><font color=\"#FFFFFF\"><b>Project: </b>(VARIABELE?)</font></td> 
    </tr> 
<table border=\"1\" bordercolor=\"black\" width=\"78%\" cellspacing=\"0\" 

style=\"font-family: Verdana; font-size: 10px; border-style: solid; border-width: 1px\"> 
    <tr> 
            <td width=\"130\"><font color=\"#FFFFFF\"><b>Begintijd:</b> (VARIABELE?)</font></td> 
            <td width=\"128\"><font color=\"#FFFFFF\"><b>Eindtijd: </b>(VARIABELE?)</font></td> 
            <td width=\"114\"><font color=\"#FFFFFF\"><b>Pauze: </b>(VARIABELE?)</font></td> 
            <td width=\"152\"><font color=\"#FFFFFF\"><b>Gewerkte Uren:</b>(VARIABELE?)</font></td> 
            <td><font color=\"#FFFFFF\"><b>Totaal Project: </b>24</font></td> 
            <td width=\"99\"><font color=\"#FFFFFF\"><b>Afwijking: </b>(VARIABELE?)</font></td> 
        </tr> 
    </table> 
</table> 

</font> 

<table border=\"1\" bordercolor=\"black\" width=\"78%\" cellspacing=\"0\" 

style=\"font-family: Verdana; font-size: 10px; border-style: solid; border-width: 1px\"> 
    <tr> 
        <td><font color=\"#FFFFFF\"><b>Werkzaamheden: </b>(VARIABELE?)</td> 
        <td width=\"379\"><font color=\"#FFFFFF\"><b>Conclusie: </b>(VARIABELE?)</font></font></td> 
    </tr> 
    <tr> 
        <td><font color=\"#FFFFFF\"><b>Mededelingen: </b>(VARIABELE?)</font></td> 
        <td width=\"379\"><b><font color=\"#FFFFFF\">Genomen besluiten:</b>(VARIABELE?)</font></td> 
    </tr> 
</table>"; 

} 

?> 

</body> 
</html>


Bij voorbaat dank!

[ Voor 23% gewijzigd door Verwijderd op 03-06-2004 12:28 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Ik heb geen idee waar je heen wil, ik volg niks van je startpost. Je code is sowieso niet fijn om te lezen, omdat je slecht inspringt, zowel in php en html.

PHP:
1
2
$loop = "$selDatum1"; 
while ($loop == "$selDatum2")

Dat gaat sowieso fout, die while evalueert nooit op true, en wordt nooit betreden. Verder is het nogal nutteloos om quotes om je vars te zetten.

Als ik moet gokken is wat jij wil vrij simpel. Je hebt een while constructie nodig die ook alszodanig opgenomen is in de docs van php op php.net.

PHP:
1
2
3
4
5
6
$query = mysql_query("SELECT * FROM blaat");
while ($data = mysql_fetch_object($query)) {
  echo $data->veld1."<br />";
  echo $data->veld2."<br />";
  echo $data->veld3."<br /><br />";
}

[ Voor 10% gewijzigd door NMe op 03-06-2004 13:02 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Ik raad iets aan wat iets langer duurt om te leren, maar veeeeel makkelijker is in gebruik en onderhoud

www.tinybutstrong.com

Kijk maar eens bij zn examples, die zijn uitmuntend

Ik grbuik het al een geruime tijd, het is een fantastische template engine

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 03 juni 2004 @ 12:41:
Ik raad iets aan wat iets langer duurt om te leren, maar veeeeel makkelijker is in gebruik en onderhoud

www.tinybutstrong.com

Kijk maar eens bij zn examples, die zijn uitmuntend

Ik grbuik het al een geruime tijd, het is een fantastische template engine
Aan de startpost te lezen is TS nog een beginner. Dan lijkt het me een goed idee om eerst de basis van de taal te leren voordat je een template engine gaat gebruiken. Anders zul je nooit helemaal begrijpen wat je doet.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • mjax
  • Registratie: September 2000
  • Laatst online: 15:59
Sorry, maar deze code zal nooit en te nimmer gaan werken. Je begrijp overduidelijk de basisprincipes van programmeren nog niet:

Voorbeeld:

• Je gebruikt een string (datum) in Y-M-D formaat en je telt in je loop hier 1 bij op. Wat verwacht je dat er gebeurd? Dat PHP zo slim is om 1 dag bij deze datum op te tellen? Ik ben bang van niet...
• Je voert op regel 35 en 36 twee queries uit, maar bewaart de resultaten nergens. Ik neem aan dat je deze resultaten in je loop nodig hebt.
• Je while conditie zal nooit naar TRUE evalueren: m.a.w. wat er in de loop aan code staat, wordt helemaal niet uitgevoerd.
• Je code layout is onleesbaar
• En nog meer kleine dingen

Ik denk dat je toch wat veel hooi op je vork neemt met zo'n script. Misschien kun je je beter eens verdiepen in de basisbeginselen van programmeren, of misschien wel van PHP in het bijzonder. Er bestaan genoeg sites, boeken op dit vlak.

Acties:
  • 0 Henk 'm!

Verwijderd

NMe84 schreef op 03 juni 2004 @ 12:44:
[...]

Aan de startpost te lezen is TS nog een beginner. Dan lijkt het me een goed idee om eerst de basis van de taal te leren voordat je een template engine gaat gebruiken. Anders zul je nooit helemaal begrijpen wat je doet.
Dank je voor een diskwalificatie van de intelligentie van beginners.

Bovendien is TBS heel eenvoudig in het gebruik, met de maker die je ten alle tijden helpt in je fouten, en met de uitgebreide voorbeelden is dit echt een "Monkey see monkey do" template engine, die hij zo heeft toegepast op zijn systeem.

Lees de handleiding van TBS maar, je staat verbaasd van hoeveel makkelijker het is dan die loops die hij nu al geschreven heeft.

Dus als je nog eens een poster af wilt zeiken, doe dat niet...

Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Verwijderd schreef op 03 juni 2004 @ 12:41:
Ik raad iets aan wat iets langer duurt om te leren, maar veeeeel makkelijker is in gebruik en onderhoud

www.tinybutstrong.com

Kijk maar eens bij zn examples, die zijn uitmuntend

Ik grbuik het al een geruime tijd, het is een fantastische template engine
De vraag of je hiervoor persé een template engine moet gebruiken weet ik nog net zo niet. Er zijn al meerdere discussies over geweest en iedereen denkt er toch anders over.

Om het beheer en de ontwikkeling te vereenvoudigen is een scheiding tussen content en code wenselijk maar in hoe verre je dit wil doorvoeren is maar de vraag. Het geen wat NMe84 aangeeft is eenvudiger en doet in weze hetzelfde. Daarnaast ga je uiteindelijk toch weer logica toevoegen in je templates waardoor je weer code krijgt. Templates zijn in sommige gevallen heel nuttig maar je krijgt pas een overzichtelijk geheel als je daadwerkelijk ook je opmaak gaat scheiden en dat doe dmv css. ;)

In mijn nieuwe site is het gebruik van een template systeem eigenlijk niet eens nodig er staan hooguit wat kleine html dingetjes in die de noodzaak van een template engine geheel overbodig maken. Die paar <td>, <tr> en <table> tags leveren geen probleem op. :)
Verwijderd schreef op 03 juni 2004 @ 12:49:
[...]
Dank je voor een diskwalificatie van de intelligentie van beginners.
Waarin diskwalificeert hij nou de TS. Aan de code en de manier van werken is het gewoon te zien. Er wordt niets gezegt over intelligentie en dat is ook niet een issue het is eerder een kwestie van kennis die je op doet door het werken. Begin nu gewoon eenvoudig met hello world ipv meteen een enterprise applicatie te ontwikkelen. Te
Bovendien is TBS heel eenvoudig in het gebruik, met de maker die je ten alle tijden helpt in je fouten, en met de uitgebreide voorbeelden is dit echt een "Monkey see monkey do" template engine, die hij zo heeft toegepast op zijn systeem.
Eenvoud is geen proleem het gaat om waarom. :) We zien hier al genoeg voorbeelden van mensen die een halve tutorial hebben gedaan en dan het niet kunnen veranderen naar de eigen situatie. He belangrijkste is begrijpen waarom iets zo werkt. Dara leer je namelijk van nit van het overkloppen van een stuk code.
Lees de handleiding van TBS maar, je staat verbaasd van hoeveel makkelijker het is dan die loops die hij nu al geschreven heeft.
Ach het is maar wat je makkelijk vind ;)
Dus als je nog eens een poster af wilt zeiken, doe dat niet...
Laat dat gewoon aan de modjes over ;)

[ Voor 36% gewijzigd door ripexx op 03-06-2004 12:56 ]

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

ripexx schreef op 03 juni 2004 @ 12:50:
[...]

De vraag of je hiervoor persé een template engine moet gebruiken weet ik nog net zo niet. Er zijn al meerdere discussies over geweest en iedereen denkt er toch anders over.

Om het beheer en de ontwikkeling te vereenvoudigen is een scheiding tussen content en code wenselijk maar in hoe verre je dit wil doorvoeren is maar de vraag. Het geen wat NMe84 aangeeft is eenvudiger en doet in weze hetzelfde. Daarnaast ga je uiteindelijk toch weer logica toevoegen in je templates waardoor je weer code krijgt. Templates zijn in sommige gevallen heel nuttig maar je krijgt pas een overzichtelijk geheel als je daadwerkelijk ook je opmaak gaat scheiden en dat doe dmv css. ;)

In mijn nieuwe site is het gebruik van een template systeem eigenlijk niet eens nodig er staan hooguit wat kleine html dingetjes in die de noodzaak van een template engine geheel overbodig maken. Die paar <td>, <tr> en <table> tags leveren geen probleem op. :)
Dit staat buiten de vraag.
Maar TBS voegt geen code toe aan je templates, en is heel erg verschillend van Smarty of andere systemen.

Ik snap je opmerking over CSS niet...
Ik gebruik
-MySQL: dataopslag
-DB Object(php): data verwerking
-PHP: Programmalogica
-TBS(php): Weergave HTML
-CSS: Opmaak HTML
-Javascript: Clientside programmalogica

Ziet er aardig gescheiden uit, niet?

En zoals je kunt zien heeft CSS vrij weinig met templates te maken, dus zou je die opmerking kunnen verduidelijken?

Templates zijn superhandig omdat je dan veel beter het eindresultaat van je template in de gaten kunt houden. Bovendien biedt het mogelijkheden om je grafisch ontwerper aan de slag te laten gaan en dat je daarna vrij weinig aan de code hoeft te veranderen.

Als jij niet met grafischontwerpers werkt, dan zie je hier het voordeel niet van in ben ik bang....
ripexx schreef op 03 juni 2004 @ 12:50:
[...]

Waarin diskwalificeert hij nou de TS. Aan de code en de manier van werken is het gewoon te zien. Er wordt niets gezegt over intelligentie en dat is ook niet een issue het is eerder een kwestie van kennis die je op doet door het werken. Begin nu gewoon eenvoudig met hello world ipv meteen een enterprise applicatie te ontwikkelen. Te

[...]

Eenvoud is geen proleem het gaat om waarom. :) We zien hier al genoeg voorbeelden van mensen die een halve tutorial hebben gedaan en dan het niet kunnen veranderen naar de eigen situatie. He belangrijkste is begrijpen waarom iets zo werkt. Dara leer je namelijk van nit van het overkloppen van een stuk code.
Hij heeft gelijk dat je bij het begin moet beginnen, maar dat wil niet zeggen dat iemand niet met objecten kan gaan werken. Bovendien komt hij verder dan de gemiddelde beginner...

Bovendien suggereer jij nu ook dat hij het niet kan.
ripexx schreef op 03 juni 2004 @ 12:50:
[...]

Laat dat gewoon aan de modjes over ;)
Ja, en de modjes, die zijn zo eerlijk wil je zeggen. bovendien is dat jezelf verbergen achter de juffrouw roepen dat je het niet gedaan hebt

Dit was het laatste dat ik hierover gezegd heb ;)
voor mij is de topic klaar :D

[ Voor 28% gewijzigd door Verwijderd op 03-06-2004 13:09 ]


Acties:
  • 0 Henk 'm!

  • mr_obb
  • Registratie: Juni 2001
  • Laatst online: 01-09 14:15

mr_obb

Lakse Perfectionist

Een aantal punten:

$selQuery2 is niet nodig, die ga je nooit gebruiken.

Je mysql_query wordt:
PHP:
1
$result = mysql_query($selQuery) or die("Query failed : " . mysql_error());

Je while loop wordt:
PHP:
1
2
3
4
5
6
7
8
9
10
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{

//Hier ga je de tabelrijen vullen

//Voorbeeldje ophalen gegevens uit resultaat:
$Datum = $line('Date');
echo $Datum;

}


En ik raadt je aan om eens te kijken op nl.php.net of beter nog op De PHP gebruikershandleiding over mySQL queries

En ook niet onbelangrijk: Google

[ Voor 21% gewijzigd door mr_obb op 03-06-2004 13:13 . Reden: ff een voorbeeldje ingevoegd om een resultaat op te halen. ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 03 juni 2004 @ 12:49:
[...]
Dank je voor een diskwalificatie van de intelligentie van beginners.

Bovendien is TBS heel eenvoudig in het gebruik, met de maker die je ten alle tijden helpt in je fouten, en met de uitgebreide voorbeelden is dit echt een "Monkey see monkey do" template engine, die hij zo heeft toegepast op zijn systeem.

Lees de handleiding van TBS maar, je staat verbaasd van hoeveel makkelijker het is dan die loops die hij nu al geschreven heeft.

Dus als je nog eens een poster af wilt zeiken, doe dat niet...
Ik zeik niemand af, ik ben reëel. Hoe ben jij begonnen met PHP? Leerde je eerst allerlei schillen en hulpclasses te gebruiken? Of begon je netjes met "hello world" en andere simpele tutorials? Ik bedoel alleen maar te zeggen dat je een taal moet begrijpen voordat je versimpelende classes gaat gebruiken. Zelf gebruik ik ook templates, en ik heb er echt niets op tegen, werkt veel fijner.

Het hele punt is dit (en dan neem ik één uit vele voorbeelden): ik legde een PHP-beginner een template engine voor en leerde hem hoe hij werkte en hoe hij hem moest gebruiken. Dat was geen enkel probleem, hij kon er perfect mee overweg. Maar intussen had ie dus geen flauw idee hoe het geheel werkte en hij zou het zelf niet kunnen reproduceren zonder templates. Van "monkey see, monkey do", zoals jij het zegt, leer je niks. En dat is het gevaar als je mensen te snel "complexe" dingen laat doen.
Verwijderd schreef op 03 juni 2004 @ 13:01:
Templates zijn superhandig omdat je dan veel beter het eindresultaat van je template in de gaten kunt houden. Bovendien biedt het mogelijkheden om je grafisch ontwerper aan de slag te laten gaan en dat je daarna vrij weinig aan de code hoeft te veranderen.

Als jij niet met grafischontwerpers werkt, dan zie je hier het voordeel niet van in ben ik bang....
Dat is het punt niet. Het punt is dat TS moet begrijpen wat er gebeurt. En dan zijn template engines voor iedere beginner te hoog gegrepen. Dat is echt geen belediging naar TS, we zijn allemaal ooit beginner geweest. Je moet gewoon je eigen grenzen kennen. Jij kent de jouwe blijkbaar, maar je moet anderen niet staven aan je eigen kennis.

[ Voor 23% gewijzigd door NMe op 03-06-2004 13:06 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Verwijderd schreef op 03 juni 2004 @ 13:01:
[...]
Dit staat buiten de vraag.
Maar TBS voegt geen code toe aan je templates, en is heel erg verschillend van Smarty of andere systemen.
Als je geavanceerdere dingen wil doen zul je ook hier weer code aan moeten toevoegen. ;) Kijk maar eens goed naar dit forum bijvoorbeeld.
Ik snap je opmerking over CSS niet...
Ik gebruik
-MySQL: dataopslag
-DB Object(php): data verwerking
-PHP: Programmalogica
-TBS(php): Weergave HTML
-CSS: Opmaak HTML
-Javascript: Clientside programmalogica
Idem alleen dat xhtml maar dat maakt weinig verschil. Het gaat er vooral om dat je de extra laag die je tussen je php en html stopt ook weer moet verwerken. Je krijgt dan php -> tpl -> html. Laats was er een leuke discussie waarin Bosmonster een hoop arumenten geef om geen template engine te gebruiken.

Dat beetje html dat nog in mijn php code staat is nihil.
Ziet er aardig gescheiden uit, niet?

En zoals je kunt zien heeft CSS vrij weinig met templates te maken, dus zou je die opmerking kunnen verduidelijken?
Door maximaal gebruik te maken van CSS wordt je html een heel stuk eenvoudiger, hierdoor is de noodzaak om dit nog verder te scheiden eigenlijk compleet overbodig. Ik laat php in veel gevallen alleen de tabel opbouwen want de rest wordt al door de css geregeld. Dat maat het gewoon een stuk eenvoudiger.
Templates zijn superhandig omdat je dan veel beter het eindresultaat van je template in de gaten kunt houden. Bovendien biedt het mogelijkheden om je grafisch ontwerper aan de slag te laten gaan en dat je daarna vrij weinig aan de code hoeft te veranderen.
Een grafich ontwerper komt er niet aan want die houdt zich toch bezig met de css. Tabulaire data komt gewoon in een tabel en hoe dat ding wordt opgemaakt doet hij maar via de css

/ kort de boog mode
Als jij niet met grafischontwerpers werkt, dan zie je hier het voordeel niet van in ben ik bang....
Waarom zou de TS die echt een stuk eenvodige PHP nog niet kan behappen werken met een grafischontwerper.

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

NMe84 schreef op 03 juni 2004 @ 13:02:
[...]

Ik zeik niemand af, ik ben reëel. Hoe ben jij begonnen met PHP? Leerde je eerst allerlei schillen en hulpclasses te gebruiken? Of begon je netjes met "hello world" en andere simpele tutorials? Ik bedoel alleen maar te zeggen dat je een taal moet begrijpen voordat je versimpelende classes gaat gebruiken. Zelf gebruik ik ook templates, en ik heb er echt niets op tegen, werkt veel fijner.
Ik heb er lessen in gevolgd op school, Hogere informatica...

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 03 juni 2004 @ 13:11:
Ik heb er lessen in gevolgd op school, Hogere informatica...
Juist, en dan begin je lijkt me niet zomaar met een template systeem of wel? Als dat wel zo is waag ik het om het niveau van je school in twijfel te trekken. Als programmeur moet je bij het begin beginnen. Toen ik begon met programmeren kon ik ook niet meteen al een Halflife clone maken (nog steeds niet trouwens :P).

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Verwijderd schreef op 03 juni 2004 @ 13:11:
[...]
Ik heb er lessen in gevolgd op school, Hogere informatica...
En wat hebben ze je in de eerste les Java/C of wat dan ook geleerd: Hello world en toch niet een multiskin webapplicatie. :?

Voor de TS:
Zoals al meerdere malen is aangegeven nog wat tipjes
Je kan in php heel eenvoudige je result set dmv een while loop doorlopen
PHP:
1
2
3
4
5
while($result = mysql_fetch_array($query))
{
  // doe iets met de data
  print "<tr><td>".$result['naam']."</td><td>".$result['email']."</td></tr>";
};

Voor het werken met queries wil je in vele gevallen iets doen met je errors. Dat kan door gewoon weg je script te stoppen met een die() maar ook door je eigen error op te roepen. Maar het simpel weg aan roepen van mysql_error() heeft zodoende weinig niet, behalve dan dat je je foutmelding krijgt.

Door goed om te gaan met sql queries kan je op een gecontroleerde manier bepalen welke data je wil hebben. Je hoeft ook niet altijd alle velden aan te roepen (SELECT * FROM ...) maar je kan ook gewoon de noodzakelijke dingen aanroepen (SELECT naam, email FROM ...) Behalve dat het sneller is weet je ook precies wat je aanroept.

Verder let op welke variable je hebt. PHP is niet strongtype zoals dat heet. Hierdoor kunnen er nog weleens dingen gebeuren die je niet verwacht. Zoals het op hogen van een datum met 1.

Als laatse pas op voor 'sql injection' je voegt verschillende waarden samen tot een string en injecteerd die rechtstreeks in je query. Als ik nu ipv een getal iets ander invoer dan kunnen er problemen ontstaan. Pobeer nu eens te begrijpen wat er gebeurt als je dit zou invoeren:
code:
1
1 OR 1=1; DELETE FROM users;

Oke er horen nog wat quotejes enzo om heel maar het gaat om het idee. Beide queries zullen worden uitgevoerd, waardoor dus je hele user tabel is verdwenen. Met een beetje zoken verander ik het admin password en kan je er zelf niet meer in. Never trust user input. :)

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mr_obb schreef op 03 juni 2004 @ 13:02:
Een aantal punten:

$selQuery2 is niet nodig, die ga je nooit gebruiken.

Je mysql_query wordt:
PHP:
1
$result = mysql_query($selQuery) or die("Query failed : " . mysql_error());

Je while loop wordt:
PHP:
1
2
3
4
5
6
7
8
9
10
while ($line = mysql_fetch_array($result, MYSQL_ASSOC))
{

//Hier ga je de tabelrijen vullen

//Voorbeeldje ophalen gegevens uit resultaat:
$Datum = $line('Date');
echo $Datum;

}
Bedankt voor de ON-topic reactie..

Alleen snap ik je loopje nog niet helemaal, tenminste, misschien ook wel ;)
Ik kan na de echo gewoon de tabel zetten waar de variabele ingezet moet worden hé?

Bedankt iig voor de reactie, hartstikke leuk die discussies van jullie of ik wel of geen templates moet gebruiken en of ik wel of niet heel erg dom ben maar goed...heb liever iets waar ik gewoon echt iets aan heb!

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Kinders, de juffrouw komt zich even melden ;)

Het staat nogal buiten kijf dat topicstarter een beginner is, waar niets mis mee is, maar nee dan ben je niet gebaat bij een professioneel pakket dat al je problemen voor je oplost in plaats van je te leren programmeren. Probeer het dus aub een beetje te houden bij hulp voor de topicstarter in plaats van moddergooien over wie er nu wel of niet n00bs aan het bashen is :)

Professionele website nodig?


Acties:
  • 0 Henk 'm!

  • mr_obb
  • Registratie: Juni 2001
  • Laatst online: 01-09 14:15

mr_obb

Lakse Perfectionist

Verwijderd schreef op 03 juni 2004 @ 13:37:
[...]
Bedankt voor de ON-topic reactie..

Alleen snap ik je loopje nog niet helemaal, tenminste, misschien ook wel ;)
Ik kan na de echo gewoon de tabel zetten waar de variabele ingezet moet worden hé?

Bedankt iig voor de reactie, hartstikke leuk die discussies van jullie of ik wel of geen templates moet gebruiken en of ik wel of niet heel erg dom ben maar goed...heb liever iets waar ik gewoon echt iets aan heb!
Als je in de loop zit heb je een array met de waarden van 1 rij in je database. Je kan daar dus inderdaad:

PHP:
1
echo ("<td width=\"144\"><font color=\"#FFFFFF\"><b>Datum:</b>". $line('Date')."</font></td>");


neerzetten.

De loop loopt zelf alle resultaten langs die aan de voorwaarden in je query voldoen.

[ Voor 6% gewijzigd door mr_obb op 03-06-2004 13:43 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 03 juni 2004 @ 13:37:
Alleen snap ik je loopje nog niet helemaal, tenminste, misschien ook wel ;)
Ik kan na de echo gewoon de tabel zetten waar de variabele ingezet moet worden hé?
Ik weet niet wat je helemaal bedoelt, maar kijk hier maar even: http://www.freewebmasterhelp.com/tutorials/phpmysql/1 en dan vooral hoofdstukje 5, daar lijken ze ongeveer te doen wat jij wil.
Verwijderd schreef op 03 juni 2004 @ 13:37:
Bedankt iig voor de reactie, hartstikke leuk die discussies van jullie of ik wel of geen templates moet gebruiken en of ik wel of niet heel erg dom ben maar goed...heb liever iets waar ik gewoon echt iets aan heb!
We hadden allemaal al suggesties gegeven waar je wat mee moest kunnen, dus een leuke discussie was niet echt ongepast dacht ik. Excuus TS & curry. :D

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
mr_obb schreef op 03 juni 2004 @ 13:41:
[...]
PHP:
1
echo ("<td width=\"144\"><font color=\"#FFFFFF\"><b>Datum:</b>". $line('Date')."</font></td>");
Mag ik vragen waarom je dit gebruikt:
PHP:
1
$Datum = $line('Date');

en niet:
PHP:
1
echo $Datum->Date;

[ Voor 21% gewijzigd door Verwijderd op 03-06-2004 13:52 ]


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Verwijderd schreef op 03 juni 2004 @ 13:52:
[...]

Mag ik vragen waarom je dit gebruikt:
PHP:
1
$Datum = $line('Date');

en niet:
PHP:
1
echo $Datum->Date;
Omdat je behalve objecten ook arrays, rows en assocs kan fetchen uit een resultset. Iedereen gebruikt eigenlijk wat hij zelf het lekkerste vindt werken, en jij zal ook moeten kiezen. :)

mysql_fetch_object
mysql_fetch_row
mysql_fetch_array
mysql_fetch_assoc

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • ripexx
  • Registratie: Juli 2002
  • Laatst online: 17-09 20:52

ripexx

bibs

Vergelijk de volgende twee functies eens:
http://nl2.php.net/mysql_fetch_object
http://nl2.php.net/manual/nl/function.mysql-fetch-array.php

Let dan ook geod op de voorbeelden die er bij staan.

buit is binnen sukkel


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Thanks! Ik denk dat ik er wel uit kom nu! Als ik nog iets specifieks tegen kom laat ik het weten ;)

Acties:
  • 0 Henk 'm!

  • mr_obb
  • Registratie: Juni 2001
  • Laatst online: 01-09 14:15

mr_obb

Lakse Perfectionist

Verwijderd schreef op 03 juni 2004 @ 13:52:
[...]

Mag ik vragen waarom je dit gebruikt:
PHP:
1
$Datum = $line('Date');

en niet:
PHP:
1
echo $Datum->Date;
De lijn $Datum = $line('Date') is niet nodig. Je kan ook direct de String $line('Date') gebruiken om weer te geven. Alleen als je het nog veel vaker nodig hebt, kan je er voor kiezen om een variabel $Datum aan te maken. Ik had die regel in het originele voorbeeld gebruikt, zodat je zag hoe het werkte.

$line('Date') vraagt uit de array $line, dit is de array waar 1 rij uit je database in staat, de waarde met de index 'Date'. Aangezien je in de database zo te zien de kolomnaam Date hebt genoemd gaat dat hier goed. Voor het opvragen van de naam gebruik je dan (waarschijnlijk) $line('Name'). Om dat zeker te weten zou je de opzet van je DB eens moeten posten.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ja ok, dus Date en Name kan ik gewoon vervangen door de werkelijke naam van de kolomnamen in de tabel. (Datum, Achternaam, Voornaam, Functie etc...)

Acties:
  • 0 Henk 'm!

  • mr_obb
  • Registratie: Juni 2001
  • Laatst online: 01-09 14:15

mr_obb

Lakse Perfectionist

Verwijderd schreef op 03 juni 2004 @ 14:09:
ja ok, dus Date en Name kan ik gewoon vervangen door de werkelijke naam van de kolomnamen in de tabel. (Datum, Achternaam, Voornaam, Functie etc...)
Ja, maar dan moet je deze regel:

PHP:
1
$selQuery = "SELECT * FROM rapportage WHERE (Date <='".$selDatum1."' AND Date >= '".$selDatum2."')";


ook aanpassen in:

PHP:
1
$selQuery = "SELECT * FROM rapportage WHERE (Datum <='".$selDatum1."' AND Datum >= '".$selDatum2."')";


Anders krijg je geen resultaten.

Acties:
  • 0 Henk 'm!

  • martinvw
  • Registratie: Februari 2002
  • Laatst online: 20-08 20:35
mr_obb schreef op 03 juni 2004 @ 14:00:
[...]


De lijn $Datum = $line('Date') is niet nodig. Je kan ook direct de String $line('Date') gebruiken om weer te geven. Alleen als je het nog veel vaker nodig hebt, kan je er voor kiezen om een variabel $Datum aan te maken. Ik had die regel in het originele voorbeeld gebruikt, zodat je zag hoe het werkte.

$line('Date') vraagt uit de array $line, dit is de array waar 1 rij uit je database in staat, de waarde met de index 'Date'. Aangezien je in de database zo te zien de kolomnaam Date hebt genoemd gaat dat hier goed. Voor het opvragen van de naam gebruik je dan (waarschijnlijk) $line('Name'). Om dat zeker te weten zou je de opzet van je DB eens moeten posten.
Uhm, wat doet $line('Date'), bedoel je hier $line['Date']... Of is het een nieuwe mij onbekende feature...

En nee ik ben geen php n00b ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sorry, was wel 'Date' en niet 'Datum' ;)

Acties:
  • 0 Henk 'm!

  • mr_obb
  • Registratie: Juni 2001
  • Laatst online: 01-09 14:15

mr_obb

Lakse Perfectionist

M4rt1nvW schreef op 03 juni 2004 @ 15:10:
[...]

Uhm, wat doet $line('Date'), bedoel je hier $line['Date']... Of is het een nieuwe mij onbekende feature...

En nee ik ben geen php n00b ;)
8)7 |:( :X Het was nog vroeg enzo...

Gelukkig heb ik nooit gezegd dat ik een PHP-koning ben, anders had ik nu mooi voor lul gestaan.

Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
M4rt1nvW schreef op 03 juni 2004 @ 15:10:
Uhm, wat doet $line('Date'), bedoel je hier $line['Date']... Of is het een nieuwe mij onbekende feature...
Normaal gebruik je dat bij variable of anonieme functies, maar dat zal hier niet bedoeld worden ;)
Pagina: 1