abonnement Unibet Coolblue Bitvavo
pi_41404821
quote:
Op vrijdag 1 september 2006 19:59 schreef Piles het volgende:
Ik heb de volgende tabel:

id datum link
1 31-08-2006 iets.jpg
1 23-08-2006 iets.jpg
1 01-08-2006 iets.jpg
2 02-08-2006 iets.jpg
2 01-08-2006 iets.jpg

Ik gebruik de volgende query om de laatste foto's bij elk id te laten zien (dus 1 foto per id):

[ code verwijderd ]
Maar nu krijg ik de oudste eerst

Ikke niet snappe
Het staat hier uitgelegd: http://gathering.tweakers.net/forum/list_messages/1133525

Je query zou moeten worden:

1
2
3
4
SELECT id, MAX(datum) as maxdatum, link 
FROM foto 
GROUP BY id 
ORDER BY maxdatum DESC
pi_41405311
Hij werkt bijna goed
Maar nog niet helemaal. Ik krijg nu wel de laatste datum per id, maar nog wel een oude foto
  vrijdag 1 september 2006 @ 21:18:52 #213
12880 CraZaay
prettig gestoord
pi_41405987
Sidenote: je hebt je datum er als DATE in staan neem ik aan, en dus jaar-maand-dag, ipv jouw dag-maand-jaar?
pi_41406085
quote:
Op vrijdag 1 september 2006 21:18 schreef CraZaay het volgende:
Sidenote: je hebt je datum er als DATE in staan neem ik aan, en dus jaar-maand-dag, ipv jouw dag-maand-jaar?
Jep (als DATETIME, als dat nog uitmaakt).
Maar MySQL werkt nu gewoon door elkaar. Hij selecteert de laatste datum en zomaar een foto
pi_41408948
Met zoiets kun je beter met unix timestamps werken, time() dus...
pi_41412071
Ik krijg bepaalde data niet goed uit m'n database terug, de situatie:

ik schrijf een bestandsnaam weg, bijvoorbeeld:
- overzicht.xls (zonder spatie)
- overzicht 2006.xls (met spatie)

Als ik deze bestandsnaam wil verwerken tot een URL door deze uit de database te halen en vervolgens achter een string te plaatsen gaat het goed, mits er geen spaties voorkomen in de bestandsnaam. Als er wel 1of meerdere spaties voorkomen in de bestandsnaam wordt alleen het 1e woord van de bestandsnaam verwerkt en dan stopt ie ermee.

Voorbeeld:
- overzicht.xls wordt verwerkt tot http://www.domein.tld/overzicht.xls
- overzicht 2006.xls wordt verwerkt tot http://www.domein.tld/overzicht

Hoe los ik dit op?
pi_41412154
code misschien handig?

weet ik anders veel, misschien explode je wel op spaties ofzo..
pi_41413253
quote:
Op zaterdag 2 september 2006 00:29 schreef the_disheaver het volgende:
code misschien handig?

weet ik anders veel, misschien explode je wel op spaties ofzo..
Hier gaat het fout:

1
2
3
4
5
*query*
*gegevens uit de db halen en verwerken*


<td class="table_cell"><?php print "<a href = ".$Rij['download'].">Download</a>";?></td>



in
1$Rij['download'] 

staat dus de bestandsnaam welke niet volledig wordt getoond als er spaties aanwezig zijn...

Is het duidelijker nu?
pi_41413582
1<?php print '<a href = "'.$Rij['download'].'">Download</a>';?>


De html-output is gewoon verkeerd. Er zal iets in de trant van
<a href=overzicht 2006.xls> staan ipv <a href="overziht 2006.xls">

Of de dubbele aanhalingstekens escapen (slash teken ervoor), of enkele aanhalingstekens gebruien ipv dubbele bij de print (print 'blaat'; ipv print "blaat";)

Maar idee om de download link te urlencoden?
pi_41413995
Het was inderdaad een kwestie van qoutes toevoegen aan de URL, bedankt voor je hulp the_disheaver
pi_41414409
bij deze een echte n00b vraag;

ben nu een videocursusje aan t volgen van php (via lynda.com) maar ik zie dus af en toe variablen voorkomen met een punt erachter

voorbeeld:
$color maar zo heel af en toe weer: $color.

wat heeft die punt voor functie?
pi_41415052
quote:
Op zaterdag 2 september 2006 01:54 schreef warezguy05 het volgende:
bij deze een echte n00b vraag;

ben nu een videocursusje aan t volgen van php (via lynda.com) maar ik zie dus af en toe variablen voorkomen met een punt erachter

voorbeeld:
$color maar zo heel af en toe weer: $color.

wat heeft die punt voor functie?
In PHP is een punt de operator voor concatenatie (optelling) van twee strings. Voorbeeldje:

1
2
3
4
5
6
$string1 = 'abc';
$string2 = 'def';

$output = $string1 . ' ' . $string2;

echo $output;  // abc def


Maar hoogstwaarschijnlijk is het gewoon een toevallige regeleinde die niet consequent wordt toegepast in die video tut?
pi_41418428
Oke, ik ben nu zo ver om dingen te verwijderen uit de database met PHP

Dus ik heb het in 1 pagina gegooit zoals dit:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
//voer de MySQL query uit
$result = mysql_query('SELECT  * FROM leden');

echo
"<table border='1'>";

while(
$row = mysql_fetch_array($result)) {
    echo
"<tr>\n";
    echo
"<td>$row[id]</td> <td>$row[naam]</td> <td><a href='$server?id=$row[id]'>verwijder</a></td>\n";
    echo
"</tr>\n";
}
    
echo
"</table>";

//dit stond eerst in een ander document    
if(isset($_GET['id']) ) {
mysql_query('DELETE FROM leden WHERE id='.$_GET['id']);
    }
?>


Als er nu op verwijder word gedrukt is de record wel verwijder, maar hij staat nog in m'n scherm. pas als ik refresh is het weg. Hoe voor kom ik dit?

Of is dit helemaal geen goede manier?

edit-
hm ik kom er ook net achter als ik een getal invoer bij de url achter ?id= datie dan ook verwijderd word.
pi_41418507
eerst de delete-functie, dan de tabel echo'en.
pi_41418766
oke dat was makkelijk

en dat voor mijn edit? Hoe verhelp ik dat?
pi_41418819
quote:
Op zaterdag 2 september 2006 11:28 schreef super-muffin het volgende:
oke dat was makkelijk

en dat voor mijn edit? Hoe verhelp ik dat?
uh een submit gebruiken (m.b.v. javascript je link dus een formulier laten submitten met een veld dat het id als waarde heeft) en dan checken of je een post waarde hebt?
pi_41419366
hm, klinkt ingewikkeld. Ik weet niet veel van Javascript, is er geen andere manier?
pi_41419486
<form method="post" action="$server">
<input type="hidden" name="id" value="$row[id]">
<input type="submit" value="del">
</form>
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41419518
Uhm, wat dacht je van die
1
2
3
if(isset($_GET['id']) ) {
mysql_query('DELETE FROM leden WHERE id='.$_GET['id']);
    } 


Boven je select query te plaatsen?

En please, zet error_reporting(E_ALL) aan zodat je geen ranzige code meer schrijft

$row[id] => Dat verwijst naar een constante met de naam id maar wat je eigenlijk wil is '$row['id'] gebruiken. Hiermee verwijs naar het element met de naam 'id' in je array
pi_41419810
Oe leuk, en dan een leuke SQL query toevoegen aan $_GET['id'] zodat er tabellen gedropt worden
[20:25] [Knut] Een vrouw met een kerst fetish...
[20:26] [Knut] Niet zo letterlijk dat ik haar met baard om moet HOHOHOEN
[20:26] [Knut] maar je snapt het idee wel.
pi_41419841
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
[20:25] [Knut] Een vrouw met een kerst fetish...
[20:26] [Knut] Niet zo letterlijk dat ik haar met baard om moet HOHOHOEN
[20:26] [Knut] maar je snapt het idee wel.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 12:28:35 #232
1972 Swetsenegger
Egocentrische Narcist
pi_41420039
quote:
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
Tja, als je zo bang bent om het verkeerde te deleten, kan je beter geen delete optie inbouwen
pi_41420061
quote:
Op zaterdag 2 september 2006 12:18 schreef Knut het volgende:
Oe leuk, en dan een leuke SQL query toevoegen aan $_GET['id'] zodat er tabellen gedropt worden
jaa leuk
probeer het maar eens en bederf je eigen voorpret
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41420116
quote:
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
in eerste instantie deed ik dat ook altijd, en aan de ene kant heeft het ook zeker voordelen. maar aan de andere kant wordt je database er niet schoner en kleiner op. ik ben er vanaf gestapt, zonder spijt tot nog toe.
As a rule, I never touch anything more sophisticated and delicate than myself.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 12:31:32 #235
1972 Swetsenegger
Egocentrische Narcist
pi_41420124
quote:
Op zaterdag 2 september 2006 12:29 schreef Desdinova het volgende:

[..]

jaa leuk
probeer het maar eens en bederf je eigen voorpret
Want?
je stukje code staat wijd open voor sqlinjection hoor
pi_41420253
quote:
Op zaterdag 2 september 2006 12:31 schreef Swetsenegger het volgende:

[..]

Want?
je stukje code staat wijd open voor sqlinjection hoor
niet mijn stukje code maar dubbele sql queries worden niet meer uitgevoerd door mysql_query() toch?
As a rule, I never touch anything more sophisticated and delicate than myself.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 12:42:37 #237
1972 Swetsenegger
Egocentrische Narcist
pi_41420361
quote:
Op zaterdag 2 september 2006 12:38 schreef Desdinova het volgende:

[..]

niet mijn stukje code maar dubbele sql queries worden niet meer uitgevoerd door mysql_query() toch?
Sinds wanneer? en daarnaast hoeft het geen dubbele query te zijn, als je je in id een and ofzo plakt krijg je al meer informatie terug dan voor jou bedoelt is. Zie een discussie die ik had met jera in 1 van de oudere topics waarin ik ook iets teveel vertrouwde op magic quotes en dergelijke. Staat ook een werkend voorbeeld in.
pi_41420556
quote:
Op zaterdag 2 september 2006 12:42 schreef Swetsenegger het volgende:

[..]

Sinds wanneer? en daarnaast hoeft het geen dubbele query te zijn, als je je in id een and ofzo plakt krijg je al meer informatie terug dan voor jou bedoelt is. Zie een discussie die ik had met jera in 1 van de oudere topics waarin ik ook iets teveel vertrouwde op magic quotes en dergelijke. Staat ook een werkend voorbeeld in.
ok top
ga ik me ff wat meer verdiepen in sql injection, want ik vertrouw idd ook op de magic quotes atm.
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41420752
quote:
Op zaterdag 2 september 2006 02:35 schreef JeRa het volgende:

[..]

In PHP is een punt de operator voor concatenatie (optelling) van twee strings. Voorbeeldje:
[ code verwijderd ]

Maar hoogstwaarschijnlijk is het gewoon een toevallige regeleinde die niet consequent wordt toegepast in die video tut?
ok duidelijk
pi_41422423
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.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')