abonnement Unibet Coolblue Bitvavo
  dinsdag 17 januari 2006 @ 00:56:33 #203
65471 SkaterSam
Lurking Galore
pi_34146476
Dank voor de info! Nu had ik nog een vraagje, is het mogelijk wanneer je resultaten ophaalt uit MySQL met een while() loop, om het laatste resultaat te kiezen, om bijvoorbeeld net een andere layout te gebruiken.
Let's make life easy
Typo's are the demon spawn from hell !
pi_34149545
Jawel;

je kan met $numRows = mysql_num_rows($resultVariable); het aantal regels opvragen, gegeven dat je query aanroep als $resultVariable = mysql_query() gevormd is ($resultVariable moet in beide gevallen dezelfde var zijn).

Vervolgens kan je in je while een tellertje opnemen:
$i = 1;
while($row = mysql_fetch_assoc($resultVariable)) {
$i++;
if($i == $numRows) {
//laatste regel
}
}

-r-
pi_34149579
Nog maar een vraagje, mijn vorige vraag hier heeft mij wat handige inzichten opgeleverd (ik ben trouwens toen voor de $config['bla'] en dan in functies global $config gegaan).

Ik heb binnen mijn applicaties 2 soorten pagina's, pagina's die toonbaar zijn voor iedereen die ingelogd is en pagina's die zichtbaar zijn voor mensen die ingelogd zijn EN een bepaalde rol hebben toegewezen.

Wat ik zou kunnen doen per pagina is:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if (!isset($_SESSION['login']) && $_SESSION['login'] != 1)
{
  echo
'niet toegestaan dit te zien';
}
else
{
  if(
$_SESSION['role'] != "bla")
  {
    echo
'Niet toegestaan';
  }
  else
  {
     echo
'laat alles gewoon maar zien';
  }
}
?>


Maar is dit een handige manier? Kan dit niet slimmer, zodat ik niet overal van die accoladers moet plaatsen.

Ik heb zitten denken aan iets met die of break, maar ik meen dat dan gelijk alles wordt afgebroken, en de hoofdpagina index.php include alle andere pagina's. De rest zou dan ook niet worden gedisplayed, naar ik meen.

Iemand suggesties?
pi_34149662
Ja en nee.

Als het een include file is, kan je 'return' gebruiken om uit de include file terug naar de parent file te springen:

1
2
3
4
5
6
7
<?php
if (!isset($_SESSION['login']) && $_SESSION['login'] != 1)
{
  echo 'niet toegestaan dit te zien';
  return;
}
?>

Vervolgens zou je nog die tweede if, in de eeste kunnen opnemen:
1
2
3
4
5
6
7
if(   !isset($_SESSION['login']) || $_SESSION['login'] != 1
    ||!isset($_SESSION['role']) || $_SESSION['role'] != "bla")
  {
    echo 'Niet toegestaan';
   return;
  }
?>

Hier zou je vervolgens een functie van kunnen breien zodat het uiteindelijk iets wordt als:

1
2
3
4
5
<?php
if(!userLoggedInAs("bla")) {
  return;
}
?>

De functie zelf zou je dan als volgt kunnen doen:
1
2
3
4
5
6
7
8
9
10
function userLoggedInAs($role, $displayWarning = true) {
  if(   isset($_SESSION['login']) && $_SESSION['login'] == 1
     &&!isset($_SESSION['role']) && $_SESSION['role'] == $role) {
   return true;

if($displayWarning) {
  echo 'U heeft geen toegang';
}
return false;
}
  FOK!-Schrikkelbaas dinsdag 17 januari 2006 @ 08:31:11 #207
1972 Swetsenegger
Egocentrische Narcist
pi_34149666
Je kan de eerste en tweede if toch gewoon samenvoegen?
en checken op isset EN een waarde is volgens mij een beetje onzin. Als Session['login'] niet geset is, zal hij ook geen 1 zijn.
pi_34149747
Yeps het samenvoegen had ik ook gezien, vroeg mij alleen af (wilde ik nog testen) of het sneller is om twee maal los te checken of in 1 keer beide.

Ik ga even kijken wat ik met bovenstaande dingen kan doen. Thnx for the help!
pi_34149892
quote:
Op dinsdag 17 januari 2006 08:31 schreef Swetsenegger het volgende:
Je kan de eerste en tweede if toch gewoon samenvoegen?
en checken op isset EN een waarde is volgens mij een beetje onzin. Als Session['login'] niet geset is, zal hij ook geen 1 zijn.
Het is niet strikt noodzakelijk om eerst te checken op isset, maar het is wel netter. Ik geloof dat PHP een notice geeft als je een vergelijking uitvoert met een variabele die niet geset is, en door isset te gebruiken kun je dat afvangen. Als je ooit in een andere taal wilt gaan programmeren dan is het handiger om je meteen die isset-checks aan te leren, de meeste talen zijn er niet zo makkelijk in.
  FOK!-Schrikkelbaas dinsdag 17 januari 2006 @ 09:19:47 #210
1972 Swetsenegger
Egocentrische Narcist
pi_34150361
quote:
Op dinsdag 17 januari 2006 08:50 schreef Light het volgende:

[..]

Het is niet strikt noodzakelijk om eerst te checken op isset, maar het is wel netter. Ik geloof dat PHP een notice geeft als je een vergelijking uitvoert met een variabele die niet geset is, en door isset te gebruiken kun je dat afvangen. Als je ooit in een andere taal wilt gaan programmeren dan is het handiger om je meteen die isset-checks aan te leren, de meeste talen zijn er niet zo makkelijk in.
Ik zeg niet dat hij niet moet controleren op isset, maar controleren op isset EN value is nutteloos. Met een or zoals in roonaan zijn voorbeeld is wat logischer.
pi_34150681
quote:
Op dinsdag 17 januari 2006 09:19 schreef Swetsenegger het volgende:

[..]

Ik zeg niet dat hij niet moet controleren op isset, maar controleren op isset EN value is nutteloos. Met een or zoals in roonaan zijn voorbeeld is wat logischer.
als je de notice wil voorkomen is isset niet nutteloos, alleen is het de vraag of je doel moet zijn om die notice te voorkomen .
  FOK!-Schrikkelbaas dinsdag 17 januari 2006 @ 09:38:02 #212
1972 Swetsenegger
Egocentrische Narcist
pi_34150728
quote:
Op dinsdag 17 januari 2006 09:34 schreef rickmans het volgende:

[..]

als je de notice wil voorkomen is isset niet nutteloos, alleen is het de vraag of je doel moet zijn om die notice te voorkomen .
Nee precies.
Dus je controlleert of de sessie bestaat en zoja, controleer je of hij de waarde heeft welke je verwacht
  woensdag 18 januari 2006 @ 12:08:55 #213
51748 H4ze
wait...what?
pi_34195095
Ik zit hier met een SQL boek voor me, en daar staat de scalaire functie 'CONVERT_DATE' in (converteert een datum zoals 1988-05-20 naar 20 mei 1988). Nu wil ik deze ff op m'n mysql DB uitproberen:

1
2
3
SELECT CONVERT_DATE(releasedatum) 
FROM catalogusnummer
WHERE releasedatum='2004-10-12' 


Dit werkt dus niet...In dat boek stond ook dat deze functie in enkele producten CTOD heet, maar ook wanneer ik dat gebruik krijg ik een foutmelding.
*BURP*
pi_34195296
is je database column wel het goede formaat? of zou dat niet uitmaken.
As a rule, I never touch anything more sophisticated and delicate than myself.
  woensdag 18 januari 2006 @ 12:18:22 #215
51748 H4ze
wait...what?
pi_34195430
Jep, die is gewoon in 't DATE formaat. Ik kan verder ook gewoon dingen als YEAR(releasedatum) enzo doen, dus dat zit gewoon goed
*BURP*
pi_34197391
quote:
Op woensdag 18 januari 2006 12:18 schreef H4ze het volgende:
Jep, die is gewoon in 't DATE formaat. Ik kan verder ook gewoon dingen als YEAR(releasedatum) enzo doen, dus dat zit gewoon goed
mm okee. dan weet ik t niet. wat ik wel weet, is dat jij dus n boek hebt liggen daar
[boeken] verschillende talen en graden

als jij dat nou s in mijn supergoedlopendetopic plaatst
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_34197565
Ik kan de convert_date functie niet vinden in de MySQL manual.
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 13:45:40 #218
1972 Swetsenegger
Egocentrische Narcist
pi_34198547
Ik ken wel DATE_FORMAT

1
2
3
SELECT DATE_FORMAT(releasedatum,%d-%m-%Y) AS dutch_date 
FROM catalogusnummer
WHERE releasedatum='2004-10-12' 
pi_34199068
$nummer = 4;
$nummer = "4";

het werkt allebei. welke is netter?
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_34199657
$nummer = 4.. dan is het een integer
$nummer = "4", dan is het een string

Als je iets wilt teller kan je dus beter de eerste variant gebruiken
pi_34200739
quote:
Op woensdag 18 januari 2006 13:59 schreef Desdinova het volgende:
het werkt allebei. welke is netter?
Dit verhaal zul je in elke programmeertaal tegenkomen maar vooral ook in PHP aangezien PHP loose typing ondersteunt. Als jij met getallen wilt werken moet je integers gebruiken, wil je met strings werken dan zet je er aanhalingstekens omheen. MySQL een beetje hetzelfde verhaal, je kúnt timestamps wel opslaan in een VARCHAR(zoveel) maar het is over het algemeen (en technisch gezien) veel beter daar gewoon een UNSIGNED INT voor te gebruiken. Als je specifiek met data wilt werken kun je ook het DATE of DATETIME type voor gebruiken.

Moraal van het verhaal: twee manieren kunnen hetzelfde opleveren maar als je de meest logische keuze neemt heb je vaak ook de efficiëntste methode en later minder problemen in andere talen.
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 15:27:18 #222
1972 Swetsenegger
Egocentrische Narcist
pi_34202780
Is het met php mogelijk om de resolutie van een image welke op het filesystseem staat te achterhalen?
Met andere woorden, ik plaats een rijtje foto's waarvan de naam in de database staat, maar de fysieke foto in het filesysteem op een website. En ik wil nu een height en width meegeven.

Aangezien die variabel is, dien ik die dus te achterhalen op het moment van plaatsing.
pi_34202837
quote:
Op woensdag 18 januari 2006 15:27 schreef Swetsenegger het volgende:
Is het met php mogelijk om de resolutie van een image welke op het filesystseem staat te achterhalen?
Met andere woorden, ik plaats een rijtje foto's waarvan de naam in de database staat, maar de fysieke foto in het filesysteem op een website. En ik wil nu een height en width meegeven.

Aangezien die variabel is, dien ik die dus te achterhalen op het moment van plaatsing.
Dat en nog veel meer is te achterhalen met deze functie alhoewel je dat soort informatie beter kunt cachen in de database (al die disk reads zijn niet geweldig voor de performance)
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 15:34:55 #224
1972 Swetsenegger
Egocentrische Narcist
pi_34203085
quote:
Op woensdag 18 januari 2006 15:28 schreef JeRa het volgende:

[..]

Dat en nog veel meer is te achterhalen met deze functie alhoewel je dat soort informatie beter kunt cachen in de database (al die disk reads zijn niet geweldig voor de performance)
Ja, het probleem is dat het bestaande informatie is. 'even' deze info in de db erbij opslaan zal dus niet gaan.

Hmz....
pi_34203391
quote:
Op woensdag 18 januari 2006 15:34 schreef Swetsenegger het volgende:

[..]

Ja, het probleem is dat het bestaande informatie is. 'even' deze info in de db erbij opslaan zal dus niet gaan.

Hmz....
Twee velden in de database aanmaken en vervolgens:
1) Een scriptje laten draaien dat van alle bestanden de afmetingen in de database opslaat
2) Een interface schrijven die bij het opvragen van de informatie kijkt of het al in de database staat, zo niet, het dan inleest door middel van die functie en wegschrijft naar de database

En dan natuurlijk bij nieuwe afbeeldingen de informatie vantevoren al opslaan dan kun je na een tijdje optie 2) uitfaseren (alhoewel me 1) het beste lijkt).
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 16:06:18 #226
1972 Swetsenegger
Egocentrische Narcist
pi_34204578
quote:
Op woensdag 18 januari 2006 15:41 schreef JeRa het volgende:

[..]

Twee velden in de database aanmaken en vervolgens:
1) Een scriptje laten draaien dat van alle bestanden de afmetingen in de database opslaat
2) Een interface schrijven die bij het opvragen van de informatie kijkt of het al in de database staat, zo niet, het dan inleest door middel van die functie en wegschrijft naar de database

En dan natuurlijk bij nieuwe afbeeldingen de informatie vantevoren al opslaan dan kun je na een tijdje optie 2) uitfaseren (alhoewel me 1) het beste lijkt).
Ik heb even gekeken. Op dit moment heeft 99% van de images dezelfde resolutie. Dus die gooi ik in 1 keer in de database.
De afbeeldingen worden uiteraard via het cms geupload en geresized. Ik kan dus heel eenvoudig dat script aanpassen zodat voor elke nieuwe upload de hoogte en breedte in de database gezet wordt.

En die 5 foto's met een afwijkende resolutie zet ik er handmatig in.

Probleem opgelost.
pi_34208262
if ($row = $rst->fetchRow()) { // Bestaat de waarde al?

Nou $row is nergens een waarde toegekend eerder in de code.
Nu snap ik niet helemaal wat nu wordt vergeleken, een object waarin de fetchRowwaarde in is gedrukt wordt vergeleken met een lege variabel?
pi_34208861
@Fatality:

Dit is een toewijzing:

$a = 1;

Eigenschap van deze toewijzing is dat hij hetgeen dat toegewezen wordt retourneert. Je kunt dus dit doen:

if (($a = 1) == 1) {
echo '1 is toegewezen aan $a!';
}

En als je zoiets doet:

if ($row = $rst->fetchRow()) {
//blaat
}

Dan wordt er gewoon gekeken of er iets wordt toegewezen aan $row dat ongelijk aan nul evalueert
  woensdag 18 januari 2006 @ 19:12:50 #229
51748 H4ze
wait...what?
pi_34211560
quote:
Op woensdag 18 januari 2006 13:45 schreef Swetsenegger het volgende:
Ik ken wel DATE_FORMAT
[ code verwijderd ]
Ah, die werkt wel! Thnx
*BURP*
  FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 19:36:30 #230
1972 Swetsenegger
Egocentrische Narcist
pi_34212603
quote:
Op woensdag 18 januari 2006 16:06 schreef Swetsenegger het volgende:

Ik kan dus heel eenvoudig dat script aanpassen zodat voor elke nieuwe upload de hoogte en breedte in de database gezet wordt.
Dat is dus niet helemaal waar.

De foto's worden geschaald in een resize functie:

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
function resize_photo($new_name,$new_width,$new_height,$filename){

// Content type
header('Content-type: image/jpeg');

// nieuwe resolutie bepalen
list($width_orig, $height_orig) = getimagesize($filename);
if(empty($new_height)){
                        $new_height = round(($new_width / $width_orig) * $height_orig);

}elseif(empty($new_width)){
         $new_width = round(($new_height / $height_orig) * $width_orig);

}elseif ($new_width && ($width_orig < $height_orig)) {
         $new_width = ($new_height / $height_orig) * $width_orig;

}else{
                        $new_height = ($new_width / $width_orig) * $height_orig;
}

// Resample
$image_p = imagecreatetruecolor($new_width, $new_height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width_orig, $height_orig);

// Output
imagejpeg($image_p, $new_name, 80);
Imagedestroy($image);
}

De nieuwe resolutie is dus een bij produkt van deze funtie.
Maar.... nu heb ik ze dus verderop in het script nodig. Hoe krijg ik die nu uit de functie?

$resolution=array($new_width,$new_height);
return $resolution;

Dit heb ik toegevoegd, maar wanneer ik in mijn script NA de functie call een print_r ($resolution); doe krijg ik in ieder geval niets terug.
pi_34213234
Even samengevat:

1
2
3
4
5
6
7
8
function blaat()
{
    return array(1, 2);
}

$resultaat = blaat();

print_r($resultaat);

Dat is je basisopzet om een array terug te krijgen van je functie; je weet zeker dat het zo in elkaar zit?
pi_34213255
Je doet toch wel iets als $resolution = resize_photo(...); hè? just checking
Wil iedereen die in telekinese gelooft nu mijn hand op steken?
| Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
pi_34214684
Goedenavond,

Voor een IFK vak heb ik een persoonlijke opdracht gekregen over SQL. Nu ben ik hier niet echt een ster in dus schakel ik de hulplijn in
Ik moet informatie uit een database halen via SQL queries.
De bedoeling is om dit te doen via de volgende volgorde:
SELECT:
WHERE:
FROM:
SORT BY:
GROUP BY:
HAVING:
Hierachter moeten dus de functies komen (als ik het goed zeg). Sub-Query's zijn toegestaan.

Een van de vragen waar ik niet uit kom is:
Bepaal per factuur het factuurbedrag. Toon factuurnummer, factuurdatum eb factuurbedrag. Let op!: De verkoopprijs is exclusief een korting voor de afnemer.

Daarbij moet ik gebruik maken van de Tabellen
Factuur(factuurnummer, afnemernummer,factuurdatum en personeelsnummer)
Factuurregel(factuurnummer, artikelcode, verkoopaantal, verkoopprijs)
Korting (kortinggroepnummer, kortingspercentage)
Afnemer(afnemernummer,naam,adres,postcode,plaats,regio,kortinggroepnummer)

Ik weet dat het een ultieme n00b-vraag is, maar hoop toch dat iemand mij kan helpen...
pi_34215333
  • Stap 1: zoek alle artikelen bij de factuur
  • Stap 2: bepaal het totaalbedrag (zonder korting)
  • Stap 3: zoek het kortingspercentage bij de factuur
  • Stap 4: bepaal het factuurbedrag
  • Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_34215495
    quote:
    Op woensdag 18 januari 2006 20:41 schreef SuperRembo het volgende:
  • Stap 1: zoek alle artikelen bij de factuur
  • Stap 2: bepaal het totaalbedrag (zonder korting)
  • Stap 3: zoek het kortingspercentage bij de factuur
  • Stap 4: bepaal het factuurbedrag
  • Tot die beredenatie kwam ik ook nog Nu alleen nog uitvoeren, das een beetje het probleem zeg maar...
    pi_34215682
    Probeer eens wat. Stap 1 moet wel lukken lijkt me.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 21:01:38 #237
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34216332
    quote:
    Op woensdag 18 januari 2006 19:50 schreef JeRa het volgende:
    Even samengevat:
    [ code verwijderd ]

    Dat is je basisopzet om een array terug te krijgen van je functie; je weet zeker dat het zo in elkaar zit?
    quote:
    Op woensdag 18 januari 2006 19:51 schreef SuperRembo het volgende:
    Je doet toch wel iets als $resolution = resize_photo(...); hè? just checking
    Nee dus heren, tenslotte is $resolution een bijprodukt van resize();

    Momenteel roep ik 'm zo aan

    1
    2
    3
    $new_width=175;
    $new_height=75;
    resize_photo($new_name,$new_width,$new_height,$filename);


    Maar daar kan ik dus zonder problemen

    1$resolution=resize_photo($new_name,$new_width,$new_height,$filename);

    van maken?

    -edit- ja dus
    pi_34216930
    quote:
    Op woensdag 18 januari 2006 21:01 schreef Swetsenegger het volgende:
    Nee dus heren, tenslotte is $resolution een bijprodukt van resize();
    Nee hoor, $resolution is helemaal geen bijproduct van resize() de variabele zelf gaat out of scope nadat de functie klaar is en het resultaat wordt klaarblijkelijk gewoon weggegooid en raak je dus ook kwijt
      FOK!-Schrikkelbaas woensdag 18 januari 2006 @ 22:23:49 #239
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34220994
    quote:
    Op woensdag 18 januari 2006 21:12 schreef JeRa het volgende:

    [..]

    Nee hoor, $resolution is helemaal geen bijproduct van resize() de variabele zelf gaat out of scope nadat de functie klaar is en het resultaat wordt klaarblijkelijk gewoon weggegooid en raak je dus ook kwijt
    Je begrijpt niet wat ik bedoel.
    De functie resize is nooit bedoeld om de uiteindelijke resolutie terug te geven. Tot vandaag interesseerde die me niet.
    Dus die werd inderdaad alleen in de functie gebruikt om de image te resizen naar de juiste maat, en was nergens in de global scope nodig en dus weggegooid.

    Dus in die zin was de resolutie welke in resize() wordt gebruikt een bijprodukt van de functie
    pi_34225651
    quote:
    Op woensdag 18 januari 2006 17:53 schreef JeRa het volgende:
    @Fatality:

    Dit is een toewijzing:

    $a = 1;

    Eigenschap van deze toewijzing is dat hij hetgeen dat toegewezen wordt retourneert. Je kunt dus dit doen:

    if (($a = 1) == 1) {
    echo '1 is toegewezen aan $a!';
    }

    En als je zoiets doet:

    if ($row = $rst->fetchRow()) {
    //blaat
    }

    Dan wordt er gewoon gekeken of er iets wordt toegewezen aan $row dat ongelijk aan nul evalueert
    verdomd ik moet die operators eens allemaal uitmekaar halen.
      donderdag 19 januari 2006 @ 10:55:45 #241
    89068 Gh0stbust3r
    Ruud van Nistelrooy
    pi_34233570
    Hallo,

    ik moet voor school een website maken met php. Ik heb geen kennis van php, weet iemand een site of iets dergelijks waarmee ik wel een begin kan maken aan de website... Heb echt 0.0 verstand ervan
    Trainer van *Manchester United* ( @ www.hattrick.org )
      donderdag 19 januari 2006 @ 14:37:08 #242
    37634 wobbel
    Da WoBBeL King
    pi_34240931
    Ik zit met een vaag dillema.

    Ik heb een webshop die multishop is, dat wil zeggen dat op 1 domeinnaam 3 virtuele shops lopen d.m.v. een sessie. Tabel Shops heeft dus 3 records (1,2 en 3 met resp. LCD, MP3 en GSM shop)

    Nu heb ik ook een tabel met alle producten erin. Deze producten kan je koppelen aan 1 shop, 2 shops maar ook alle 3 de virtuele shops.
    Dit gebeurd met een speciale tabel genaamd ProductLinkShops. Hierin staat voor elk product een record om hem te koppelen aan een shop.

    Voorbeeld van ProductLinkShops.
    1 | 64 | 3
    2 | 64 | 2
    3 | 24 | 1
    4 | 122 | 1
    5 | 33 | 3

    1 t/m 5 is gewoon het id van dat record, 64, 24 122 en 33 zijn ProductId's en die 3, 2, 1, 1 en 3 zijn de betreffende shops waarin ze moeten voorkomen. Het systeem werkt prima

    Maar nu moet ik een search maken

    Je moet kunnen zoeken in de titel van het product. Maar hij mag alleen de producten weergeven als ze ook voor de huidige shop bedoeld zijn.
    Als ik in shop 3 zoek, mag ik dus alleen product 33 en product 64 in beeld krijgen (als de trefwoorden kloppen)

    Hoe de neuk flik ik dat?

    Ik heb nu dit, maar dit geeft ALTIJD 0 resultaten weer

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $rSearchQuery                                                
    = mysql_query ( "SELECT
                                                                    Producten.ProductNaam,
                                                                    Producten.KorteOmschrijving,
                                                                    Producten.LangeOmschrijving,
                                                                    ProductenLinkShop.pls_productId,
                                                                    ProductenLinkShop.pls_shopId
                                                                    FROM Producten
                                                                    INNER JOIN ProductenLinkShop
                                                                    ON ( ProductenLinkShop.pls_productId = Producten.IdProduct )
                                                                    WHERE ProductenLinkShop.pls_shopId = '"
    . $_SESSION['CCShop'] . "'
                                                                    AND Producten.ProductNaam = '%"
    . $sSearchTerm . "%'" ) or die ( mysql_error (  ) );
    ?>
      donderdag 19 januari 2006 @ 15:02:03 #243
    71796 dossie
    lekker makkelijk
    pi_34241891
    Ik wou even kijken hoe een random password maken in zijn werk gaat.

    Nu kwam ik de volgende voorbeeldcode tegen op php.net, een reactie bij de functie mt_rand.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    php
      $acceptedChars
    = 'azertyuiopqsdfghjklmwxcvbnAZERTYUIOPQSDFGHJKLMWXCVBN0123456789';
      
    $max = strlen($acceptedChars)-1;
      
    $password = null;
      for(
    $i=0; $i &lt; 8; $i++) {
       
    $password .= $acceptedChars{mt_rand(0, $max)};
      }
      echo
    $password;
    ?>


    Ik snap de accolades achter de variabele $acceptedChars niet! Ik heb de code getest, en hij werkt gewoon zoals het hoort. Maar ik dacht dat je die accolades alleen gebruikt voor een functie of een lus ofzo, en hier wordt het gewoon achter de variabale gezet.

    Kan iemand mij dit uitleggen?
    "Het geheugen van het hart zeeft slechte herinneringen weg en maakt de goede mooier. Dat stelt ons in staat om met het verleden te leven." - Gabriel Garcia Marquez
    pi_34242067
    @dossie:

    Met accolades achter een variabele die een string is, kun je een teken op een bepaalde positie opvragen.

    Voorbeeldje:
    1
    2
    3
    4
    5
    6
    7
    8
    <?php

    $string = 'abcdef';

    echo $string{2};
    echo $string[2];

    ?>

    Zoals je ziet werken de rechte brackets ook, alleen wordt het ten zeerste aangeraden de accolades te gebruiken
    pi_34242156
    quote:
    Op donderdag 19 januari 2006 14:37 schreef wobbel het volgende:
    Ik zit met een vaag dillema.

    Ik heb een webshop die multishop is, dat wil zeggen dat op 1 domeinnaam 3 virtuele shops lopen d.m.v. een sessie. Tabel Shops heeft dus 3 records (1,2 en 3 met resp. LCD, MP3 en GSM shop)

    -snip-
    Ik heb nog niet uitgebreid naar je probleem gekeken, maar ik weet je al wel te vertellen dat je een LIKE moet gebruiken als je wilt zoeken d.m.v. '%string%'
    pi_34242209
    quote:
    Op donderdag 19 januari 2006 10:55 schreef Gh0stbust3r het volgende:
    Hallo,

    ik moet voor school een website maken met php. Ik heb geen kennis van php, weet iemand een site of iets dergelijks waarmee ik wel een begin kan maken aan de website... Heb echt 0.0 verstand ervan
    Google is your friend als je al verstand hebt van andere talen is de beste plek om te beginnen wellicht de site van PHP zelf; check de documentatie.
      donderdag 19 januari 2006 @ 15:14:53 #247
    71796 dossie
    lekker makkelijk
    pi_34242347
    quote:
    Op donderdag 19 januari 2006 15:06 schreef JeRa het volgende:
    @dossie:

    Met accolades achter een variabele die een string is, kun je een teken op een bepaalde positie opvragen.

    Voorbeeldje:
    [ code verwijderd ]

    Zoals je ziet werken de rechte brackets ook, alleen wordt het ten zeerste aangeraden de accolades te gebruiken
    Ah, dat verklaart weer een boel

    Enig idee welk gedeelte van php.net ik had moeten doorwerken om dit te weten? Misschien staan daar nog meer basics die ik helemaal niet ken. iig bedankt
    "Het geheugen van het hart zeeft slechte herinneringen weg en maakt de goede mooier. Dat stelt ons in staat om met het verleden te leven." - Gabriel Garcia Marquez
      FOK!-Schrikkelbaas donderdag 19 januari 2006 @ 15:28:28 #248
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34242772
    quote:
    Op donderdag 19 januari 2006 14:37 schreef wobbel het volgende:
    Ik zit met een vaag dillema.

    Ik heb een webshop die multishop is, dat wil zeggen dat op 1 domeinnaam 3 virtuele shops lopen d.m.v. een sessie. Tabel Shops heeft dus 3 records (1,2 en 3 met resp. LCD, MP3 en GSM shop)

    Nu heb ik ook een tabel met alle producten erin. Deze producten kan je koppelen aan 1 shop, 2 shops maar ook alle 3 de virtuele shops.
    Dit gebeurd met een speciale tabel genaamd ProductLinkShops. Hierin staat voor elk product een record om hem te koppelen aan een shop.

    Voorbeeld van ProductLinkShops.
    1 | 64 | 3
    2 | 64 | 2
    3 | 24 | 1
    4 | 122 | 1
    5 | 33 | 3

    1 t/m 5 is gewoon het id van dat record, 64, 24 122 en 33 zijn ProductId's en die 3, 2, 1, 1 en 3 zijn de betreffende shops waarin ze moeten voorkomen. Het systeem werkt prima

    Maar nu moet ik een search maken

    Je moet kunnen zoeken in de titel van het product. Maar hij mag alleen de producten weergeven als ze ook voor de huidige shop bedoeld zijn.
    Als ik in shop 3 zoek, mag ik dus alleen product 33 en product 64 in beeld krijgen (als de trefwoorden kloppen)

    Hoe de neuk flik ik dat?

    Ik heb nu dit, maar dit geeft ALTIJD 0 resultaten weer
    [ code verwijderd ]
    LEFT ipv INNER join?
      FOK!-Schrikkelbaas donderdag 19 januari 2006 @ 15:30:27 #249
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34242838
    quote:
    Op donderdag 19 januari 2006 15:14 schreef dossie het volgende:

    [..]

    Ah, dat verklaart weer een boel

    Enig idee welk gedeelte van php.net ik had moeten doorwerken om dit te weten? Misschien staan daar nog meer basics die ik helemaal niet ken. iig bedankt
    http://www.php.net/manual/en/
    pi_34244221
    waarom werkt dit niet:

    1
    2
    3
    4
    5
    6
    7
    <?php
    $date
    = substr($row-&gt;Date,9,10);
    $date.= " - ";
    $date.= substr($row-&gt;Date,6,7);
    $date.= " - ";
    $date.= substr($row-&gt;Date,0,4);
    ?>


    ik wil dus gewoon de tekentjes in een andere volgorde weergeven, maar hij geeft veel meer tekentjes weer dan ik specificeer (en dat rijmt )
    As a rule, I never touch anything more sophisticated and delicate than myself.
    pi_34244461
    @Desdinova

    Al eens naar deze pagina gekeken?
    pi_34244850
    quote:
    Op donderdag 19 januari 2006 15:30 schreef Swetsenegger het volgende:

    [..]

    http://www.php.net/manual/en/
    Een beetje flauw om alleen een link naar de manual ToC te geven.

    String access and modification by character
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      donderdag 19 januari 2006 @ 16:28:15 #253
    71796 dossie
    lekker makkelijk
    pi_34244932
    quote:
    Op donderdag 19 januari 2006 16:25 schreef SuperRembo het volgende:

    [..]

    Een beetje flauw om alleen een link naar de manual ToC te geven.

    String access and modification by character

    Bedankt dat bedoelde ik. Maar ik snap schwarzeneggert ook wel, moet ik maar beter zoeken. Maar bedankt!
    "Het geheugen van het hart zeeft slechte herinneringen weg en maakt de goede mooier. Dat stelt ons in staat om met het verleden te leven." - Gabriel Garcia Marquez
    pi_34245473
    quote:
    Op donderdag 19 januari 2006 16:14 schreef JeRa het volgende:
    @Desdinova

    Al eens naar deze pagina gekeken?
    oooo fuck joh werkt dat zo.
    ik ging van teveel uit
    As a rule, I never touch anything more sophisticated and delicate than myself.
      FOK!-Schrikkelbaas donderdag 19 januari 2006 @ 16:44:53 #255
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34245527
    quote:
    Op donderdag 19 januari 2006 16:25 schreef SuperRembo het volgende:

    [..]

    Een beetje flauw om alleen een link naar de manual ToC te geven.

    String access and modification by character
    Ik kon hem niet zo snel vinden.
    Aangezien hij het over php.net had, heb ik hem maar wel even specifiek naar de manual verwezen. de rest is een kwestie van zoeken.
      vrijdag 20 januari 2006 @ 02:07:27 #256
    65471 SkaterSam
    Lurking Galore
    pi_34266480
    Ok ik heb een probleem, of niet (je weet het nooit)...

    Ik probeer een admin systeem te maken, met een login. Dit systeem maakt gebruik van sessions. Je gaat dus naar de index.php, vult je wachtwoord en je usernaam in en dan ga je naar login.php waar je oa dit vindt:

    1$login->doLogin($_POST['username'], $_POST['password']);

    Met bijbehorende code uit de login class (login_class.php):

    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
    function doLogin($user, $pass) {
                    
          $this->checkLoginInput($user, "username");
          $this->checkLoginInput($pass, "wachtwoord");
          
          if ($this->num_error > 0) {
          
             $this->logged_in = false;
             
          } else {   
          
             $db = new Db_functies('user','ww','db');
             $this->bevestigPass($user, $pass, $db); 
             
             if ($this->num_error > 0) {   
                   
                $this->logged_in = false;
                $db->closedb();   
                         
             } else {   
                   
                $this->username = $_SESSION['username'] = $user;
                $this->random_id = $_SESSION['random_id'] = $this->makeFingerprint();
                $_SESSION['time'] = time();
                
                $db->query("UPDATE red_user SET red_random_id = '" . $this->random_id . "' WHERE red_usernaam ='" . $this->username . "'");
                
                session_regenerate_id();
                $this->logged_in = true;
                $db->closedb();                  
             }
          }   
       }

    So far, so good. Dit gebeurt allemaal correct, de Sessions worden ook weggeschreven, want je wordt verwezen naar home.php, waar de Sessions voor je worden uitgelezen (bijv. "Hallo" . $_SESSION['username']). Dit zie je ook op het scherm staan. Dan wil ik naar een andere pagina, maar ik wil eerst controleren of mijn sessie valide is, dus bovenaan de pagina staat:

    1
    2
    require_once('inc/session_class.php');
    $controle = new SessionCheck(60);

    Met de volgende code in session_class.php:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    function SessionCheck($duur) {
          if (isset($_SESSION['username']) && isset($_SESSION['random_id']) && isset($_SESSION['time'])) {
             
             $tijd = $_SESSION['time'];
             $user = $_SESSION['username'];
             
             if ($this->checkSessionTime($tijd, $duur) == false) {
                echo "tijd doet het niet<br />";
             }
             
             if ($this->checkFingerprint($user) == false) {
                echo "username doet het niet<br />";
             }
             
             $_SESSION['time'] = time();
             $this->logged_in = true;
          
          } else {      
          
             echo "iets is niet gezet<br />";
             
          }
       }

    Wat gebeurt er dus nu, hij geeeft keer op keer de boodschappen:

    tijd doet het niet
    username doet het niet

    Om aan te geven dat ze false zijn, de volgende twee functies:

    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
    //Controleer de unieke fingerprint van de gebruiker
       function checkFingerprint($user) {
          $temp = "BLIK_REDACTIE" . $_SERVER['HTTP_USER_AGENT'];
          $id = md5($temp);
       
          $db = new Db_functies('user','ww','db');
          $db->query("SELECT red_random_id FROM red_user WHERE red_usernaam = '" . $user . "'");
          $result = mysql_fetch_row($db->resultaten);
          echo $result[0] . "<br />";
          
          if(mysql_num_rows($db->resultaten) < 1) {
             return false;
          } 
             
          if ($id != $result[0]) {
             return false;
          }
          
          
       }

       //Controleer of de sessie is verlopen
       function checkSessionTime($tijd, $duur) {
          if ((time() - $tijd) > $duur) {
             return false;
          }
       }

    Ik heb al de resultaten al een ge-echoed, en ze kloppen gewoon, dus ik snap niet wat er fout is, het enige wat ik kon bedenken, was dat de equal operators een enkele '=' moest zijn (in SessionCheck), maar toen kreeg ik een parse error...
    Let's make life easy
    Typo's are the demon spawn from hell !
    pi_34267954
    Wanneer geeft checkSessionTime() true terug?
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_34268096
    quote:
    Op vrijdag 20 januari 2006 04:39 schreef SuperRembo het volgende:
    Wanneer geeft checkSessionTime() true terug?
    Wat hij zegt, maar dan ook voor de checkFingerprint()-functie
      vrijdag 20 januari 2006 @ 11:07:20 #259
    64276 9christensen
    Grolsch bier is gezond
    pi_34271505
    MySql vraagje

    Ik heb een kolom met IP adressen.
    Nu moet ik een top 10 selecteren welke ip's het meest voorkomen.

    Hoe krijg ik dit voor elkaar?
    Het is het eindpunt van de trein, bijna geen mens hoeft er te zijn, bijna geen hond gaat zover mee:
    [b]Enschede![/b]
    pi_34272000
    quote:
    Op vrijdag 20 januari 2006 11:07 schreef 9christensen het volgende:
    MySql vraagje

    Ik heb een kolom met IP adressen.
    Nu moet ik een top 10 selecteren welke ip's het meest voorkomen.

    Hoe krijg ik dit voor elkaar?
    Door middel van een GROUP BY

    SELECT COUNT(id) AS aantal, ip FROM ip_adressen GROUP BY ip ORDER BY aantal DESC LIMIT 0, 10

    Met een GROUP BY 'groepeer' je in feite de resultaten op een bepaalde kolom. COUNT() is een typische functie die als GROUP-functie kan worden gebruikt en telt het aantal keer dat een rij binnen een groep voorkomt.
      vrijdag 20 januari 2006 @ 11:46:14 #261
    64276 9christensen
    Grolsch bier is gezond
    pi_34272760
    en werkt dit ook in access? ik krijg nu een foutmelding:

    "syntax error in ORDER BY clause"
    Het is het eindpunt van de trein, bijna geen mens hoeft er te zijn, bijna geen hond gaat zover mee:
    [b]Enschede![/b]
    pi_34273137
    In MSAccess kan je 'aantal' niet in de ORDER BY gebruiken. Je kunt wel 'ORDER BY COUNT(id)' gebruike.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_34273172
    quote:
    Op vrijdag 20 januari 2006 11:46 schreef 9christensen het volgende:
    en werkt dit ook in access?
    quote:
    Op vrijdag 20 januari 2006 11:07 schreef 9christensen het volgende:
    MySql vraagje
    Je weet dat MySQL en Access beiden SQL ondersteunen maar twee verschillende programma's zijn?
      vrijdag 20 januari 2006 @ 12:06:17 #264
    64276 9christensen
    Grolsch bier is gezond
    pi_34273428
    Ik heb nu dit

    SELECT COUNT([id]) AS aantal, [SrcIP]
    FROM Notificaction
    GROUP BY [SrcIP]

    nu laat hij alles zien. ik wil slechts 10 ID's laten zien die het meest voorkomen.
    Het is het eindpunt van de trein, bijna geen mens hoeft er te zijn, bijna geen hond gaat zover mee:
    [b]Enschede![/b]
    pi_34273655
    quote:
    Op vrijdag 20 januari 2006 12:06 schreef 9christensen het volgende:
    Ik heb nu dit

    SELECT COUNT([id]) AS aantal, [SrcIP]
    FROM Notificaction
    GROUP BY [SrcIP]

    nu laat hij alles zien. ik wil slechts 10 ID's laten zien die het meest voorkomen.
    Met de ORDER BY hint van SuperRembo en de LIMIT van mijn oorspronkelijke query moet je een heel eind komen lijkt me.
      vrijdag 20 januari 2006 @ 12:15:53 #266
    14806 CrashOne
    100% compliant
    pi_34273742
    Ik word niet echt veel wijzer van het gebruik van foreign en primary keys en relaties met InnoDb tables.

    Hoe alter ik een table en geef ik deze relaties (met cascading deletes etc), ik word niet echt veel wijzer van de manual.

    Kan iemand die misschien duidelijk uitleggen?
      vrijdag 20 januari 2006 @ 12:19:04 #267
    64276 9christensen
    Grolsch bier is gezond
    pi_34273849
    SELECT COUNT([id]) AS aantal, [SrcIP]
    FROM Notificaction
    GROUP BY [SrcIP]
    ORDER BY COUNT([id]) DESC;

    zo heb ik 'm.

    nu wil ik slechts de top 10 laten zien

    SELECT COUNT([id]) AS aantal, [SrcIP]
    FROM Notificaction
    GROUP BY [SrcIP]
    ORDER BY COUNT([id]) DESC LIMIT 0, 10

    en dan krijg ik weer een foutmelding
    Het is het eindpunt van de trein, bijna geen mens hoeft er te zijn, bijna geen hond gaat zover mee:
    [b]Enschede![/b]
      vrijdag 20 januari 2006 @ 12:19:44 #268
    14806 CrashOne
    100% compliant
    pi_34273868
    quote:
    Op vrijdag 20 januari 2006 11:58 schreef JeRa het volgende:

    [..]


    [..]

    Je weet dat MySQL en Access beiden SQL ondersteunen maar twee verschillende programma's zijn?
    Limit werkt niet in access/mssql, dit is ook geen standaard. Hiervoor gebruik je TOP icm met recordset paging.
      vrijdag 20 januari 2006 @ 12:20:50 #269
    14806 CrashOne
    100% compliant
    pi_34273898
    quote:
    Op vrijdag 20 januari 2006 12:19 schreef 9christensen het volgende:
    SELECT COUNT([id]) AS aantal, [SrcIP]
    FROM Notificaction
    GROUP BY [SrcIP]
    ORDER BY COUNT([id]) DESC;

    zo heb ik 'm.

    nu wil ik slechts de top 10 laten zien

    SELECT COUNT([id]) AS aantal, [SrcIP]
    FROM Notificaction
    GROUP BY [SrcIP]
    ORDER BY COUNT([id]) DESC LIMIT 0, 10

    en dan krijg ik weer een foutmelding
    Gebruik eens TOP, zoiets.:
    SELECT TOP 10, COUNT([id]) AS aantal, [SrcIP]
    FROM Notificaction
    GROUP BY [SrcIP]
    ORDER BY COUNT([id]) DESC
    pi_34273920
    Is het nou mysql of niet? zoja, wat doen die blokhaken dan om je kolomnamen
      vrijdag 20 januari 2006 @ 12:27:12 #271
    131306 Vipers
    Zei ik toch!!
    pi_34274098
    quote:
    Op vrijdag 20 januari 2006 12:21 schreef ikke_ook het volgende:
    Is het nou mysql of niet? zoja, wat doen die blokhaken dan om je kolomnamen
    Inderdaad snap er de ballen meer van. Is het nou Mysql
    Je kunt beter ten onder gaan met je eigen visie dan met de visie van een ander
    Ik zeg maar zo: ik zeg maar niets! Want als ik toch wat zeg, zeg je toch: wat zeg je?
      vrijdag 20 januari 2006 @ 12:30:14 #272
    14806 CrashOne
    100% compliant
    pi_34274196
    Hij vraagt of de syntax ook werkt in access en zegt daarna dat hij een foutmelding krijgt, dus ik ga er vanuit dat bij access gebruikt.
      vrijdag 20 januari 2006 @ 13:27:41 #273
    64276 9christensen
    Grolsch bier is gezond
    pi_34276194
    Ja access. Die blokhaken doet access er vanzelf in. Maar hij werkt nu

    Nog een vraagje

    Ik heb zo'n 1400 records met ip's en datum en tijd van inloggen. Nu moet ik ook uitzoeken hoe vaak een ip inlogt tussen bijv. 4 en 10 uur. Dus zou ik een formulier moeten maken en dat je het daar in kan typen. Maar hoe krijg ik die ip's dan als resultaat
    Het is het eindpunt van de trein, bijna geen mens hoeft er te zijn, bijna geen hond gaat zover mee:
    [b]Enschede![/b]
      vrijdag 20 januari 2006 @ 14:01:52 #274
    14806 CrashOne
    100% compliant
    pi_34277466
    SELECT * FROM log_table WHERE date_time between to_date ('2005/12/31', 'yyyy/mm/dd')
    AND to_date ('2006/01/20', 'yyyy/mm/dd');

    Iemand nog wat uitleg voor mijn vraag?
    pi_34278805
    Ik zit met het volgende, ik heb een forum draaien maar ik wil graag dat de crew topics niet in de AT voorkomen. Dit is de code die ik heb, en waar volgens mij de fout in zit:

    1
    2
    3
    4
    5
    6
    7
    <?php
    $sql
    = "SELECT id
            FROM "
    .$db['prefix']."subs
            WHERE perm_view = 2
            OR perm_view = 3
            OR perm_view = 9"
    ;
    ?>


  • perm_vieuw 2 is in de MySQL een mod van niv 2.
  • perm_vieuw 3 is in de MySQL een crew van niv 3.
  • perm_vieuw 9 is in de MySQL een admin van niv 9.

    Als hier geen fout in zet moet ik iets meer van de code geven .

    Bedankt alvast.
  •   FOK!-Schrikkelbaas vrijdag 20 januari 2006 @ 14:40:55 #276
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34278939
    quote:
    Op vrijdag 20 januari 2006 14:36 schreef Twisted_Logic het volgende:
    Ik zit met het volgende, ik heb een forum draaien maar ik wil graag dat de crew topics niet in de AT voorkomen. Dit is de code die ik heb, en waar volgens mij de fout in zit:
    [ code verwijderd ]

  • perm_vieuw 2 is in de MySQL een mod van niv 2.
  • perm_vieuw 3 is in de MySQL een crew van niv 3.
  • perm_vieuw 9 is in de MySQL een admin van niv 9.

    Als hier geen fout in zet moet ik iets meer van de code geven .

    Bedankt alvast.
  • Hiermee selecteer je elke ID uit de database welke een permview heeft van 2,3 of 9.
    Kortom, alle crew topics en geen enkel user topic.
    pi_34279064
    quote:
    Op vrijdag 20 januari 2006 14:40 schreef Swetsenegger het volgende:

    [..]

    Hiermee selecteer je elke ID uit de database welke een permview heeft van 2,3 of 9.
    Kortom, alle crew topics en geen enkel user topic.
    Ja maar die topics moeten niet voor komen in de Active Topics, alleen maar de user topics. Ik zit te denken wat er nu fout gaat want volgens mij is de activetopics.php bij mij goed .
      FOK!-Schrikkelbaas vrijdag 20 januari 2006 @ 14:48:24 #278
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34279202
    quote:
    Op vrijdag 20 januari 2006 14:44 schreef Twisted_Logic het volgende:

    [..]

    Ja maar die topics moeten niet voor komen in de Active Topics, alleen maar de user topics. Ik zit te denken wat er nu fout gaat want volgens mij is de activetopics.php bij mij goed .
    1
    2
    3
    4
    5
    6
    $sql = "SELECT id
            FROM ".$db['prefix']."subs
            WHERE perm_view != 2
            OR perm_view != 3
            OR perm_view != 9";
    ?>


    Of bij de WHERE zet je de perm_view value neer welke overeenkomt met een normale gebruiker

    1
    2
    3
    4
    $sql = "SELECT id
            FROM ".$db['prefix']."subs
            WHERE perm_view=1";
    ?>
    pi_34279345
    quote:
    Op vrijdag 20 januari 2006 14:48 schreef Swetsenegger het volgende:

    [..]
    [ code verwijderd ]

    Of bij de WHERE zet je de perm_view value neer welke overeenkomt met een normale gebruiker
    [ code verwijderd ]
    Het werkt nog niet, maar volgens mij ligt het daar niet aan. Ik neem even een bak koffie en ga het dan nog maar is even allemaal langs lopen.

    Bedankt iig!
    pi_34283395
    quote:
    Op vrijdag 20 januari 2006 14:48 schreef Swetsenegger het volgende:

    [..]
    [ code verwijderd ]
    Dat is niet de tegenhanger van de originele query. Deze query geeft alle topics terug (een id is alijd ongelijk aan 2 of ongelijk aan 3).
    Ik zou er WHERE perm_view NOT IN (2, 3, 9) van maken.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
      FOK!-Schrikkelbaas vrijdag 20 januari 2006 @ 19:29:55 #281
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34288144
    quote:
    Op vrijdag 20 januari 2006 16:53 schreef SuperRembo het volgende:
    een id is alijd ongelijk aan 2 of ongelijk aan 3


    Hij is inderdaad ernstig stupide. Met AND had hij wel geklopt trouwens
    pi_34328025
    Is dit slecht programmeerwerk?:
    1${checked.$a}

    De bedoeling is dat ik variabelen krijg die er zoiets uitzien:
    1
    2
    3
    $checked1
    $checked2
    ....

    Een array is veel mooier vind ik, maar dat werkt niet want ik wil de variabelen graag gebruiken in een
    1
    2
    3
    $code = <<< EOCODE

    EOCODE;

    constructie gebruiken, en daar kan ik gewone variabelen wel gewoon inzetten, maar variabelen uit een array niet.

    Zijn er andere/betere opties, of is mijn oplossing prima?
    pi_34332650
    Variabelen worden in een heredoc string op dezelfde manier geparst als in een double quoted string. Ik zie het probleem niet.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_34351336
    quote:
    Op zondag 22 januari 2006 01:12 schreef SuperRembo het volgende:
    Variabelen worden in een heredoc string op dezelfde manier geparst als in een double quoted string. Ik zie het probleem niet.
    als ik er $array['test1'] inzet werkt het niet, met accolades eromheen werkt wel... Dus tis opgelost.
    pi_34351991
    Als je een array in een string gebruikt, dan moet je juist geen '' om de key zetten

    1
    2
    3
    4
    5
    $array['key'] = 'value';
    echo "$array['key']";// geeft parse error
    echo "$array[key]";// goed
    echo "{$array[key]}";// geeft notice (undefinded constant key)
    echo "{$array['key']}";// goed
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_34357577
    Aha dat wist ik niet, als ik een array in een string gebruik haal ik hem er altijd buiten met ".$array['key']."
    bedankt iig
    pi_34359186
    Ik heb een tabel met landen erin met allemaal een uniek ID.
    Nu wil ik een lijstje maken met alle landen maar het land met ID 8 moet bovenaan in het lijstje staan, de rest van het lijstje moet op alfabetische volgorde zijn. Kan ik dit voor elkaar krijgen met 1 query?
      zondag 22 januari 2006 @ 21:56:18 #288
    120139 freiss
    Hertog Jan :9~
    pi_34359454
    quote:
    Op zondag 22 januari 2006 21:49 schreef ikke_ook het volgende:
    Ik heb een tabel met landen erin met allemaal een uniek ID.
    Nu wil ik een lijstje maken met alle landen maar het land met ID 8 moet bovenaan in het lijstje staan, de rest van het lijstje moet op alfabetische volgorde zijn. Kan ik dit voor elkaar krijgen met 1 query?
    De enige oplossing die ik kan bedenken is om gewoon alles te selecteren en dan mbv PHP eerst diegene met id 8 weergeven, om daarna met een loop de andere te verwerken
    HJ 14-punt-gift.
    Lijst met rukmateriaal!
    pi_34361574
    Als je kunt sorteren op condities (geen idee of dat kan ) dan zou je zoiets kunnen overwegen:

    ORDER BY (`id` = 8) DESC, `name` ASC
    pi_34361896
    quote:
    Op zondag 22 januari 2006 22:46 schreef JeRa het volgende:
    Als je kunt sorteren op condities (geen idee of dat kan ) dan zou je zoiets kunnen overwegen:

    ORDER BY (`id` = 8) DESC, `name` ASC
    Dat werkt nog ook
    En ja, ik heb het getest
      FOK!-Schrikkelbaas zondag 22 januari 2006 @ 22:59:08 #291
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34362088
    quote:
    Op zondag 22 januari 2006 22:54 schreef Light het volgende:

    [..]

    Dat werkt nog ook
    En ja, ik heb het getest
    Dat is wel stoer.
    Deze moet ik even goed onthouden.
    pi_34363163
    Bedankt, maar ik heb een andere constructie bedacht waardoor die hele query vervalt
    pi_34363356
    Ik heb nog een vraagje over JOIN.
    Ik heb 3 tabellen.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    information
       infoID
       userID
       info
       locationID

    users
       userID
       username
       
    locations
       locationID
       location

    Nu wil ik van een bepaald infoID alle velden hebben, ingevuld uit de andere tabellen.
    Dus met 2x een join.
    Maar welke join (left,right,inner,outer) moet ik hiervoor gebruiken?en hoe komt de query eruit te zien?


    -edit-

    Is het verschil tussen left en right alleen dat LEFT NULL teruggeeft als het userID niet gevonden kan worden in de usertable, en dat RIGHT alleen een veld teruggeeft als er een user kan worden gevonden bij een bepaald userID?

    Of kan ik hier andere fouten in maken dat ik straks 3 tabellen compleet opvraag terwijl ik maar 1 record wil hebben?

    [ Bericht 17% gewijzigd door ikke_ook op 22-01-2006 23:41:21 ]
      FOK!-Schrikkelbaas zondag 22 januari 2006 @ 23:39:48 #294
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34363574
    1
    2
    3
    4
    5
    6
    7
    8
      $query="SELECT
            i.info,
            u.name,
            l.location,
            FROM information i
            INNER JOIN users u ON i.userID= u.userID
            INNER JOIN locations l ON i.locationID = l.locationID 
            WHERE i.infoID=".$_GET['id']
    pi_34363707
    Ja die INNER join geeft hetzelfde resultaat als een RIGHT join maar is dit de beste query?
      FOK!-Schrikkelbaas zondag 22 januari 2006 @ 23:46:21 #296
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34363815
    quote:
    Op zondag 22 januari 2006 23:43 schreef ikke_ook het volgende:
    Ja die INNER join geeft hetzelfde resultaat als een RIGHT join maar is dit de beste query?
    Een inner join pakt volgens mij alleen de data ALS er een relatie is. left en right joins pakken altijd de overeenkomstige velden of iets dergelijks... dacht ik

    Bovenstaande is een verbouwing van een query welke ik van superrembo kreeg aangerijkt bij een soortgelijk probleem. SQL is sowieso niet mijn sterkste punt en joins en dergelijke moet ik me nog eens goed in verdiepen
    pi_34364439
    1
    2
    3
    4
     $query="SELECT *
            FROM information i
            INNER JOIN users u ON i.userID = u.userID
            WHERE i.infoID = ".$_GET['id']

    Nu krijg je alleen regels terug waarbij beide regels in information en user bestaan waarvoor i.userID = u.userID.
    Als je er een LEFT OUTER JOIN van maakt, dan krijg je ook regels van information terug waarbij geen bijbehorende regel in users bestaat. Dus als i.userID = NULL of als i.userID niet bestaat. Dit maakt dus alleen verschil als i.userID NULL mag zijn.
    Als je er een RIGHT OUTER JOIN van maakt, dan zou je ook regels uit users kunnen krijgen waar geen regel in information bij bestaat. Maar omdat er ook i.infoID = $_GET['id'] in de WHERE bij staat worden die er weer uitgefilterd.
    Normaal gesproken gebruik je in dit geval dus een INNER JOIN, behalve als de userID NULL mag zijn, dan gebruik je een LEFT OUTER JOIN.
    Wil iedereen die in telekinese gelooft nu mijn hand op steken?
    | Foto's van toen en nu | Icons | Whatpulse keyboard | .NET developer? |
    pi_34370464
    Duidelijk, bedankt
      maandag 23 januari 2006 @ 11:48:11 #299
    64276 9christensen
    Grolsch bier is gezond
    pi_34372685
    Ik ben al een hele tijd bezig, maar kom er niet uit.

    http://img16.imageshack.us/img16/8155/accessssssss5ql.jpg

    ik heb hier een tabel. je moet in de tabel kunnen zoeken op datum en op tijd. (in een formulier denk ik). nu denk ik dat het met mysql moet in een query, maar zit nu eigenlijk een beetje vast.
    Het is het eindpunt van de trein, bijna geen mens hoeft er te zijn, bijna geen hond gaat zover mee:
    [b]Enschede![/b]
      FOK!-Schrikkelbaas maandag 23 januari 2006 @ 11:51:48 #300
    2057 Tokus
    whale oil beef hooked
    pi_34372813
    Waarom wordt er door de mensen hier die mysql'en zovaak nadrukkelijk een inner join aangegeven zoals hierboven ("inner join user u on i.userid = u.userid") ?

    Dat kan toch ook gewoon door 2 tabellen te noemen en in je where-clause ze te verbinden?
    Nothing lasts forever but the certainty of change
      FOK!-Schrikkelbaas maandag 23 januari 2006 @ 11:54:28 #301
    1972 Swetsenegger
    Egocentrische Narcist
    pi_34372900
    quote:
    Op maandag 23 januari 2006 11:48 schreef 9christensen het volgende:
    Ik ben al een hele tijd bezig, maar kom er niet uit.

    http://img16.imageshack.us/img16/8155/accessssssss5ql.jpg

    ik heb hier een tabel. je moet in de tabel kunnen zoeken op datum en op tijd. (in een formulier denk ik). nu denk ik dat het met mysql moet in een query, maar zit nu eigenlijk een beetje vast.
    kijk eens in de mysql handleiding op DATE_SUB
    abonnement Unibet Coolblue Bitvavo
    Forum Opties
    Forumhop:
    Hop naar:
    (afkorting, bv 'KLB')