[SAMMELTHREAD] Kleine Coding Fragen

  • Wird so auch nicht funktionieren.

    Code
    $sapdlevel      =  $db->prepare("SELECT `Mindestlevel` FROM `ucp_fraktion` WHERE `id` = 1");
    	$row_sapdlevel['Mindestlevel'];


    Code
    Notice: Undefined variable: row_sapdlevel in /var/www/ucp/fraktion.php on line 25
  • Hey hab da ein kleines Problem mit der Darstellung von folgendem Feld:
    dsgbug.png


    Gibt es eine Möglichkeit dieses "+1" in einer Zeile anzuzeigen?


    Der momentane CSS Code dazu ist:

    CSS
    font.likes {
        padding: 2px 5px;
        color: white;
        border-radius: 25px;
        background: #00cc00;
        margin-left: 4px;
        margin-right: 4px;
    }
  • So scheint es auch falsch zu sein..

    Code
    $sapdlevel      =  $db->prepare("SELECT `Mindestlevel` FROM `ucp_fraktion` WHERE `id` = 1");
    	$sapdlevel->execute(array(150,'Mindestlevel'));
    	$row_sapdlevel = $sapdlevel->fetchAll();
  • das ist auch totaler müll. Du bindest auch keine variable.


    Entweder `id`= ?
    oder
    `id` = :frakID


    Jedoch muss bei execute auch das array dementsprechend angepasst werden , einmal ohne die verwendung eines keys und bei der zweiten variante mit der verwendung eines keys


    Daher hab ich dir auch den link vorher geschickt, wenn du dir das einmal angeschaut und das vergliechen hättest würdest wissen was dein fehler war.


    @Sascha
    Mach den Usernamen via max-width kleiner oder setze das margin auf 0 und reduziere das padding als auch die fontsize.

  • @IPrototypeI Ich will ja eigentlich auch das es in die 2. Zeile kommen kann da wenn jetzt zum Beispiel "Ankündigung" noch vor dem Namen steht nur sehr wenig von dem Text angezeigt werden kann nur möchte ich nicht das dieses "+1" abgeschnitten wird

    ok dann füg mal display:ruby; dem code hinzu


    Code
    font.likes {
        background: #00cc00 none repeat scroll 0 0;
        border-radius: 25px;
        color: white;
        display: ruby;
        margin-left: 4px;
        margin-right: 4px;
        padding: 2px 5px;
    }

    //Edit


    und für alle die wissen wollen wir man die parameter bei prepared statements binded hier paar möglichkeiten



    Je nach verwendeten Driver kann es sein das man dem prepare, die driver option hnzufügen muss.

    Einmal editiert, zuletzt von IPrototypeI ()

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Wollte hier abfragen, ob Leader 1 oder 0 ist.

    Code
    //Hitman Leader Vorhanden
    	$hitmanleadervorhanden  =   $db->prepare("SELECT `Leader` FROM `ucp_fraktion` WHERE `id` = 5");
    	$row_hitmanleadervorhanden    =   $hitmanleadervorhanden->fetch();


    Es wird mir dennoch geprintet, dass kein Leader vorhanden ist.

  • Klappt soweit, eine Frage noch. Ich rufe hier ja eine "Seite -> ?frak=5" auf, wie/wo kann ich die Funktion für die Seite schreiben.

    PHP
    td><a href="?frak=5"><button type="button" class="btn btn-success">Bewerben</button></td><?php
  • Habe es ja mittlerweile hinbekommen, nutze dafür $_SESSION['FrakID'].
    Nur ein Problem liegt mir auf der Zunge und ich weiß keine Lösung.


    Ich setzte die Session bei den jeweiligen Fraktionen, sobald man auf Bewerben klickt, mit:

    PHP
    $_SESSION["FrakID"] = 3;


    Wenn ich mich dann bewerbe, meint er dennoch, immer FrakID 5 in der Datenbank einzutragen.



    Aus Sicherheitsgründen habe ich die Session dann eliminiert, damit es zu keinen Bugs kommt, nachdem die Bewerbung abgeschickt ist.
    Es funktioniert alles, dennoch wird FrakID immer als "5" eingetragen.

  • @Speezy wozu setzt du dafür eine Session? So lange du die GET-Variable "frak" übermittelst musst du doch keine Session machen.


    PHP
    echo "<a href='?frak=5'><button>Bewerben</button></a><br />
    <a href='?frak=3'><button>Bewerben</button></a>";




    Alle weiteren Aufrufe der Seite zum Beispiel zum Absenden der Bewerbung solltest du zb über diesen Link machen: "?frak=3&send" wodurch sich für dich die Fraktions ID wieder einfach über die GET Variable beim nächsten Seitenaufruf auslesen lässt.



    Ich würde dir auserdem empfehlen keinen HTML Code mit PHP zu vermischen. Versuchs lieber in der Schreibweise:

  • Dank dir, klappt!
    Wie kann ich folgendes abfragen,dass keine Fehler entstehen.


    Sprich, bei der Funktion //Bewerbung auflisten.

    Code
    //Fraktion abfragen
    	$query_fraktion  =   $db->prepare("SELECT `Fraktion` FROM `script_accounts` WHERE `id` = :id");
        $query_fraktion->execute(array('id' => $_SESSION['id']));
        $row_query_fraktion    =   $query_fraktion->fetch();
        //Bewerbungen auflisten
        $query_beschwerde   =   $db->prepare("SELECT * FROM `ucp_bewerbungen` WHERE `Status` = 0 AND `FrakID` = "$query_fraktion"");
        $query_beschwerde->execute();

    Einmal editiert, zuletzt von Speezy ()

  • Code
    $query_fraktion  =   $db->prepare("SELECT `Fraktion` FROM `script_accounts` WHERE `id` = :id");
        $query_fraktion->execute(array('id' => $_SESSION['id']));

    Genau so aufbauen..


    Wenn du immer noch nicht weisst was ich meine, eigne dir bitte die Grundlagen von PHP an.