Ik heb daar meestal een eigen vervangende functie (voor mysql_query()) voor die én de betreffende query uitvoert, en daarbij afhankelijk van de magic_quotes instelling mysql_real_escape_string() uitvoert. Werkt prima.quote:Op donderdag 29 mei 2008 12:32 schreef ursel het volgende:
[..]
Het probleem zit hem volgens mij niet in de query. deze verstuurd de apastrophe gewoon goed. We gebruiken MDB2 van Pear en als ik zijn resultaat dump, dan staat de query er ook gewoon met een apastrophe. Kortom, volgens mijn simpele conclusie maakt MySQL er dus HTML entities van.
In de PHP dit soort zaken opvangen betekend dat ik overal waar we de query gaan uitvoeren dit moeten gaan aanpassen.
Overigens staat er ook deze warning op je linkje :quote:Op donderdag 29 mei 2008 14:23 schreef Tuvai.net het volgende:
[..]
Ik heb daar meestal een eigen vervangende functie (voor mysql_query()) voor die én de betreffende query uitvoert, en daarbij afhankelijk van de magic_quotes instelling mysql_real_escape_string() uitvoert. Werkt prima.
Gezien wij van de zomer aan het systeem gaan werken richting PHP6 lijkt het me dan niet zo zinvol om er nu dan nog mee aan de slag te gaan..quote:Warning
This feature has been DEPRECATED and REMOVED as of PHP 6.0.0. Relying on this feature is highly discouraged.
1 2 3 4 5 6 7 8 | mysql_connect("localhost", "root", "******") or die(mysql_error()); mysql_select_db("test"); $q = "SELECT * FROM `wish` LIMIT 0 , 30"; $res = mysql_query($q); $w = mysql_fetch_array($res); print_r($w); ?> |
1 2 3 4 5 6 7 | $records=array(); while ($row = mysql_fetch_array($res)) { $records[]=$row; print_r($row); } |
en hoe prop ik dit er dan bij?quote:Op donderdag 29 mei 2008 16:29 schreef Dzy het volgende:
klopt
Je fetcht met mysql_fetch_array het volgende resultaat uit de resultaat set, als je dit dus 30 keer doet heb je alle 30 records. Dit los je mooi op met bijvoorbeeld:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 | shuffle($w[1]); foreach ($w as $w2) { echo "<li type=\"circle\" dir=\"ltr\" lang=\"nl\">"; if ($w2[2] == 1)echo "<span style=\"text-decoration: line-through;\">"; echo "$w2 "; if ($w2[2] == 1)echo "</span><br />\n"; echo "</li>\n"; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | mysql_connect("localhost", "root", "cCy4zxY9") or die(mysql_error()); mysql_select_db("test"); $q = "SELECT * FROM `wish`"; $res = mysql_query($q); $w = mysql_fetch_array($res); shuffle($w[1]); foreach ($w as $w2) { echo "<li type=\"circle\" dir=\"ltr\" lang=\"nl\">"; if ($w2[2] == 1)echo "<span style=\"text-decoration: line-through;\">"; echo "$w2 "; if ($w2[2] == 1)echo "</span><br />\n"; echo "</li>\n"; } ?> |
Welk linkje?quote:Op donderdag 29 mei 2008 14:31 schreef ursel het volgende:
[..]
Overigens staat er ook deze warning op je linkje :
[..]
Ik snap er geen fuck meer van..quote:Op donderdag 29 mei 2008 16:37 schreef Dzy het volgende:
Nou, $records is bij mijn voorbeeld precies hetzelfde als jouw $w. Overigens raad ik je aan geen mysql_fetch_array maar mysql_fetch_assoc te gebruiken, dan krijg je veel mooiere arrays met de namen van de database kolommen als keys.
1 2 3 4 5 6 7 | while ($row = mysql_fetch_assoc($res)) { $records[]=$row; print_r($row); } ?> |
1 2 3 4 | $records[]=$row; echo $records["wid"]; ?> |
quote:Op donderdag 29 mei 2008 16:52 schreef qu63 het volgende:
[..]
Ik snap er geen fuck meer van..
Ik heb nu:
[ code verwijderd ]
Dat geeft netjes alles terug, maar als ik
[ code verwijderd ]
doe, komt er weer niks. Doe ik $records[0]["wid"] krijg ik 28 keer een 1, omdat dat de waarde is van wid bij het eerste record.. $records[]["wid"] is niet geldig..
dus hoer moet het dan :?
1 2 3 4 5 | foreach ($records as $record) { printf("Wid is %s\n", record['wid']) } ?> |
eerst een syntax error, unexpected '[' in regel 3 (in dit geval dus) en daarna een syntax error, unexpected '} in regel 4quote:
Oops, teveel python getikt de afgelopen weken (geen $var, maar var en geen ; aan het einde van je statement nodig dan.. kan wel, maar is niet nodig).quote:Op donderdag 29 mei 2008 17:09 schreef qu63 het volgende:
[..]
eerst een syntax error, unexpected '[' in regel 3 (in dit geval dus) en daarna een syntax error, unexpected '} in regel 4
die eerste heb ik opgelost door er $record['wid'] van te maken, maar die 2e blijft..
1 2 3 4 5 6 7 8 9 10 11 12 | $record = array('wid' => 1, 'wid2' => 2); $records[] = $record; $records[] = $record; print_r($records); foreach($records as $record) { printf("Wid is %s\n", $record['wid']); } |
Beetje laat, maar ik los dit soort of statements vaak op met een hash:quote:Op zondag 18 mei 2008 12:25 schreef saban het volgende:
date('l'); geeft Sunday terug, is er niet iets om bijvoorbeeld de taal vast te stellen? date('l','NL'); bijvoorbeeld voor zondag?
Ik heb nu namelijk dit maar het moet makkelijker/netter kunnen:
[ code verwijderd ]
hmz..quote:Op donderdag 29 mei 2008 17:13 schreef slacker_nl het volgende:
[..]
Oops, teveel python getikt de afgelopen weken (geen $var, maar var en geen ; aan het einde van je statement nodig dan.. kan wel, maar is niet nodig).
[ code verwijderd ]
Works for me (tm)
1 2 3 4 5 6 7 | |wid | w | b | +----+----------+-----+ | 1 | wens1 | 0 | | 2 | wens2 | 0 | | 3 | wens3 | 1 | +----+----------+-----+ |
ja, wrom niet gewoon zo oplossen:quote:Op donderdag 29 mei 2008 17:21 schreef qu63 het volgende:
[..]
hmz..
het was gewoon de bedoeling dat mn tabelletje uitgelezen wordt:
[ code verwijderd ]
en dat php de lijst door elkaar gooid, en dat er zoiets uit komt:
- wens2
- wens3
- wens1
Dus alle items door elkaar gegooid, en als b = 1 dan een streep er door..
nog te volgen
1 2 3 4 5 6 7 8 9 10 11 12 13 | $result = mysql_query($query); $num = mysql_num_rows($result); for ($row = 0; $row < $num; $row++) { $data = mysql_fetch_array($result); $wid =$data['wid']; $wens =$data['wens']; $b=$data['b']; # more code here } ?> |
dat werkt idd, thanksquote:Op donderdag 29 mei 2008 17:28 schreef slacker_nl het volgende:
[..]
ja, wrom niet gewoon zo oplossen:
[ code verwijderd ]
Mogelijk kan je ook je query aanpassen:
select wid, wens, b from table en dan even met print_r kijken of de array in de juiste volgorde staat (pas op, data[0] is dan hetzelfde als data['wid'], maar dat staat beschreven in de PHP docs).
shuffle() bedoel je?quote:
Ik heb mbt tot deze code twee tabellen: euro_bet en euro_player.quote:Op donderdag 29 mei 2008 10:33 schreef Hmail het volgende:
Ik weet niet precies hoe je database eruit ziet, maar als het zoiets is:
[ code verwijderd ]
Dan zou je de volgende query kunnen gebruiken:
[ code verwijderd ]
Hiermee telt hij dus het aantal bets, en voegt hij alles onder bij de juiste username. Daarmee voorkom je dubbele resultaten.
ahquote:Op donderdag 29 mei 2008 17:52 schreef slacker_nl het volgende:
Demoest een teken zijn dat die post niet geheel serieus genomen kon worden.
Dat ligt er maar net aan. In PHP6 zijn er geen magic quotes meer. Als je die nu nog wel gebruikt in PHP5 (even controleren met phpinfo() ) dan is het wellicht een goed moment om alvast magic quotes uit te zetten. Als ze al uit staan dan is dat goed, mooi laten staan dusquote:Op donderdag 29 mei 2008 14:31 schreef ursel het volgende:
[..]
Overigens staat er ook deze warning op je linkje :
[..]
Gezien wij van de zomer aan het systeem gaan werken richting PHP6 lijkt het me dan niet zo zinvol om er nu dan nog mee aan de slag te gaan..
1 2 3 4 5 6 | $content = " HOI! : {edwin}"; $vars = array("edwin"); $content = eregi_replace("{([a-zA-Z0-9]*)}",$vars['\\1'],$content); echo $content; ?> |
quote:Op donderdag 29 mei 2008 22:34 schreef Farenji het volgende:
Die $vars is helemaal geen assoc.array maar gewoon een lijst met slechts 1 element...
1 2 3 4 5 6 | $content = " HOI! : {name}"; $vars = array("name" => "edwin"); $content = eregi_replace("{([a-zA-Z0-9]*)}",$vars["name"],$content); echo $content; ?> |
1 2 3 4 5 6 | $content = " HOI! : {name}"; $vars = array("name" => "edwin"); $content = eregi_replace("{([a-zA-Z0-9]*)}",$vars['\\1'],$content); echo $content; ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |