Beiträge von SinnlosS

    Ein Beispiel wie das schon schöner gelöst ist:

    An entsprechender Stelle dann eben ausgeben mit

    PHP
    echo "
    <select name='Format' id='Format'>
    {$options_formate}
    </select>";

    oder

    HTML
    <select name='Format' id='Format'>
    <?php echo $options_formate; ?>
    </select>

    Oha, das sieht aber böse aus!! :D
    Also den Inhalt deiner Variable als Variablennamen zu nehmen machst du mit $$selectid.

    Trotzdem ist das was du da machst alles andere als schön. Wenn du ein bißchen mehr Code postest wären da sicherlich einige Verbesserungsvorschläge drin die dir das weitere coden leichtermachen.

    Edit: Das Forum hier hat übrigens schöne Formatierungsmöglichkeiten für PHP-Code: [ php ] [ /php ] bzw. [ html ] [ /html ] (jeweils ohne die Leerzeichen).
    Wenn du dann noch einrückst sieht dein Code so aus:

    PHP
    function selecta($selectid,$selectvalue)
    {
        echo "value=\"" . $selectvalue . "\"";
        if ( $selectvalue == $"$selectid" )
        {
            echo " selected=\"selected\"";
        }
    }
    HTML
    <select name="Format" id="Format">
      <option <?php selecta("Format","DIN A4"); ?>>DIN A4 (21,0 &times; 29,7cm)</option>
      <option <?php selecta("Format","DIN A5"); ?>>DIN A5 (14,8 &times; 21,0cm)</option>
      <option <?php selecta("Format","DIN A6"); ?>>DIN A6 (10,5 &times; 14,8cm)</option>
      <option <?php selecta("Format","DIN Lang"); ?>>DIN Lang (9,9 &times; 21,0cm)</option>
      <option <?php selecta("Format","GastroFormat"); ?>>GastroFormat (6,5 &times; 14,8cm)</option>
      <option <?php selecta("Format","sonstiges"); ?>>sonstiges - Bitte vermerken</option>
    </select>

    Ka ob es da jetzt eine genau passende php-funktion gibt, aber so hier geht es auch:

    Mit mysql_connect() baust du nur eine Verbindung zum DB-Server auf.
    Du musst dann noch mit mysql_select_db die Datenbank wählen.

    Dann z.B. folgendermaßen:


    mysql_close() brauchst du nicht und auch nicht $db_link, wenn du nicht mit mehreren Datenbanken/Datenbankverbindungen arbeitest.

    Ich weiß jetzt nicht genau wie und wofür du die Abfrage verwendest, aber könnte es nicht sinnvoller sein das zu splitten in die Abfrage auf shop_produkte und in einer Schleife in der du die Ergebnisse ausliest für die jeweilige Zeile nur eine Abfrage für die drei Felder die du aus shop_bilder brauchst zu machen?
    Damit sparst du zwei SELECT-Anfragen pro Produkt.

    Hm, also das mktime(); Probleme mit führenden Nullen bei den Angaben hat wäre mir neu, genauso wie ohne. Schwören möchte ich aber grad auch nicht drauf.
    Probier es doch einfach aus?
    Ansonsten führende Nullen entfernen ist doch kein Thema:

    PHP
    $monat = "05";
    $monat = (int)$monat;


    Genausowenig wie eine führende Null zu ergänzen:

    PHP
    $monat = 5;
    $monat = $monat<10 ? "0".$monat : $monat;


    (oder halt mit string_pad())

    Die schrägen Hochkommata um HipHop.
    Schreib 'HipHop' statt `HipHop` und die Abfrage funktioniert.
    Vorrausgesetzt die Tabelle mit dem entsprechenden Feld existiert in deiner Datenbank.
    Die Klammern um die WHERE-Bedingung sind überflüssig.

    Die neuen Tabellen für die Generierung der Select-Boxen hast du schon angelegt und die Einträge eingepflegt, und in deiner Job-Tabelle die entsprechenden Einträge von der `bezeichnung` auf die `Id`s geändert?
    Du brauchst folgende Tabellen für meine Abfrage:

    `branche` (`id`, `bezeichnung`)
    `bundesland` (`id`, `name`)
    `qualifikation` (`id`, `bezeichnung`)
    `fach` (`id`, `bezeichnung`)

    Die Verbindung zur Datenbank bleibt für den kompletten Script-Ablauf bestehen wenn du sie nicht zwischendurch manuell beendest.
    Du mußt also nicht für jede Select-Box eine eigene Verbindung herstellen.

    [!-- Jeglicher Code ungetestet --!]

    Nehmen wir mal diese Select-Box als Beispiel:

    HTML
    <td>
      <select style="width:100%;" name="Qualifikation" size="1">
        <option value="">alle</option>                    
        <option value="Student / -in">Student / -in</option>
        <option value="Assistenzarzt / -&auml;rztin">Assistenzarzt / -&auml;rztin</option>
        <option value="Facharzt / -&auml;rztin">Facharzt / -&auml;rztin</option>
        <option value="Oberarzt / -&auml;rztin">Oberarzt / -&auml;rztin</option>
        <option value="Professor / -in">Professor / -in</option>
      </select>
    </td>

    Dazu legst du dir eine Tabelle in deiner Datenbank an, z.B. `qualifikation` mit den Feldern `id` als Int Primary Key und `bezeichnung` als Varchar.
    In deiner Job-Tabelle speicherst du dann für die Qualifikation nur noch die Id. Wenn du dann etwas an der Bezeichnung der Qualifikation änderst wird das automatisch für alle eingetragenen Jobs übernommen.
    Auch das Hinzufügen weiterer Bezeichnungen erfolgt nur über die DB, du brauchst nichts am Skript zu ändern.

    Beispiel für die Generierung der Select-Box:

    Äquivalent umsetzbar auf die restlichen Select-Boxen.

    Du arbeitest intern nur noch mit den Ids der jeweiligen Felder. Die Bezeichnungen brauchst du nur für die Ausgabe.

    Wenn du jetzt für einen Job eine Übersicht zur Ausgabe brauchst kannst du deine SQL-Abfrage z.B. so aufbauen:

    Wenn du weitere Fragen hast einfach fragen. :)

    Der letzte PHP-Teil ist nicht schön.

    Erste Lösung: Du machst für jedes Selectfeld einen array in dem die Optionen stehen.
    Nehmen wir an du hast die Bundesländer in einem Array $bundesland stehen, beim generieren der Selectbox baust du dann eine Schleife in etwa folgender Form:

    PHP
    $options = "";
    foreach($bundesland as $value) {
        if($value==$_SESSION['bundesland'])
            $options.= "<option selected>$value</option>";
        else
            $options.= "<option>$value</option>";
    }
    $select_bundesland = "<select name='Bundesland'>$options</select>";

    $select_bundesland kannst du dann an passender Stelle in dein Formular einfügen.

    Zweite Lösung, und wesentlich besser, wäre der Vorschlag von Bandit, die Optionen in der DB abzulegen. Das hat nicht nur den Vorteil, dass du Datenbank-Ressourcen sparst, sondern wenn sich eine Option beispielsweise irgendwann mal in der Bezeichnung ändert, brauchst du das nur in der Tabelle wo eben diese Bezeichnungen stehen zu ändern. Alle eingetragenen Jobs übernehmen automatisch die neue Bezeichnung, da sie über eine ID auf den entsprechenden Eintrag in der entsprechenden Tabelle referenzieren.
    Ich habe gerade keine Zeit da ich nochmal weg muß, werde dafür aber später mal noch ein Beispiel posten wenn du die nötige Struktur noch nicht ganz nachvollziehen kannst.

    Hm, das sieht eigentlich alles passend aus, das einzige was mir auffällt ist beim select-feld für das Bundesland ein fehlendes Leerzeichen zwischen option und value an einer Stelle. Denke aber mal nicht, dass das daran liegt, wenn es auch bei den anderen Select-Feldern nicht klappt. ^^

    HTML
    <td>Bundesland:</td>
                                <td><select style="width:100%;" name="Bundesland" size="1">
                                    <option value="">alle</option>
                                    <optionvalue="Baden-W&uuml;rttemberg">Baden-W&uuml;rttemberg</option>

    Kannst du mal bei ein paar Feldern eine Auswahl treffen, dir den SQL-Query der generiert wird ausgeben lassen und hier posten?

    Wieso er dir die id nicht anzeigt kann ich dir sagen: Du Selectest die id überhaupt nicht bei deiner Abfrage:

    Code
    [COLOR=#000000][COLOR=#cc0000]
    Select
    stadt,bundesland,            
    from
    jobs
    [/COLOR][/COLOR]



    Zu der anderen Frage, es sieht eigentlich für mich alles richtig aus.
    Hast du dir deinen Query mal ausgeben lassen? Bekommt er überhaupt die Where-Klausel?

    Edit sagt: Wo ich meine gepostete Anfrage sehe, fällt mir auch ein Fehler auf.
    In deiner Abfrage ist das Komma nach bundesland zuviel. Entweder zeigst du uns nicht den Code mit dem du tatsächlich arbeitest und der dir alle Datensätze zurückgibt, oder du verschweigst uns eine MySQL-Fehlermeldung die dir mit deinem hier geposteten Code ausgeben werden muß und kriegst überhaupt keine Datensätze selected.
    Beides trägt nicht dazu bei, dass dir jemand helfen kann.

    Edit's Mama sagt:

    PHP
    if (! empty($_POST['Bundesland']))


    Kann es sein, dass du den Namen im Formular kleinschreibst? PHP ist case-sensitive bei Array-Keys.

    Poste mal bitte die Tabellenstruktur von mp_transaction.

    Gehe ich recht in der Annahme, dass im Feld User derjenige steht der überwiesen hat, und im Feld empfaenger derjenige an den überwiesen wurde?

    Dann ist klar, dass du nur ausgehende Überweisungen bekommst, da du in der where-Klausel nur nach

    Code
    user='{$_SESSION['uid']}'

    fragst.
    Wenn du auch eingehende Überweisungen haben willst mußt du deine where-Klausel um

    Code
    OR empfaenger='{$_SESSION['uid']}'

    erweitern.

    Möglich bestimmt.
    Links hab ich aber keine. Und mit den Grafik-Libraries von PHP habe ich mich auch noch nicht groß beschäftigt, daher, und auch in Anbetracht der Uhrzeit, habe ich gerade keine Ambitionen was zu coden.
    Mich würde aber wirklich mal, aus reiner Neugier, interessieren, wozu du das brauchst, bzw. was du damit umsetzen möchtest.

    Beispiel-Aufruf:
    logo.php?bildname=bild1

    In der logo.php greifst du dann mit dem globalen Array $_GET auf die übergebenen Parameter zu.
    Für dieses Beispiel hättest du in $_GET['bildname'] dann "bild1" stehen.

    Wenn du mehrere Parameter übergeben willst kannst du die mit & verknüpfen.
    Beispiel:
    logo.php?galerie=3&bildname=bild1

    Dann hast du in der logo.php $_GET['galerie'] und $_GET['bildname'] zur Verfügung.

    Je nachdem wie du weiter mit den übergebenen Werten arbeitest solltest du sie aber auf Plausibilität prüfen und z.B. bei Verwendung in SQL-Queries mysql_real_escape_string() verwenden.

    Generell musst du berücksichtigen, dass diese Werte sehr leicht vom Besucher der Seite manipuliert werden können.