Posts by Darsstar

    PHP
    <?php
    
    
    mysql_query("UPDATE `[users]` SET `cash`=`cash`+'5000000' WHERE `login`="$data->login" LIMIT 1") or die(mysql_error());
    
    
    ?>


    Wat zou daar nou toch fout aan zijn...
    Ook een beetje weinig vind je ook niet?
    *geeft DonRonaldo het knagende gevoel dat hij meerdere dingen vergeten is*

    Wat heb je geprobeerd?
    Het hoort te werken, dus vertel ons wat je fout deed (en jammer genoeg ook alles wat je goed deed, alleen de fouten zouden voor ons een stuk fijner zijn)

    Mijn versie:

    Nu is het 0 t/m 150 geen tip, 151 t/m 449 tip een, 500 geen tip, 501 en groter tip twee.


    Waarom moet ik toch zelf antwoord geven op mijn eigen vraag...
    Nu mag jij bedenken of dat is wat je wilt.

    En wat zou er nu gebeuren bij 500 posts?
    Mijn tip is om hoog te beginnen, en laag eindigen.
    Zo hoef je alleen te controleren of iets groter is dan X.

    Leg eens uit wat je nou ooit wilt doen?
    Heb je de html in een bestand staan?
    Haal je die via CURL van een pagina?
    Heb je die als string hardcoded in je script?


    http://www.php.net/manual/en/domdocument.loadhtml.php
    http://www.php.net/manual/en/domdocument.loadhtmlfile.php
    Die zou je kunnen gebruiken om een DOMDocument instantie te krijgen.
    DOMDocument::getElementById() returned een DomElement instantie die het object met het opgevraagde id.
    Daarna zul je met $instantie->nodeValue de 'INNERHTML' opvragen...
    Maar even voor de duidelijkheid, dat is niet wat er op het scherm van je gebruiker (php heeft hoogst waarschijnlijk nog geen html geoutput deze request) wordt weergeven.

    Let op de backticks...
    Het zijn geen enkele quotes, dus het wordt niet als de string 'limiet' gelezen, maar als een veld naam.
    Er zijn zelfs geen backticks nodig.


    De code van Jannick zal bij elke clan de zelfde limiet neerzetten.
    Ik geen vergelijkbare code die wel zou moeten werken zoals jij dat wilt.
    Daarna zeg ik dat die code absoluut niet aan te raden is en geef ik een enkele query die wel aan te raden is.

    CP slikt <br /> op binnen code tags...


    echo $sFetch->login.'<br />'; zou moeten werken...


    Edit: zet een backslash voor de slash van <br /> en het werkt, zie de eerste post van pekelterror maar...

    Citaat van Jannick

    Met het uitvoeren heb ik geen problemen ondervonden. Misschien even de de waarde bij 'currency' veranderen? Dus niet het pond-teken, maar bijv. niks. Wellicht dat dat helpt?


    Darsstar hoe wil je dan verklaren dat ik geen foutmelding krijg? Het enige aparte is dat ie het hele veld van currency truncate, is dat de reden?


    *haat MySQL nog meer dan 5 minuten geleden*
    MySQL geeft te weinig errors, probeert zelf te veel dingen te corrigeren en nog wat andere dingen...
    Volgens mij plaatst MySQL allemaal spaties aan het einde van de string zodat het genoeg tekens bevat, bij het uitlezen laat MySQL al die spaties weg.
    Dat laatste weet ik behoorlijk zeker (net nog getest).
    Met een slecht ontworpen login systeem kan je zo dus op een admin account inloggen met je zelf gekozen wachtwoord.


    Nillas
    Ik kan gewoon op een willekeurige phpmyadmin komen hoor, maar dat wilt niet zeggen.
    Een foutmelding zou toch wel erg fijn zijn...

    `currency` char(3) NOT NULL default '£',


    char(3) betekend dat waardes uit drie teken moeten bestaan.
    varchar(3) betekend dat het uit maximaal drie tekens mag bestaan.


    Hoeveel tekens heeft je default waarde?
    Ik denk dat daar het probleem ligt...

    Een Nederlandse wat?


    pekelterror
    Nee, het is een database die de gestandaard SQL niet aan zijn laars lapt zoals MySQL dat doet, maar wel extra features toevoegt, die geen bijna conflicten opleveren.


    basshunter
    Ik heb het niet meer zo op usbwebsever.
    In log bestanden stond dat er emails verstuurd waren die ik niet verstuurd had, en er als spam uit zagen.

    Citaat

    lokaal een server op zetten


    Je kunt verschillende pakketten download die dat voor je doen via een enkele installatie, en dan is alles gelijk op elkaar ingesteld.
    WAMP staat voor Windows, Apache, MySQL en PHP.
    Bij LAMP is alleen de letter L anders, en die staat dan ook voor Linux, MAMP is voor de Mac.
    De X van XAMPP staat voor een variabele, ze hebben verschillende downloads voor verschillende besturings systemen, en de tweede P staat voor Perl.


    Bij WAPP is de MySQL vervangen door PostGreSQL, een betere database om het maar simpel te zeggen.
    Waar LAPP en MAPP voor staan zou je nu zelf moeten kunnen bedenken.


    Zo'n pakket installeren is een stuk simpeler dan alle losse onderdelen zelf installeren en die goed samen te laten werken als je net begint.


    Was dat Nederlands genoeg, of nog niet?


    Citaat

    Maar als je dat Xampp download en gebruikt, kun je dan ok je spel zelf spelen, zien, Ect?


    Ja, ga naar http://localhost/ en je zou de standaard pagina te zien moeten krijgen met de melding dat apache werkt (en dus de installatie gelukt is).
    Het zou ook kunnen dat de standaard port voor de server op 8080 in plaats van 80 is ingesteld, dan moet je naar http://localhost:8080/ gaan.
    Verder kun je ook naar http://127.0.0.1/ of naar het ip van de computer waar de sever op staat binnen het netwerk gaan, dat zou ook moeten werken.

    Je kunt beter lokaal een server op zetten, dat is gratis, en er is nog geen enkele reden voor om wel een domeinnaam (en hosting) te kopen.
    Download standaard pakketten zoals WAMP, LAMP, MAMP of bijvoorbeeld XAMPP.
    Als je het meteen goed wilt doen laat je MySQL zitten en pak je meteen het betere PostGreSQL en neem je bijvoorbeeld WAPP, MAPP, LAPP.
    Natuurlijk kun je ook alles apart downloaden en installeren, maar dat is waarschijnlijk een te grote stap...


    Verder kun je altijd kijken of je lokale bibliotheek een of meer boeken heeft over een van deze onderwerpen.
    Of er zelf een kopen als je dat graag wilt.

    1) het is Darsstar :p
    2) Waarom probeer je het nou toch met een fetch?
    Je zou er dan een while in moeten stoppen:

    PHP
    $dbres15                = mysql_query("SELECT `naam`, `limiet` FROM `[clans]`");
    while($clan                = mysql_fetch_object($dbres15))
    {
        mysql_query("UPDATE `[clans]` SET `bblimiet`='" . $clan->limiet . "' WHERE `naam`='".$clan->naam."'");
    }


    3) Waarom zou je ooit zo veel queries versturen als de volgende query precies het zelfde effect heeft:

    PHP
    mysql_query("UPDATE `[clans]` SET `bblimiet`=`limiet`");


    4) Waarom moet ik de bovenstaande query nou minimaal twee keer plaatsen voor je op het idee komt die te gebruiken?

    In crons nooit dingen fetchen, tenzij je hier een hele, maar dan ook echt hele goede reden voor hebt.


    Verder hoop ik dat je begrijpt dat WHERE login='{$data->login}' er voor zorg dat de query maar een enkele user zal bewerken.
    Dan zou je dus eerst alle userd moeten fetchen (nooit doen), en dan per user een query uitvoeren...
    Maar waat is die WHERE clause nou ooit voor nodig?$
    Het zelfde geld voor $clan en wat je allemaal maar kan bedenken.


    Als je dus in crons queries uitvoert, dan wil je PHP zo min mogelijk laten doen.
    En vertel mij eens wat er mis is met:

    PHP
    mysql_query("UPDATE `[clans]` SET `bblimiet`=10");


    Zo staat de limit in steen gehouwen (hardcoded).
    Of misschien had je dit in gedachten:

    PHP
    mysql_query("UPDATE `[clans]` SET `bblimiet`=`limiet`");