abonnement Unibet Coolblue Bitvavo
pi_55068783
Dat is mogelijk, echter zijn het vijftien queries, met ieder weer één a twéé joins. Dat word te veel rotzooi, nog minder mooi dan alle queries in een array en ze langs te gaan.
pi_55069000
quote:
Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:
Een enorm simpele vraag...
Zoiets?

1
2
3
4
5
SELECT c.Name, c.DateAdded, c.DateUpdated
FROM client AS c
WHERE c.DateAdded != 0 OR c.DateUpdated != 0
ORDER BY (CASE c.DateUpdated WHEN 0 THEN c.DateAdded ELSE c.DateAdded END) DESC
LIMIT ".$max." 


Warom zijn die datum niet gewoon NULL als er geen datum in staat? (Dan kan je ook gewoon IFNULL gebruiken in plaats van die CASE).
Zijn er ook clients die niet toegevoegd zijn (DateAdded = 0)? :?
Is het niet handiger om de DateUpdated bij het toevoegen gelijk te maken aan DateAdded? (Dat sorteert makkelijker en sneller)
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_55069097
quote:
Op woensdag 5 december 2007 23:25 schreef SuperRembo het volgende:

[..]

Zoiets?
[ code verwijderd ]

Warom zijn die datum niet gewoon NULL als er geen datum in staat? (Dan kan je ook gewoon IFNULL gebruiken in plaats van die CASE).
Zijn er ook clients die niet toegevoegd zijn (DateAdded = 0)?
Is het niet handiger om de DateUpdated bij het toevoegen gelijk te maken aan DateAdded? (Dat sorteert makkelijker en sneller)
Er zijn clients zonder aanmaakdatum, dit is uit een oude systeemmigratie. Om deze uit het logboek te vermijden staat er deze CASE bij.

DateUpdated en DateAdded zijn twee verschillende eigenschappen, en wil ik ook zo in het logboek terug zien. Added voor het toevoegen van het record, updated voor het wijzigen van het record. Wanneer ik deze samen voeg kan ik niet én de laatste vijf toegevoegde clients én de laatste vijf gewijzigde clients tonen. Correct me if I'm wrong.
pi_55069120
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
pi_55069886
quote:
Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
Dan moet je gewoon een union / union all gebruiken.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  donderdag 6 december 2007 @ 00:14:46 #181
37634 wobbel
Da WoBBeL King
pi_55069938
Zucht, ik krijg de laatste tijd steeds een 75 jarige man in de winkel die allerlei dingen vraagt over PHP ... werk in een computer winkel, ben geen PHP helpdesk

Kan ik hem niet naar dit topic doorverwijzen?

Hoeft ie bij ons ook de balie niet meer onder te kwijlen, wat ie nu al 2x heeft gedaan
pi_55069956
quote:
Op woensdag 5 december 2007 23:31 schreef Farenji het volgende:
Ongetest:
zorg dat in elke query de kolomnamen hetzelfde zijn en zet alle queries onderaan in 1 string, gescheiden door puntkomma.Voor deze string uit. Als het goed is heb je dan alles in 1 recordset.
quote:
Op donderdag 6 december 2007 00:12 schreef SuperRembo het volgende:

[..]

Dan moet je gewoon een union / union all gebruiken.
Top! Union was exact wat ik zocht. Dank u.

En ja, in de resultset gebruik ik altijd dezelfde kolomnamen: Description en Date.
pi_55070207
quote:
Op woensdag 5 december 2007 21:59 schreef Geqxon het volgende:

Ik kan natuurlijk in een loop gaan werken, maar ik vind het het mooist om zo veel als mogelijk in de query te doen, en dat in één keer in een array te stoppen. Of kan dit niet?
Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.

Hoe je bij 15 queries komt is me niet helemaal duidelijk.
pi_55070364
quote:
Op donderdag 6 december 2007 00:31 schreef Light het volgende:

[..]

Als je zowel de laatste 5 toevoegingen en de laatste 5 wijzigingen wilt zien dan heb je minimaal 2 queries nodig, omdat je niet kunt sorteren op 2 dingen. Als je een toevoeging ook als een wijziging beschouwt (en bij toevoegen dus wijzigdatum en toevoegdatum gelijk maakt) dan kun je met 1 query toe.

Hoe je bij 15 queries komt is me niet helemaal duidelijk.
Het totaalproduct, mocht dat het duidelijker maken. Het product van drie (in de applicatie vijftien) verschillende queries:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
+-----------------------------------+------------+
| Description                       | Date       |
+-----------------------------------+------------+
| Added client x to company y       | 05-12-2007 |
| Added client a to company y       | 04-12-2007 |
| Added client d to company y       | 03-12-2007 |
| Added client c to company y       | 02-12-2007 |
| Added client b to company z       | 02-12-2007 |
| Added company y                   | 01-12-2007 |
| Added company ...                 | 30-10-2007 |
| Added company ...                 | 30-10-2007 |
| Added company ...                 | 11-07-2007 |
| Added company ...                 | 05-03-2007 |
| Changed information on company y  | 02-12-2007 |
+-----------------------------------+------------+


Dus de laatste vijf van elke soort actie. Met de union kan ik het nu eventueel alles door elkaar gooien en op de kolom Date sorteren, al heb ik dat liever niet.

Dit is overigens puur als extra zodat de eindgebruiker bij een foutieve invoer kan kijken waar hij de klant per ongeluk aan toegevoegd heeft. (Nogmaals: Als voorbeeld, dit is namelijk wel afgehandeld in de applicatie zelf).
pi_55073869
Misschien een domme vraag :

Ik wil met een query een soort van rapport opbouwen met gegevens die in een formulier zijn ingevuld. Nu is het zo dat als er een optie niet geselecteerd wordt deze niet in de query moet worden meegenomen. Dit is de query:

1
2
3
4
<?php
$query 
mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE YEAR(datum) = YEAR('$jaar') AND geslacht = '$geslacht'
AND nationaliteit = '$nationaliteit' AND YEAR(geboortedatum) = YEAR('$geboortedatum')"
);
?>


dus als bijv. geslacht niet is ingevuld moet de query dus alle geslachten uit de database selecteren. Er komen nog meer opties in , dus het liefst heb ik alles in 1 query.
pi_55073970
1
2
3
4
5
6
7
8
9
<?php
if(isset($year)){
   
$query_where.=" AND year(datum)='".mysql_real_escape_string($year)."'";
}
if(isset(
$geslacht)){
   
$query_where.=" AND geslacht='".mysql_real_escape_string($geslacht)."'";
}
$query=mysql_query("SELECT * FROM vrijwilligers_gegevens WHERE bla=bla".$query_where);
?>


[ Bericht 26% gewijzigd door Tuvai.net op 06-12-2007 14:03:25 ]
pi_55074068
pi_55074202
pi_55076204
quote:
Op woensdag 5 december 2007 14:13 schreef autocue het volgende:

[..]

Het kan in ieder geval ietsje korter . Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
[ code verwijderd ]

Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
Klopt, die van mij had nog iets beter gekund
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  donderdag 6 december 2007 @ 13:04:12 #190
84926 WyriHaximus
Release the hounds smithers!
pi_55076604
quote:
Op donderdag 6 december 2007 11:03 schreef Farenji het volgende:
[ link | afbeelding ]
die is en blijft goed !
phluphy for president!
pi_55077405
quote:
Op donderdag 6 december 2007 10:58 schreef Tuvai.net het volgende:

[ code verwijderd ]
bedankt
pi_55085666
quote:
Op woensdag 5 december 2007 14:13 schreef autocue het volgende:

[..]

Het kan in ieder geval ietsje korter :P. Qua snelheid zou de volgende het denk ik moeten winnen, maar niet omdat het écht efficienter is.
[ code verwijderd ]

Als het overigens relatief vaak voorkomt dat een stuk tekst geen 'spatie kolom' heeft, dan zou jouw aanpak een stuk sneller kunnen worden (en zijn dan deze) wanneer je stopt met zoeken bij het vinden van een regel met $inMin == 0.
Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je code

(voorbeeld)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$str = "    hello world
    moi
       hoi
         lol
            test
         test
       test
    tes

    hello world
    moi
       hoi
         lol
            test
         test
       test
    tes";


Nu zie je opeens een 'lege' regel.. die moet je dus overslaan? maar hoe kan ik die afvangen? :D

";
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55086375
Matchen op een dubbele \n, dus \n\n.
pi_55086587
quote:
Op donderdag 6 december 2007 20:47 schreef HuHu het volgende:
Matchen op een dubbele \n, dus \n\n.
Wat dan als er alleen een spatie op een regel staat, dan matcht ie al niet meer maar het is wel een lege regel.

Gewoon per regel testen met de regexp /^\s*\n$/
pi_55089642
quote:
Op woensdag 5 december 2007 11:30 schreef JortK het volgende:

[..]

Dat wordt volgens mij een lastig verhaal
Ik heb uit mijn css een regeltje bovenaan weggehaald waar iets over utf-8 stond.. Dat heb ik er uit gehaald. Nu zie ik geen problemen meer.

Het rare is dat hij hem soms wel goed weer geeft, en soms met rare vraagtekentjes (FF) of blokjes (IE). Er veranderd ondertussen niks in de database of in de html..
Amsterdam, stad van hash en coke,
Waar de vrouwen zich vrouwelijk gedragen..
En de mannen ook..
pi_55091998
quote:
Op donderdag 6 december 2007 20:17 schreef Chandler het volgende:

[..]

Vraagje; hoe zou je kunnen controlleren of een regel leeg is? in de zin van er zit een enter in je code

(voorbeeld)
[ code verwijderd ]

Nu zie je opeens een 'lege' regel.. die moet je dus overslaan? maar hoe kan ik die afvangen?

";
Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
function ltrimSpaceColumns($in) {
    if(
preg_match_all('|^( *)\S|m'$in$matches)) {
        
$min 0x7fffffff;
        while((
$pair each($matches[1])) && $min 0) {
            if((
$newMin strlen($pair[1])) < $min) {
                
$min $newMin;
            }
        }
        if(
$min 0) {
            
$in preg_replace('|^ {'.$min.'}|m'''$in);
        }
    }
    return 
$in;
}
?>
pi_55094681
quote:
Op vrijdag 7 december 2007 00:41 schreef autocue het volgende:

[..]

Door (bijvoorbeeld ) te forceren dat de matches waarbij de lengte van de whitespace gecheckt wordt niet enkel whitespace is. Er zal dus een niet whitespace karakter moeten volgen na de spaties, dus alleen de regex zal aangepast moeten worden en er moet verwezen worden naar een andere matching groep (namelijk die voor de spaties). Zoals volgt ongeveer .
[ code verwijderd ]
Werkt idd helemaal perfect, nu heb ik nog 1 andere vraag.

Voor een site van mij wil ik scripts toevoegen en deze net zoals op FOK met code highlight aan gebruikers laten zien. Echter copy en plak ik ook wel eens functies waarbij dus geen <?php en ?> voor en na staan. Deze wil ik dus graag toevoegen maar dat gaat steeds fout m.b.t. een controle.

Nu vraag ik niet om code; maar meer om het idee, hoe kan ik het beste checken of deze aan het begin/end staan.
$start = "<?php";
$end = "?>";

Nu doe ik substr($str, 0, strlen($start)) en controlleer het met $start (!=) en doe het zelfde met end, maar dan op het eind. Echter krijg ik toch steeds een dubbele <?php etc als ik de code opsla!

Anyone?
The people who lost my respect will never get a capital letter for their name again.
Like trump...
  vrijdag 7 december 2007 @ 09:47:02 #198
159635 Spike1506
NullPointerException
pi_55095176
* Spike1506 mompelt iets over regular-expressions.
pi_55096187
* Chandler verstopt zich, snapt amper een bal van regex...
The people who lost my respect will never get a capital letter for their name again.
Like trump...
pi_55096770
quote:
Op vrijdag 7 december 2007 10:37 schreef Chandler het volgende:
* Chandler verstopt zich, snapt amper een bal van regex...
Daar zou ik dan maar eens wat aan doen, een programmeur kan niet zonder.
Er zijn zat tutorials te vinden.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')