[SAMMELTHREAD] Kleine Coding Fragen

  • Ich hab da einige Anmerkungen, die den Fehler warscheinlich lösen.
    Als erstes solltest Du Dein Datum besser als timestamp speichern, weil man damit viel einfacher rechnen kann. Formatierte Ausgaben kannst Du ja ganz leicht mit timestamps machen.
    Desweiteren bin ich mir nicht 100%ig sicher, ob MySQL nach solch einem Datum richtig sortieren kann. Die nächste Frage wäre warum Du diese nicht nach der ID ordnest, sofern diese unique ist.


    $checkrow scheint für mich ebenfalls fehlerhaft zu sein, wenn Du schon mysqli nutzt, dann bitte richtig.

    PHP
    $checkrow = $zeile->num_rows;


    und die While-schleife zu:

    PHP
    while($row = $zeile->fetch_assoc())


    Hast Du den SQL Befehl mal direkt in phpmyadmin ausgeführt? - Wenn ja welches Ergebnis?

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Und woran erkennst du das? (Also, dass er die ID 1 erkennt)

    Zuvor hab ich über print's nachgeprüft, wo er etwas ausgibt.
    Und offenbar weiß er, dass da was ist, gibt es aber nur nicht aus. Wieso auch immer. :/


    Die nächste Frage wäre warum Du diese nicht nach der ID ordnest, sofern diese unique ist.

    Da ich die News gerne nach Datum sortiert haben möchte. Stimmt, wo du es erwähnst, könnte ich es auch nach der ID sortieren. :|


    $checkrow scheint für mich ebenfalls fehlerhaft zu sein, wenn Du schon mysqli nutzt, dann bitte richtig.

    Hab damit erst seit kurzem angefangen und muss mich da noch etwas hineinarbeiten. ^^
    Und du hast schon bemerkt, dass ich mit PDO arbeite oder? Denn dein Vorschlag bewirkt bei mir 'nen Fehler.
    Notice: Undefined property: PDOStatement::$num_rows in \classes\News.class.php on line 61


    Hab dem SQL Befehl mal in PhpMyAdmin ausgeführt und tatsächlich fällt mir auf, dass wenn es nach dem Datum sortiert wird, nur zwei Ergebnisse angezeigt werden anstatt drei.
    Wenn ich nach der ID gehe, kommen alle. Woran kann das liegen?

    Zitat von PhpMyAdmin

    Zeige Datensätze 0 - 2 (3 insgesamt, Die Abfrage dauerte 0.0004 Sekunden.) [date: 2016-01-26 14:52:41 - 2016-01-26 14:52:41]
    Zeige Datensätze 0 - 2 (3 insgesamt, Die Abfrage dauerte 0.0005 Sekunden.) [ID: 1 - 3]


    Ich hab mal den SQL Befehl umgeändert von date auf ID und nun werden News 1 und 2 - aber nicht die dritte - angezeigt. Also umgekehrt wie mit date, wo nur 2 und 3 angezeigt wurden. :S

  • Ok, habe ich total übersehen. (bzgl. PDO) - dann vergiss mal meinen Text dazu :P
    Wenn ich das jetzt richtig verstanden habe, ist nach ID alle 3 Ergebnisse da und bei bei DATE nur 2?


    Hänge mal bitte jeweils einen Screenshot zu der Abfrage + Ergebnis an.

    Chief Technology Officer (CTO)


    Interesse an folgenden Domains?

    fivemp.de - planet-zoo.de

    Jetzt anschreiben :)

  • Wenn ich das jetzt richtig verstanden habe, ist nach ID alle 3 Ergebnisse da und bei bei DATE nur 2?


    Hänge mal bitte jeweils einen Screenshot zu der Abfrage + Ergebnis an.

    Nach ID werden alle drei offenbar ausgelesen, aber weiterhin nur zwei angezeigt.
    Bei Date werden zwei ausgelesen und zwei angezeigt. :/


    Hab mal im Anhang die Tabellen samt SQL-Abfragen & Ergebnis von date & ID angefügt.

  • Ebenfalls nur die zwei News und immer die letzten und nie die erste.
    Ganz gleich ob mit ID oder date - oder mit ORDER BY oder ohne.


    Das Merkwürdige ist auch, dass in meinem ACP alle News aufgelistet werden.
    Dabei unterscheidet sich der Code kaum... ^^


    $zeile = $this->db->query('SELECT * FROM news ORDER BY date DESC');
    while ($row = $zeile->fetch(PDO::FETCH_ASSOC)) {
    ?>
    <tr>
    <th style="font-weight: 100;" ><?php echo $row['owner'] ?></th>
    <th style="font-weight: 100;"><?php echo date("d.m.Y - H:i:s",strtotime($row['date'])) ?></th>
    <th style="font-weight: 100;"><?php echo $row['title'] ?></th>
    </tr>
    <?php
    }


    //e:
    Fehler lag an $checkrow. X/

    Einmal editiert, zuletzt von RayJohnson ()

  • Was könnte es für Gründe geben, warum mkdir (PHP) nicht funktionieren könnte?


    Meine Ordnerstrukur sieht momentan so aus:

    Code
    |> assets [dir]
    |--> css [dir]
    |----> main.css [file]
    |--> img [dir]
    |----> logo.png [file]
    |> userdata[dir]
    |> index.php [file]


    Nun habe ich meinen Ordner "userdata" und möchte dort bspw einen Ordner für mich anlegen (/userdata/Tusk/).
    Aber es wird einfach kein Ordner erstellt. Die mkdir-Funktion returnt mir ein "false".



    PHP
    if(isset($_SESSION['Username'])) {
    		if(!is_dir("userdata/".$_SESSION['Username'])) {
    			mkdir("userdata/".$_SESSION['Username']);
    		}
    	}
  • Wenn du dir mal die Session geprintet hast und da wirklich dein Name übergeben wird, schreibs mal so:


    mkdir("/userdata/".$_SESSION['Username']);

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wenn du dir mal die Session geprintet hast und da wirklich dein Name übergeben wird, schreibs mal so:


    mkdir("/userdata/".$_SESSION['Username']);


    Das hat tatsächlich geholfen.
    Hätte nicht gedacht, dass es an solch einer Kleinigkeit liegt. Besten Dank :P




    // EDIT: Neue Frage
    Ich kenne ich mit dem Rechte-System auf Linux nun nicht sooo 100% aus, daher meine Frage: Wie kann ich einstellen, dass der Nutzer "webadmin" ALLE Rechte auf /var/www/* besitzt, auch wenn dort neue Ordner, Dateien o.ä. erstellt werden. Ich habe mit PHP einen kleinen File-Upload erstellt, und die hochgeladene Datei kann ich danach über FTP nicht mehr löschen, editieren o.a. (permission denied und so). Hat da einer eine Idee?

    Einmal editiert, zuletzt von Capture ()

  • Weil du auch unten PHP verwenden musst:

    PHP
    <td class="warning"><a href="searchfraction.php"><?php echo $row['id']; ?> </a><input id="inputname" name="inputname" type="hidden" method="POST" value="<?php echo $row['id']; ?>"></td>

    und auslesen?



    PHP
    $id = $_POST['inputname'];
    
    
    <legend><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> Bewerbung ID - <?php echo $id; ?></legend>

    @Kaliber

    #push

  • Auf der Seite wo ich das verwende kommt garnichts also denke ich das die Variable leer ist und das ist mein Problem. Ich weiß nicht warum das nicht funktioniert eigentlich muss das doch funktionieren.
    Benutzen will ich diese ID für ein Bewerbungssystem mithilfe dieser ID werde ich dann alles weitere auslesen .

  • Also alles wird in einer Tabelle angezeigt.
    Sollte man die ID der Bewerbung anklicken sollte man weitergeleitet werden.
    So hat mir das @Kaliber vorgeschlagen.

    HTML
    ?><td class="warning"><a href="searchfraction.php"><?php echo $row['id']; ?> </a><input id="inputfrac" name="inputfrac" type="hidden" method="POST" value="<?php echo $row['id']; ?>"></td><?php
  • Ich hab mehre if abfragen in verbindung mit else für ein array[0] und für array[1] geht das selbe schema wieder los.


    Aber der erste "Abfrageblock" verhindert irgendwie die ausgabe des zweiten. Wenn ich den 1. in /* */ setze funktioniert der zweite.


    Woran liegt das?




    - Tom

  • Teste das mal so:

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen