Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Moechte BOOL Werte 0 und 1 bei der Ausgabe uebersetzen in sprechende Texte

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] Moechte BOOL Werte 0 und 1 bei der Ausgabe uebersetzen in sprechende Texte

    In meine DB habe ich einen Parameter s_runner_gender als (BOOL), wobei 0 fuer weiblich (W) und 1 fuer maennlich (M) steht. Nun will ich diesen BOOL-Wert vor der Ausgabe entsporechend uebersetzen:

    So geht's irgendwie nicht:
    (hier natuerlich nur ein Auszug aus dem Code)

    PHP-Code:
    echo "<table border=\"1\">";
    while(
    $row mysql_fetch_object($ergebnis))
    {
    if (
    s_runner_gender 0){$gender 'Ž'}else{$gender 'M'//?????
    echo "<tr>
    <td>
    $row->s_result_id</td>
    <td>
    $row->s_race_name</td>
    <td>
    $row->s_runner_name</td>
    <td>
    $row->s_race_time</td>
    <td>
    $row->s_race_points</td>
    <td>
    $row->s_race_rank</td>
    <td>
    $row->s_runner_birthday</td>
    <td>
    $gender</td> <!--??????-->
    <tr>"
    ;
    }
    echo 
    "</table>"
    Ihr lacht Euch jetzt wahrscheinlich kaputt... macht aber nichts, dann isses wenigstens dafuer gut

  • nikosch
    antwortet
    Denke bitte trotzdem mal über eine Änderung der Datenstruktur nach.

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Zitat von cycap Beitrag anzeigen
    Hu5el hat auch kein Objekt, sondern ein Array genommen.
    Konnte er ja auch nicht wissen, der Code war ja noch nicht da
    Zitat von cycap Beitrag anzeigen
    Sei nicht so hart zu ihm
    OK ich versuche ganz sanft zu sein

    Einen Kommentar schreiben:


  • b_i_g_b_o
    antwortet
    Erstmal.... ihr seid hier soo verdammt schnell im Antworten: HOCHACHTUNG!! und RESPEKT!!

    Dann... Hu5eL's Tip/Hinweis/Antwort ist mir irgendwie durchgerutscht, die hab' ich erst gesehen, als ich meine Frage schon abgeschickt habe.... SORRY

    @lazydog: Im Moment bin ich total gluecklich, also keine weitere Hilfe in dieser Frage noetig...

    DICKES DANKE!

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Zitat von lazydog Beitrag anzeigen
    Ich hab dich auf den Fehler hingewiese, und Hu5eL hat dir gesagt, wie es vermutlich heissen soll. Was sollen wir noch mehr tun?
    Ich hab deinen Edit aber auch nicht gelesen (mal abgesehen davon das ich deine Konstante nicht gesehen hab) und Hu5el hat auch kein Objekt, sondern ein Array genommen. Sei nicht so hart zu ihm

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Ich hab dich auf den Fehler hingewiese, und Hu5eL hat dir gesagt, wie es vermutlich heissen soll. Was sollen wir noch mehr tun?

    Einen Kommentar schreiben:


  • b_i_g_b_o
    antwortet
    Kaum macht man's richtig....

    Einen Kommentar schreiben:


  • cycap
    antwortet
    Wenn du auch s_runner_gender (nichtmal ein $, geschweige denn der richtige name ) prüfst und $row->s_runner_gender ausgibst, wie soll das funktionieren?

    [edit] da war einer schneller als ich

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Du verwendest ja auch die Konstante s_runner_gender statt $row->s_runner_gender

    Error Reporting anstellen! Dann würde die undefinierte Konstante auch angemeckert...

    Einen Kommentar schreiben:


  • b_i_g_b_o
    antwortet
    oh mann, ja, das hab' ich gestern noch auf meinen Spickzettel geschrieben (und trotzdem wieder vergessen). Shame on me...

    Jetzt hab' ich mal gedacht, schreib' die kurze IF-Schleife in eine Zeile, und... schon kommt Mist raus. DANKE und SORRY!

    Klappt jezt..... nee, noch nicht ganz:

    Das erhoffte Ž wird als ? angezeigt und, selbst wenn ich das Sonderzeichen weglasse und z.B. den BOOL-Parameter in "MANN" und "FRAU" uebersetze, wird in jeder Zeile das gleiche ausgegeben, das aendert sich auch nicht, wenn ich eine neue/geaenderte Abfrage abschicke. ????

    Zum check, welcher Ast der Schleife durchlaufen wird, habe ich mal einen counter eingebaut, der mitzaehlen soll - der counterwert wird mit ausgeben.

    PHP-Code:
    echo "<table border=\"1\">";
    while(
    $row mysql_fetch_object($ergebnis))
       {
            if (
    s_runner_gender == 0){ 
                    
    $counter++;
                    
    $gender "FRAU";
            }
            else{
                    
    $counter++;
                    
    $counter++;
                    
    $gender "MANN";
            }
            echo 
    "<tr>
                    <td>
    $row->s_result_id</td>
                    <td>
    $row->s_race_name</td>
                    <td>
    $row->s_runner_name</td>
                    <td>
    $row->s_race_time</td>
                    <td>
    $row->s_race_points</td>
                    <td>
    $row->s_race_rank</td>
                    <td>
    $row->s_runner_birthday</td>
                    <td>
    $gender</td>
                    <td>
    $row->s_runner_gender</td>
                    <td>
    $counter</td>
          <tr>"
    ;
       }
    echo 
    "</table>"

    Die AUsgabe:

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Ich verstehe ehrlich gesagt auch nicht, warum das Geschlecht hier abstrahiert und in externe Logik ausgelagert werden muß. Was ist denn an nem boolschen Wert besser, als in die Datenbank gleich m bzw. f zu schreiben?

    Von der politischen Diskussion mal abgesehen (Wer ist jetzt die Null)?

    KEEP IT SIMPLE ist ein guter Ansatz und 0/1 für m/w bzw. w/m erschließt sich einem einfach nicht. Wer will schon ständig die Dokumentatation bemühen?

    Einen Kommentar schreiben:


  • Hu5eL
    antwortet
    soll bestimmt so aussehen:
    PHP-Code:
    if ($row['s_runner_gender']== 0){$gender 'frau'}else{$gender 'mann'//????? 

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Du weist der Variable immer 0 zu, statt auf 0 abzufragen, ausserdem fehlen die Strichpunkte
    PHP-Code:
    if (s_runner_gender 0){$gender 'Ž'}else{$gender 'M'// falsch

    if (s_runner_gender == 0){ //richtig
        
    $gender 'Ž';
    }
    else{
        
    $gender 'M';
    }
    // oder
    $gender s_runner_gender == 'Ž' 'M'
    [edit]
    Das stimmt allerdings auch nur, falls s_runner_gender irgendwo als Variable deklariert ist. Dann macht die Abfrage allerdings nicht viel Sinn, da der Wert dann ja bekannt sein sollte

    Einen Kommentar schreiben:


  • cycap
    antwortet
    = ist ne Zuordnung, für einen Vergleich musst du schon == benutzen

    [edit]
    ich hab übrigens noch nie "sprechende Texte" gesehen

    Einen Kommentar schreiben:

Lädt...
X