Je subquery retourneert meerdere resultaten. Maak anders gebruik van de IN() functie van MySQL:quote:Op zondag 12 september 2010 00:30 schreef poepeneesje het volgende:
Ik heb nu een query met daarin een subquery, wanneer ik deze probeer uit te laten voeren geeft hij een fout. Zonder de subquery geeft hij geen error. Iemand die toevallig ziet wat ik verkeerd doe.
[ code verwijderd ]
[..]
1 |
Klote zooi , helemaal niet aan gedacht. Bedankt .quote:Op zondag 12 september 2010 00:32 schreef Tuvai.net het volgende:
[..]
Je subquery retourneert meerdere resultaten. Maak anders gebruik van de IN() functie van MySQL:
[ code verwijderd ]
Klopt het ongeveer mijn idee met een Sessie handler ?quote:ik kan je het principe uitleggen opdat ik het nog niet zelf heb gemaakt maar het gaat als volgt.
1 Een user logt in en alle gegevens die hij heeft worden in een table opgeslagen genaamd Table_Session.
hierin kun je heel simpel inzetten de user_id en de Time, en de Hashcode (zelfgemaakte code gebasseerd op tijd en een paar randomletters ) Randomgenerator niet al te moeilijk om te maken / vinden.
Sample van een row uit de Table_Session tabel.
User_id = 1;
Time = now() + 60 (<--voor in de query) (veld Date gebruiken als waarde)
Hashcode = 2342ahouihf324jnoi; (bvb)
2. Elke pagina die hij laad word de Sessie variabele tijd aangepast met de huidige tijd.
als de huidige tijd groter is dan die van in de tabel word hij uitgelogd. (row uit de Table_Session halen waar de tijd kleiner is dan de huidige tijd.
3. Daarnaast op de achtergrond draait er een query op elke pagina. Deze zoekt de vergelijkbare User_id met de Sessie tabel. als het niet overeen komt (Dmv de hashcode, en als de hashcode anders is of de hele row niet word gevonden in de tabel) word de gebruiker uitgelogd. Dit om injectie van $_SESSION variabele tegen te gaan.
4. Als de tijd verstreken is de 60 minuten dat hij ingelogd mag zijn is hij uitgelogd.
Tijd in de database met de Sessie vergelijken. Even kijken welke je moet vergelijken door deze site: de goeie variabelen te gebruiken. Ik weet niet hoe goed je bent met php.
Dit is een mogelijkheid die ik zou gebruiken om Sessie injectie tegen te gaan.
Als je de gegevens van die personen in een overzicht wilt hebben is het een kwestie van een leftjoin van de Sessie user_id op de user_id van de User table en alles erin te pakken en dan niet met een * maar Table.veldnaam ,table2.veldnaam.
met een simpele Count(*)op alle user_id in de table Sessie heb je alle mensen die zijn ingelogd als getal weergegeven op de website.
Dit zijn mijn inzichten dusver,
zal hem zelf ook eens moeten maken ^^
meteen maar op php vragen hoe ik tijden kan vergelijken .
Groeten,
Cablegunmaster.
Interessant stuk, ik vraag mij af of dit niet een redelijk intensieve methode is voor de DB.quote:Op zondag 12 september 2010 02:21 schreef cablegunmaster het volgende:
[..]
Klopt het ongeveer mijn idee met een Sessie handler ?
Tips?
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 49 50 51 52 53 54 55 56 | function colorPalette($imageFile, $numColors, $granularity = 5) { $granularity = max(1, abs((int)$granularity)); $colors = array(); $size = @getimagesize($imageFile); if($size === false) { user_error("Unable to get image size data"); return false; } $img = @imagecreatefromjpeg($imageFile); if(!$img) { user_error("Unable to open image file"); return false; } for($x = 0; $x < $size[0]; $x += $granularity) { for($y = 0; $y < $size[1]; $y += $granularity) { $thisColor = imagecolorat($img, $x, $y); $rgb = imagecolorsforindex($img, $thisColor); $red = round(round(($rgb['red'] / 0x33)) * 0x33); $green = round(round(($rgb['green'] / 0x33)) * 0x33); $blue = round(round(($rgb['blue'] / 0x33)) * 0x33); $thisRGB = sprintf('%02X%02X%02X', $red, $green, $blue); if(array_key_exists($thisRGB, $colors)) { $colors[$thisRGB]++; } else { $colors[$thisRGB] = 1; } } } arsort($colors); return array_slice(array_keys($colors), 0, $numColors); } if ($handle = opendir('pics/')) { echo "Directory handle: $handle\n"; echo "Files:\n"; /* This is the correct way to loop over the directory. */ while (false !== ($file = readdir($handle))) { echo "$file\n"; echo getimagesize($file); echo colorPalette($handle.$file, 3); echo '<br />'; } closedir($handle); } ?> |
Ik krijg netjes output!quote:Op zondag 12 september 2010 17:17 schreef Treces het volgende:
Ik probeer de "hoofdkleur" uit foto's te halen, deze foto's staan in een map.
Uiteindelijk wil ik alle kleuren sorteren van wit naar zwart met de bestandsnaam erbij.
Ik kom alleen niet verder..
[ code verwijderd ]
Ik krijg de melding "Notice: Unable to get image size data in ...../color.php on line 9".
Iemand die het ziet?
1 |
JPEG en JPG is hetzelfdequote:Op zondag 12 september 2010 17:30 schreef Treces het volgende:
JPG of JPEG zou toch niet zoveel uit moeten maken?
En hoe installeer ik GD2 goed?
1 2 3 4 5 6 7 8 9 10 11 12 13 | GD Support enabled GD Version bundled (2.0.34 compatible) FreeType Support enabled FreeType Linkage with freetype FreeType Version 2.1.4 GIF Read Support enabled GIF Create Support enabled JPG Support enabled PNG Support enabled WBMP Support enabled XBM Support enabled |
En hoe roep je het script aan? De JPG met volledige pad? Probeer dat eensquote:
De foto's die gesorteerd gaan worden zijn allemaal jpg-files.quote:Op zondag 12 september 2010 17:30 schreef Trollface. het volgende:
Je kunt in plaats van imagecreatefromjpg(...) beter imagecreatefromstring(file_get_contents(...)) doen, detecteert het type automatisch.
Done, zelfde melding.quote:Op zondag 12 september 2010 17:39 schreef wobbel het volgende:
[..]
En hoe roep je het script aan? De JPG met volledige pad? Probeer dat eens
Ja:quote:Op zondag 12 september 2010 17:17 schreef Treces het volgende:
Ik probeer de "hoofdkleur" uit foto's te halen, deze foto's staan in een map.
Uiteindelijk wil ik alle kleuren sorteren van wit naar zwart met de bestandsnaam erbij.
Ik kom alleen niet verder..
[ code verwijderd ]
Ik krijg de melding "Notice: Unable to get image size data in ...../color.php on line 9".
Iemand die het ziet?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $dir = "/home/wesleys/Pictures"; #$dir = "./"; if ($handle = opendir($dir)) { echo "Directory handle: $handle\n"; echo "Files:\n"; /* This is the correct way to loop over the directory. */ while (false !== ($file = readdir($handle))) { echo "$file\n"; $jpg="$dir/$file"; if (is_file($jpg) && is_readable($jpg) && preg_match('/\.je?pg$/i', $jpg)) { print_r(colorPalette($jpg, 3)); print_r(getimagesize($jpg)); } } closedir($handle); } ?> |
1 2 3 4 5 6 7 8 9 10 | $database = new Database(); $module = new Module(); $overview = $module->getTheoryWeekends($database->connection); $smarty->assign("overview", $overview); $database->disconnect(); ?> |
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 | class Module { public function getTheoryWeekends($connection) { $overview = array(); $query = " SELECT * FROM CT_theoryWeekends WHERE theoryWeekendID IN ( SELECT theoryWeekendID FROM CT_theoryWeekends WHERE endDate > NOW() AND status = \"enabled\") AND status = \"enabled\" ORDER BY theoryWeekendID DESC, startDate ASC "; $select = $connection->query($query)->fetchAll(PDO::FETCH_OBJ); foreach($select as $key => $value) { if(!array_key_exists($value->theoryWeekendID, $overview)) { $overview[$value->theoryWeekendID] = array($select[$key]); } else { $overview[$value->theoryWeekendID][] = $select[$key]; } } return $overview; } } ?> |
Wat dus verwijst naar $select = [...] in module.class.php. Iemand een idee hoe ik dit kan oplossen en waarom dit probleem zich voor doet?quote:Fatal error: Call to a member function fetchAll() on a non-object in C:\Users[...]\theorieweekenden\module.class.php on line 23
Dit is inderdaad het volledige module.class.php bestand -> de foutmelding verwijst naar $select = $connection->query($query)->fetchAll(PDO::FETCH_OBJ);quote:Op maandag 13 september 2010 13:13 schreef Light het volgende:
Is die weergave van module.class.php het volledige bestand? En klopt de regelnummering ook? (Is regel 23 waar in de foutmelding naar wordt verwezen ook regel 23 in de code hier?
En misschien heeft het met php-versies te maken. Welke versie draait er op je server? En welke in xampp?
Daar zeg je me nog eens wat . Echt te slecht bezig ik: gisteren en vandaag al twee van die simpele dingen over het hoofd gezien .quote:Op maandag 13 september 2010 13:33 schreef Scorpie het volgende:
Is je testdata wel hetzelfde? Ik vermoed van niet namelijk.
1 2 3 | html_entity_decode($input,ENT_QUOTES,'UTF-8') ?> |
1 2 3 | mysql_real_escape_string(stripslashes(trim(htmlentities($input,ENT_QUOTES, 'UTF-8')))) ?> |
Nee, gewoon zoals het hoort in de database doen (met codes enzo, laat alleen mysql_real_escape_string erop) en dan als je alles uit de database haalt, het functionen en utf8ten enzovoorts...quote:Op vrijdag 17 september 2010 13:54 schreef Sitethief het volgende:
decoding
[ code verwijderd ]
encoding
[ code verwijderd ]
Ik vraag me al een paar dagen af of dit de ideale manier is om dingen in de database te zetten en er weer uit te halen........
Waarom zet je die data niet gewoon in je personen tabel?quote:Op vrijdag 17 september 2010 16:02 schreef Joooo-pi het volgende:
Ik ben nog steeds wat aan het klooien met mySQL en nu heb ik de volgende vraag:
[voorbeeld]
1 tabel met personen:
id
naam
2 tabel met data:
id
datum
persoon
aantal
[/voorbeeld]
De persoon in de 2e tabel moet natuurlijk gelinkt zijn aan tabel 1. W3schools.com heeft het over een Foreign key, maar in PHPmyAdmin zie ik dat nergens staan. Hoe moet ik te werk gaan?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |