1 2 3 4 5 6 | SELECT `aid` , `title` FROM `il7o_albums` ORDER BY `aid` DESC LIMIT 0 , 3 ?> |
quote:Op vrijdag 29 januari 2010 15:47 schreef hello_moto1992 het volgende:
Weet iemand toevallig wel hoe je met SQL het eerste resultaat 'overslaat'? Dus dat je bij de eerste 5 resultaten de nieuwste weglaat.
Bron: http://dev.mysql.com/doc/refman/5.0/en/select.htmlquote:The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement. LIMIT takes one or two numeric arguments, which must both be nonnegative integer constants (except when using prepared statements).
With two arguments, the first argument specifies the offset of the first row to return, and the second specifies the maximum number of rows to return. The offset of the initial row is 0 (not 1):
1 2 3 4 5 6 7 8 | while ($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">".$row['title']."</a>"; echo "</tr>"; } ?> |
Op zich een goed idee, alleen zit ik mij dan af te vragen hoe ik dit moet gaan realiseren als er ook gegevens zijn die langer dan 255 karakters bevatten, of juist alleen INT.quote:Op vrijdag 29 januari 2010 13:12 schreef Trollface. het volgende:
[..]
Ik heb een settings tabel zo ingesteld:
[ code verwijderd ]
Dit gaan dan wel over sitewide-instellingen.
Als er een instelling bijkomt, gewoon een INSERT INTO doen.
http://php.net/manual/en/function.substr.phpquote:Op vrijdag 29 januari 2010 16:01 schreef hello_moto1992 het volgende:
Ooh gewoon de LIMIT aanpassen dus
Thnx
Nu heb k eigenlijk nog iets waar k mee zit![]()
[ code verwijderd ]
Hier komt dus een link uitrollen. Deze mag echter maar een aantal tekens hebben. Dit kan met de functie wordwrap heb k al gezien. Maar hoe pas je zulkiets hier toe?
Nee, wel moeilijkerquote:Op vrijdag 29 januari 2010 16:46 schreef hello_moto1992 het volgende:
K snap er niks vanKan dat niet simpeler?
Wat is er moeilijk aan het copypasten van die functie?quote:Op vrijdag 29 januari 2010 16:46 schreef hello_moto1992 het volgende:
K snap er niks vanKan dat niet simpeler?
Als er functionaliteit bij komt in de vorm van een nieuw soort e-mail, dan is dat in mijn geval niet meer dan een record in de email-template tabel.quote:Op vrijdag 29 januari 2010 06:57 schreef Chandler het volgende:
calamares; dus je hebt een class die per verzonden email een tabel up to date houdt m.b.t. controle/inzien verzonden emails?
verder nog gelijk een andere vraag; stel je hebt een site die je stap voor stap uitbreid en dat is tevens ook zo voor alle instellingen. Passen jullie dan steeds de tabel aan van de instellingen of zorgen jullie dat toevoegen van instellingen zonder het aanpassen van tabellen mogelijk is?
(hopelijk duidelijk genoeg)
Wat is er moeilijk aan de substring (substr() ) functie? De eerste parameter is hetgeen dat je wilt in- of afkorten, de tweede is vanaf welke positie dit moet gebeuren, de derde is hoeveel karakters je vanaf die opgegeven positie wilt weergeven.quote:Op vrijdag 29 januari 2010 16:46 schreef hello_moto1992 het volgende:
K snap er niks vanKan dat niet simpeler?
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 | <?php $query = " SELECT `aid` , `title` FROM `il7o_albums` ORDER BY `aid` DESC LIMIT 1 , 3 "; $result = mysql_query($query)or die (mysql_error()); ?> <?php function _substr($str, $length, $minword = 3) { $sub = $row['title']; $len = ??????;; foreach (explode(' ', $str) as $word) { $part = (($sub != '') ? ' ' : '') . $word; $sub .= $part; $len += strlen($part); if (strlen($word) > $minword && strlen($sub) >= $length) { break; } } return $sub . (($len < strlen($str)) ? '...' : ''); } ?> <table border="0" cellpadding="0" cellspacing="0" style="color: white; font-size: 0.8em;"> <? while ($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">".$row['title']."</a>"; echo "</tr>"; } ?> </table> |
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 | <?php $query = " SELECT `aid` , `title` FROM `il7o_albums` ORDER BY `aid` DESC LIMIT 1 , 3 "; $result = mysql_query($query)or die (mysql_error()); ?> <?php function _substr($str, $length, $minword = 3) { $sub = $row['title']; $len = ??????;; foreach (explode(' ', $str) as $word) { $part = (($sub != '') ? ' ' : '') . $word; $sub .= $part; $len += strlen($part); if (strlen($word) > $minword && strlen($sub) >= $length) { break; } } return $sub . (($len < strlen($str)) ? '...' : ''); } ?> <table border="0" cellpadding="0" cellspacing="0" style="color: white; font-size: 0.8em;"> <? while ($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td><a href=\"http://www.test.nl/coppermine/thumbnails.php?album=".$row['aid']."\">"._substr($row['title'], 10, 5)."</a>"; echo "</tr>"; } ?> </table> |
Je zou nog kunnen proberen je defines tussen {} te zetten.quote:Op maandag 1 februari 2010 19:35 schreef ursel het volgende:
Hmmm.. Dacht slim te zijn door DEFINES in mijn tekst te plaatsen en alvorens de tekst te displayen deze eerst door een eval heen te gooien.
Blijkbaar kan eval alleen variabelen veranderen en geen defines.
Iemand andere suggesties?
Volgensmij snap ik je probleem niet echt. Je probeert doormiddel van eval een constante aan te passen? Waarom een constante gebruiken als deze niet vaststaat? Voor dat doel kun je net zogoed een globale variabele, of met OO smaakje een statische property gebruiken.quote:Op maandag 1 februari 2010 19:35 schreef ursel het volgende:
Hmmm.. Dacht slim te zijn door DEFINES in mijn tekst te plaatsen en alvorens de tekst te displayen deze eerst door een eval heen te gooien.
Blijkbaar kan eval alleen variabelen veranderen en geen defines.
Iemand andere suggesties?
Onlangs zijn we gestart om onze huidige omgeving ook in andere smaken te presenteren. Hangen allen onder andere URL, maar maken verder gebruik van exact dezelfde omgeving en code.quote:Op dinsdag 2 februari 2010 10:20 schreef Intrepidity het volgende:
[..]
Volgensmij snap ik je probleem niet echt. Je probeert doormiddel van eval een constante aan te passen? Waarom een constante gebruiken als deze niet vaststaat? Voor dat doel kun je net zogoed een globale variabele, of met OO smaakje een statische property gebruiken.
Kan je deze iets meer uit specificeren?quote:Op dinsdag 2 februari 2010 09:55 schreef Light het volgende:
[..]
Je zou nog kunnen proberen je defines tussen {} te zetten.
1 2 3 | define('NAME_FULL', 'Bedrijf B.V.'); ?> |
quote:Op dinsdag 2 februari 2010 12:09 schreef ursel het volgende:
[..]
Kan je deze iets meer uit specificeren?
Heb bijv. de volgende define:
[ code verwijderd ]
En in de tekst moet ik dan {NAME_FULL} plaatsen?
Dat werkt in ieder geval niet kan ik je vertellen. :')
1 2 3 | echo "Bedrijf: " . NAME_FULL; ?> |
Ja, dat zou wel makkelijk zijn als de teksten niet uit een database kwamen.quote:
Als je de tekst direct uit een database haalt, gaat {} sowieso niet werken hé.quote:Op dinsdag 2 februari 2010 12:20 schreef ursel het volgende:
[..]
Ja, dat zou wel makkelijk zijn als de teksten niet uit een database kwamen.
Dacht dat ik dat al gemeld had, maar blijkbaar niet.![]()
1 2 3 | $sTekst = str_replace("<<BEDRIJF_NAAM>>", FULL_NAME, $sTekst); ?> |
Mja, dat gebruiken we nu idd, echter willen we het meer onafhankelijk draaien zodat we niet voor elke define welke we gebruiken een str_replace moeten plaatsen.quote:Op dinsdag 2 februari 2010 12:22 schreef Trollface. het volgende:
[..]
Als je de tekst direct uit een database haalt, gaat {} sowieso niet werken hé.
Je kunt proberen <<BEDRIJF_NAAM>> o.i.d. in de tekst te pleuren en dan een str_replace() te doen:
[ code verwijderd ]
Die hadden we nog niet geprobeerd.....quote:Op dinsdag 2 februari 2010 12:52 schreef Intrepidity het volgende:
deze site schijnt er behoorlijk wat informatie over te hebben
alleen als ik probeer in te loggen krijg ik te zien gebruikersnaam niet geldigquote:<?php.
session_start();
$db = mysql_connect("localhost", "root", "root")
or die("kan geen verbinding maken: ".mysql_error());
mysql_select_db("medinfo",$db);
if (!EMPTY($_POST))
{
$nr = $_POST['nr'];
$ww = $_post['ww'];
$sql = "SELECT *
From personeel
Where pnaam= '$nr'
AND pwachtwoord = '$ww'";
$resultaat = mysql_query($sql);
if (mysql_num_rows($resultaat)>0)
{
while($rij = mysql_fetch_array($resultaat))
{
$_SESSION["pnaam"]=$rij["pnaam"];
$_SESSION["pwachtwoord"]=$rij["pwachtwoord"];
}
header("location: loginstart.php");
exit();
}
else
{
echo "<BR>";
echo "<HR>";
echo "Geen geldige inlog gegevens";
}
mysql_close($db);
}
else
{
?>
<html>
<head>
<title>Medinfo</title>
</head>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]?>">
<B><h1>Medinfo</h1><B><br>
na correct inloggen kun u uw gegevens opvragen<h3>
<br><br>
</center>
<pre>
Voer uw klantennummer in: <input type="text" name="nr" size="20" maxlenght="20">
<br><br>
Voer wachtwoord in: <input type="password" name="ww" size="20" maxlenght="20">
<br><br>
<input type = "submit" value = "inloggen">
<input type = "reset" value = "wissen">
</pre>
</form>
</body>
</html>
<?php
}
?>
ik bedoeldequote:Op vrijdag 5 februari 2010 10:03 schreef GlowMouse het volgende:
Die melding kan niet uit je script komen.
dat een user uniek moet zijn weet ikquote:Op vrijdag 5 februari 2010 10:14 schreef Civilian het volgende:
Dan nog..
Een user zou uniek moeten zijn, anders doe je toch al iets fout.
Dus waarom de while, en waarom een exit() in je while.. Dan gaat toch een beetje de hele functie verloren?
Beter gelijk goed beginnen dan het na die tijd aan te moeten passen en het risico te lopen dat het weer niet werktquote:Op vrijdag 5 februari 2010 10:21 schreef genakt het volgende:
[..]
dat een user uniek moet zijn weet ik
mjah daar gaat het nu niet om en het is niet de reden waarom hij het niet doet
$nr = $_POST['nr'];quote:Op vrijdag 5 februari 2010 10:32 schreef Civilian het volgende:
[..]
Beter gelijk goed beginnen dan het na die tijd aan te moeten passen en het risico te lopen dat het weer niet werkt
Maargoed, hoe heb je de passwords opgeslagen? Gecodeerd (md5 oid) of als normale string? Als je 't gecodeerd op hebt geslagen moet je er ook rekening mee houden dat je ze op die manier gaat vergelijken.
het is voor me examen dan hoef je dat helemaal niet te doen johquote:
als het niet hoeft waarom zou ik het dan doenquote:Op vrijdag 5 februari 2010 14:00 schreef Trollface. het volgende:
JUIST voor je examen zou ik je wachtwoord laten hashen.
Wat een kutexamenquote:Op vrijdag 5 februari 2010 14:02 schreef genakt het volgende:
[..]
als het niet hoeft waarom zou ik het dan doen
nog leuker degene die het nakijken hebben er van de 3 maar 1 echt verstand vanquote:
Via een omweg kan het ook:quote:Op maandag 8 februari 2010 16:45 schreef DaFan het volgende:
Ik heb een lastige (vind ik) SELECT query nodig in SQL.
Er is een tabel waar een persoon meerdere malen (ID, fullname) in voor kan komen.
Eén van de kolommen is soms NULL, soms niet.
Als deze ooit bij een ID not null is, dan wil ik nooit meer die ID terugzien.
Hoe kan ik dat maken? (Duidelijk genoeg?)
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 | `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `createdate` datetime NOT NULL, `editdate` datetime NOT NULL, `username` varchar(20) NOT NULL, `email` varchar(128) NOT NULL, `password` char(41) NOT NULL, `validation` char(12) NOT NULL, `banned` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `gebruikersnaam` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `users_groups` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `lastupdate` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `users_groups_link` ( `user_id` int(10) unsigned NOT NULL, `group_id` int(10) unsigned NOT NULL, `timestamp` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP, KEY `gebruiker_id` (`user_id`,`group_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `users_groups_rights_link` ( `group_id` int(10) unsigned NOT NULL, `right_id` int(10) unsigned NOT NULL, KEY `groep_id` (`group_id`,`right_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `users_rights` ( `id` int(11) NOT NULL AUTO_INCREMENT, `title` varchar(50) NOT NULL, `value` varchar(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; CREATE TABLE IF NOT EXISTS `users_rights_link` ( `user_id` int(10) unsigned NOT NULL, `right_id` int(10) unsigned NOT NULL, `lastupdate` datetime NOT NULL, KEY `gebruiker_id` (`user_id`,`right_id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | `right_reply` int(11) unsigned NOT NULL, `right_read` int(11) unsigned NOT NULL, `right_start` int(11) unsigned NOT NULL, `right_banned` int(11) unsigned NOT NULL, `right_admin` int(11) unsigned NOT NULL, `id` tinyint(4) unsigned NOT NULL AUTO_INCREMENT, `index_id` tinyint(4) unsigned NOT NULL DEFAULT '0', `name` varchar(75) COLLATE latin1_general_ci NOT NULL DEFAULT '', `subname` char(3) COLLATE latin1_general_ci NOT NULL DEFAULT '', `subject` text COLLATE latin1_general_ci NOT NULL, `lastpost` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `topics` int(4) unsigned NOT NULL DEFAULT '0', `posts` int(4) unsigned NOT NULL DEFAULT '0', `fsort` tinyint(4) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), KEY `index_id` (`index_id`), KEY `name` (`name`), KEY `fsort` (`fsort`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; |
1 2 3 4 5 | `right_read` = 0 of ID+002 `right_start` = 0 of ID+003 `right_banned` = 0 of ID+004 `right_admin` = 0 of ID+005 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | SUM(amount_costs) as TotaalPens FROM hrcomp_trans inner join humres h with(nolock) on h.res_id=hrcomp_trans.res_id WHERE comp_code = 'PENSWG' and h.res_id=144 GROUP BY h.res_id, comp_code UNION SELECT h.res_id,comp_code, SUM(entry_amount) as TotaalPens FROM hrcomp_trans inner join humres h with(nolock) on h.res_id=hrcomp_trans.res_id WHERE comp_code = 'SALARIS' and h.res_id=144 GROUP BY h.res_id, comp_code |
1 2 3 | 144 PENSWG 25,14 144 SALARIS 2000 |
1 2 | (SELECT SUM(amount_costs) FROM hrcomp_trans where h.res_id=hrcomp_trans.res_id and comp_code='PENSWG') AS TotaalPensioen |
Je kunt er geen nieuwe kolommen mee maken, alleen bestaande kolommen transformeren tot nieuwe gegevens. Die kolommen bestaan uiteraard niet meer na het uitvoeren van de query.quote:Op dinsdag 9 februari 2010 14:38 schreef DaFan het volgende:
Nvm;
[ code verwijderd ]
Ik wist niet dat je met Sub-SELECTS nieuwe kolommen kon maken
Weer wat geleerd.
1 2 3 4 5 6 7 8 | FROM taak INNER JOIN taak_status ON (taak.StatusId = taak_status.IdStatus ) INNER JOIN taak_prioriteit ON ( taak.PrioriteitId = taak_prioriteit.IdPrioriteit ) WHERE MedewerkerId = '8' GROUP BY PrioriteitId |
Wat doet die dan wel zeg maar...quote:Op woensdag 10 februari 2010 10:36 schreef wobbel het volgende:
Ik heb een tabel met taken (TAAK), een tabel met statussen voor die taken (TAAK_STATUS) en een tabel met prioriteiten voor een taak (TAAK_PRIORITEIT).
Hoe zorg ik ervoor dat ik per medewerker kan bekijken hoeveel taken hij nog heeft, gegroepeerd per status?
[ code verwijderd ]
Dit zou terug moeten geven dat ik nog 3 taken heb met PrioriteitId = 1 heb, 2 taken met PrioriteitId = 2 en nog 12 taken met PrioriteitId = '3'.
Maar dit werkt niet zeg maar...
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |