De 8 die je opvraagt voldoen niet aan de IF, klaar. En 'een hele lijst met data' kun je prima met je query filteren.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...
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 | 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 | <?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> |
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.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?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
Nee, heb je een linkje?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 ik werk alleen lokaal nog. Site is nog niet up zeg maar. Als ik in mijn spelers_edit.phpquote:
1 |
1 |
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.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.
Dan moet je je variablen vullen door middel van een database query, niet met een GET request.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.
<?= $bla ?> werkt prima zonder ; hoor (idem voor het langere <?php echo $bla ?>)quote:Op zondag 22 maart 2009 14:05 schreef GlowMouse het volgende:
en dat moet je afsluiten met een puntkomma.
Eensch. Daarnaast zou een topic voor de wat meer onderlegde PHP-ers onder ons geen kwaad kunnen.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.
Eens. De ingewikkeldere vragen zijn leuker dan de 'help, ik heb iets gejat en het werkt niet' vragen.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.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
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 ------------------ |
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 -------------------------------------- |
1 2 3 4 5 | 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')) |
1 2 3 4 | FROM werknemers w, specialiteiten s WHERE w.id = s.werknemer_id AND (s.specialiteit_naam = 'OperatingLanguages' AND s.waarde IN ('Windows', 'Mac')) |
De namen van de medewerkers die kunnen werken met Windows en MAC én gespecialiseerd zijn in PHP en ASP wil ik er uit halen..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.
Je voorbeeld-data voldoet niet aan je where. Daarom krijg je 0 results.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...
Thnx! Hier ga ik ff mee aan de slag!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 ]
zie editquote:Op dinsdag 24 maart 2009 16:20 schreef markiemark het volgende:
[..]
Thnx! Hier ga ik ff mee aan de slag!
1 2 3 4 5 6 7 8 | 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' |
1 2 3 4 5 6 7 8 | 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' |
Dat sowieso. Een specialiteiten tabel, een gebruikers tabel en een koppeltabel tussen die 2 is voldoende, meerdere vermeldingen in die koppeltabel -> meer specialiteiten.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.
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!
1 2 3 4 5 | FROM fotoboek_comments GROUP BY foto ORDER BY datum DESC LIMIT 0 , 2 |
SPOILEROm 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
Ik kan niet zien wanneer het plaatje aangepast is helaasquote: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?
SELECT distinct(id), date, comment FROM `fotoboek_comments` order by date limit 0,2quote:Op dinsdag 24 maart 2009 18:19 schreef qwox het volgende:
heb een mysql vraagje, je waarschijnelijk simpel maar ik snap het niet
Onderbouwde uitspraak, vooral omdat je z'n datamodel ook zo goed kan achterhalen bij het zien van 1 SQL statement..quote:Op dinsdag 24 maart 2009 18:33 schreef GlowMouse het volgende:
De performance met jouw datamodel is wel om te janken.
Ziet er leuk uit, maar wekt niet. DISTINCT gaat over een rij.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
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.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..
Wat bedoel je met een subquery by wherequote: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.
Je kunt bijvoorbeeld zeggen: WHERE id = (SELECT max(id) FROM fotoboek_comments WHERE ...)quote:Op dinsdag 24 maart 2009 19:06 schreef qwox het volgende:
[..]
Wat bedoel je met een subquery by where
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |