Beiträge von fubbi

    Zitat von "Sören"

    Wieso ist SET sinnlos, bewirkt doch das selbe wie die andere Schreibweise und ist kürzer?

    SET ist nicht für neue EInträge gedacht, dafür gibt es den Aufbau INSERT INTO wohin VALUES was, dies ist der Standardaufbau der genutzt werden sollte, auch schon rein von der Semantik.

    Beispiel Vergleich zu PHP, man kann um von 1 bis 100 zu zählen eine while Schleife benutzen (SET), nutzt aber besser eine for Schleife (VALUES).

    Entschuldige meine ruppige Ausdrucksweise, es ging ja nicht darum das ihr das machen müsst, ich meinte eher das ihr das so machen müsst damit man genau nachvollziehen kann,

    gerade wenn man noch nicht weiß was, wo, warum steht ist es wichtig alles fein säuberlich aufzureihen damit man genau distanzieren kann was wozu gehört.

    Zitat von "DerWaldschrat"

    Sarkkan: Das @ sorgt dafür, dass auf keinen Fall eine Fehlermeldung ausgegeben wird und, da bin ich mir aber nicht sicher, auch die Skriptausführung nicht abgebrochen wird.

    DerWaldschrat

    Sollte man aber drauf verzichten, lieber am Anfang der Datei "error_reporting(0)" setzen, so spart man sich die @ und man hat einen einfachen Weg zu debuggen (Fehler zu finden), indem man die 0 durch E_ALL ersetzt: "error_reporting(E_ALL)", dies zeigt sogar Fehler an die im Normalfall verborgen werden.

    Ein weiterer Vorteil ist das man nicht ewig alle @ raussuchen muss wenn man einen Fehler aufdecken möchte.

    PHP
    <span class="syntaxdefault"><br />$sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"INSERT INTO `gaestebuch`(`id`, `name`, `email`, `url`, `datum`, `eintrag`) <br />        VALUES (NULL, $_POST['name'], $_POST['email'], $_POST['url'], "</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Y-m-d H:i:s"</span><span class="syntaxkeyword">).</span><span class="syntaxstring">", $_POST['eintrag'])"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">  <br /> </span>

    Ihr müsst den Code mal sauber aufteilen damit ihr seht was wozu gehört, so ist es besser lesbar:

    PHP
    <span class="syntaxdefault"><br />  $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"<br />    INSERT INTO `gaestebuch` <br />    (<br />      `id`, `name`, `email`, `url`, `datum`, `eintrag`<br />    )  <br />    VALUES <br />    (<br />      NULL, $_POST['name'], $_POST['email'], $_POST['url'], "</span><span class="syntaxkeyword">.</span><span class="syntaxdefault">date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"Y-m-d H:i:s"</span><span class="syntaxkeyword">).</span><span class="syntaxstring">", $_POST['eintrag']<br />    );"</span><span class="syntaxkeyword">;</span><span class="syntaxdefault">  <br /> </span>

    Der MySQL Befehl SET ist zwar gut und schön aber die Verwendung ist bei einem neuen Eintrag sinnlos, SET verwendet man bei Änderungen an bereits bestehenden Einträgen:

    Bitte auch am Ende des SQL Befehls das Semikolon ( ; ) nicht vergessen, es gibt zwar keine Fehlermeldung aber es gehört genau wie bei PHP dazu.

    PHP
    <span class="syntaxdefault"><br />  $sql </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"<br />    UPDATE  `tabellenname` <br />    SET `FELD` =  'AENDERUNG';"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>

    Bitte hier nachschauen für mehr Infos!

    Ich hätte da auch noch einen Vorschlag ohne Javascript, dabei wird der CSS Selektor :target genutzt, dieser wird in fast allen Browsern unterstützt, Ausnahmen sind:

    Internet Explorer Version 6,7 und 8
    Google Chrome Version 8

    Hier mal ein Beispiel:

    Hierbei ist nur wichtig zu wissen das über den Anker in der Url die jeweilige Id aufgerufen wird, sprich "http://www.seite.de/#box1" spricht das Element an bei dem die Klasse "box" und die Id "box1" gesetzt ist.

    Diese und ähnliche Methoden werden mit der Zeit JavaScript immer weiter abölsen.