http://www.php.net/mysql_real_escape_stringquote:Op zaterdag 2 september 2006 14:06 schreef smesjz het volgende:
Of je gebruikt sprintf() om van het gezeik af te zijn:
$sql = sprintf("DELETE FROM leden WHERE id=%d",$_GET['id']);
Maar natuurlijk kan sprintf() ook nog helpen (er zijn meerdere mogelijkheden) bij XSS probleempjes omdat je gemakkelijk de lengte en format van een string (of int,float whatever) kan beperken.
Maar aangezien het voorbeeld lijkt te gaan over een CMSachtig iets waar niet iedereen zo maar gebruikersbeheer kan toepassen (of google alle links kan volgen, ook leuk) valt het probleem hier nogal mee.
1 2 3 4 5 6 7 8 9 | // Prepare statement $stmt = $db->prepare('DELETE FROM `leden` WHERE `naam` = :naam'); $stmt->bindValue('naam', 'Danny'); // Execute $stmt->execute(); unset($stmt); |
1 |
1 2 3 | $data = array (10, 20, 30, 15, 39, 29, 3); ?> |
dat is een goeiequote:Op zaterdag 2 september 2006 12:20 schreef Knut het volgende:
Ow, en het is beter gebruik om een status veld toe te voegen aan je database en dat status veld in je query's te gebruiken.
informatie daadwerkelijk deleten komt je nog al eens duur te staan![]()
Die snap ik niet? Als ik het volgende heb:quote:Op zaterdag 2 september 2006 19:47 schreef Swetsenegger het volgende:
$row['aantal'] is toch al een array
1 2 3 | $result = mysql_query("SELECT COUNT(*) as aantal FROM orders GROUP BY datum ORDER BY datum DESC LIMIT 100"); ?> |
Ik heb de moed inmiddels opgegeven. Allerlei querys geprobeerd (ook met timestamp), maar ik krijg niet de laatste foto. Ik heb nu gewoon geen GROUP BY erbij staan, maar mocht iemand nog een idee hebbenquote:Op vrijdag 1 september 2006 21:22 schreef Piles het volgende:
[..]
Jep (als DATETIME, als dat nog uitmaakt).
Maar MySQL werkt nu gewoon door elkaar. Hij selecteert de laatste datum en zomaar een foto![]()
mysql_fetch_array of mysql_fetch_assoc?quote:Op zaterdag 2 september 2006 20:01 schreef HuHu het volgende:
[..]
Die snap ik niet? Als ik het volgende heb:
[ code verwijderd ]
Hoe krijg ik dan daar een array uit?
Dit voorbeeld is niet voor een CMS of zo. Maar ik wil het wel gaan gebruiken in een heel erg basis CMS waar voor moet ingelogd worden zo dat niet iedereen er bij kan.quote:Op zaterdag 2 september 2006 14:06 schreef smesjz het volgende:
Of je gebruikt sprintf() om van het gezeik af te zijn:
$sql = sprintf("DELETE FROM leden WHERE id=%d",$_GET['id']);
Maar natuurlijk kan sprintf() ook nog helpen (er zijn meerdere mogelijkheden) bij XSS probleempjes omdat je gemakkelijk de lengte en format van een string (of int,float whatever) kan beperken.
Maar aangezien het voorbeeld lijkt te gaan over een CMSachtig iets waar niet iedereen zo maar gebruikersbeheer kan toepassen (of google alle links kan volgen, ook leuk) valt het probleem hier nogal mee.
Je bedoelt dat je gewoon de laatst toegevoegde record wil pakken uit je database?quote:Op zaterdag 2 september 2006 20:05 schreef Piles het volgende:
[..]
Ik heb de moed inmiddels opgegeven. Allerlei querys geprobeerd (ook met timestamp), maar ik krijg niet de laatste foto. Ik heb nu gewoon geen GROUP BY erbij staan, maar mocht iemand nog een idee hebben![]()
Nee, zie: [PHP/(My)SQL] voor dummies - Deel 31quote:Op zaterdag 2 september 2006 20:57 schreef Tuvai.net het volgende:
[..]
Je bedoelt dat je gewoon de laatst toegevoegde record wil pakken uit je database?
SELECT * FROM jouwtabel ORDER BY datum DESC LIMIT 1
Er moet een GROUP BY oid in, want ik heb de volgende tabellenquote:Op zaterdag 2 september 2006 21:15 schreef Tuvai.net het volgende:
Heb je al eens ORDER BY id ASC, datum DESC geprobeerd?
1 2 3 | $result = mysql_query("SELECT COUNT(*) as aantal FROM orders GROUP BY datum ORDER BY datum DESC LIMIT 100"); ?> |
1 2 3 4 5 6 | while($row = mysql_fetch_assoc($result)) { echo($row["aantal"]. "<br />"); } ?> |
1 2 3 | print_r(mysql_fetch_assoc($result)); ?> |
1 2 3 4 5 6 7 8 9 10 | $result = mysql_query("SELECT COUNT(*) as aantal FROM orders GROUP BY datum ORDER BY datum DESC LIMIT 100"); $data = array(); while($row = mysql_fetch_assoc($result)) { array_push($data, $row["aantal"]); } ?> |
Volgens mij is daar geen standaard functie voor en daar zijn natuurlijk wel legio redenen voor te verzinnen.quote:Op zaterdag 2 september 2006 22:37 schreef HuHu het volgende:
Ik heb het nu zo opgelost:
[ code verwijderd ]
Maar hier moet toch ook wel een standaard-functie voor bestaan?
PHP4 of PHP5? Dat maakt zeker bij objecten wel uit. Ook de relatie tussen de objecten is handig. Maar ik denk niet dat je zomaar een object naar een ander type kunt casten.quote:Op zondag 3 september 2006 11:38 schreef robh het volgende:
[..]
Volgens mij is daar geen standaard functie voor en daar zijn natuurlijk wel legio redenen voor te verzinnen.
Is het trouwens mogelijk om in PHP objecten te casten naar andere objecten? Ik zie wel dat het mogelijk is om (object) te casten, maar ik wil een "iets" casten naar een object van mijn keuze.
PHP5.quote:Op zondag 3 september 2006 13:13 schreef Light het volgende:
PHP4 of PHP5? Dat maakt zeker bij objecten wel uit. Ook de relatie tussen de objecten is handig. Maar ik denk niet dat je zomaar een object naar een ander type kunt casten.
Een hond is geen fiets, dus het zou niet logisch zijn als je objecten van class hond naar class fiets kunt casten.
Het ligt maar net aan je definitie voor 'netter'quote:Op zondag 3 september 2006 13:39 schreef robh het volgende:
[..]
PHP5.
Ik weet dat het niet logisch is om te doen, maar het zou mooi zijn als het kan. Ik denk dan bijvoorbeeld aan een rij tabeldata uit een db die je zou kunnen casten naar een object (met dezelfde attributen) en dat dan je getters en setters gewoon werken. Tuurlijk is daar wel een andere oplossing voor, maar als het met een cast kon zou het imo netter zijn.
1 2 3 4 5 6 7 8 9 | $test = array('blaat' => 2, 3 => 'onzin'); $obj = (object)$test; print_r($obj); ?> |
quote:Op zondag 3 september 2006 14:55 schreef Skorpija het volgende:
Hoe zou je in MySQL een veld waarde met 1 optellen?
Moet je eerst uitlezen wat er in dat veld staat met een select query, en daarna met een update query +1 bij de gevonden waarde doen?
En hoe zit dit dan als er 2 of meer gebruikters dit bijna gelijktijdig doen. Dan lezen ze beide tegelijkertijd bijvoorbeeld het getal 5. Dan schrijft er 1 weg en wordt het zes, en schrijft de ander ook weg, waardoor het 6 blijft, terwijl het 7 had moeten zijn...
Iemand een idee, of weet waar ik ergens moet zoeken?
1 |
quote:Op zondag 3 september 2006 14:55 schreef Skorpija het volgende:
Hoe zou je in MySQL een veld waarde met 1 optellen?
Moet je eerst uitlezen wat er in dat veld staat met een select query, en daarna met een update query +1 bij de gevonden waarde doen?
1 |
Het grote concurrency probleem dusquote:En hoe zit dit dan als er 2 of meer gebruikters dit bijna gelijktijdig doen. Dan lezen ze beide tegelijkertijd bijvoorbeeld het getal 5. Dan schrijft er 1 weg en wordt het zes, en schrijft de ander ook weg, waardoor het 6 blijft, terwijl het 7 had moeten zijn...
1 |
1 2 | UPDATE tabel SET waarde = $waarde + 1; |
1 2 3 4 | SELECT waarde FROM tabel WHERE naam = 'piet'; UPDATE tabel SET waarde = $waarde + 1; UNLOCK TABLES; |
1 2 3 4 5 | FROM `item` AS i INNER JOIN foto AS f ON i.item_id=f.item_id GROUP BY i.item_id ORDER BY f.foto_datum DESC |
al opgelostquote:Op zondag 3 september 2006 12:40 schreef KaMo het volgende:
phpBB : Critical Error
Could not open DArk template config file
DEBUG MODE
Line : 503
File : functions.php
Nu wil ik dus met PHPmyAdmin alle "DArk" in "ndesign" veranderen
maar dan heb ik hem veranderd en dan zoek ik naar DArk
is het weer veranderd in DArk
Waar ligt dit aan?
Eigenlijk hoor je te groeperen op elk veld dat in de select voor komt. Als er meerdere foto's bij een item kunnen horen, dan weet je met jouw query niet welke foto je bij een item krijgt.quote:Op zondag 3 september 2006 18:00 schreef Piles het volgende:
Ik heb eindelijk eens oplossing voor mijn foto-probleem (met dank aan een ander forum)
[ code verwijderd ]
![]()
Alleen de velden uit de tabel `item` neem ik aan?quote:Op zondag 3 september 2006 19:32 schreef SuperRembo het volgende:
[..]
Eigenlijk hoor je te groeperen op elk veld dat in de select voor komt. Als er meerdere foto's bij een item kunnen horen, dan weet je met jouw query niet welke foto je bij een item krijgt.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |