php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.06.2008, 15:43  
Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 37
b_i_g_b_o befindet sich auf einem aufstrebenden Ast
Standard [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
b_i_g_b_o ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.06.2008, 15:48  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

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

[edit]
ich hab übrigens noch nie "sprechende Texte" gesehen
cycap ist offline  
Alt 10.06.2008, 15:52  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

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
__________________
Gruss
L

Geändert von lazydog (10.06.2008 um 15:55 Uhr).
lazydog ist offline  
Alt 10.06.2008, 16:17  
Erfahrener Benutzer
 
Benutzerbild von Hu5eL
 
Registriert seit: 26.02.2008
Beiträge: 342
Hu5eL befindet sich auf einem aufstrebenden Ast
Hu5eL eine Nachricht über ICQ schicken
Standard

soll bestimmt so aussehen:
PHP-Code:
if ($row['s_runner_gender']== 0){$gender 'frau'}else{$gender 'mann'//????? 
Hu5eL ist offline  
Alt 10.06.2008, 16:23  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

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?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 10.06.2008, 16:26  
Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 37
b_i_g_b_o befindet sich auf einem aufstrebenden Ast
Standard

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:
b_i_g_b_o ist offline  
Alt 10.06.2008, 16:28  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

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...
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 10.06.2008, 16:29  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

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
cycap ist offline  
Alt 10.06.2008, 16:30  
Benutzer
 
Registriert seit: 24.05.2008
Beiträge: 37
b_i_g_b_o befindet sich auf einem aufstrebenden Ast
Standard

Kaum macht man's richtig....
b_i_g_b_o ist offline  
Alt 10.06.2008, 16:30  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Ich hab dich auf den Fehler hingewiese, und Hu5eL hat dir gesagt, wie es vermutlich heissen soll. Was sollen wir noch mehr tun?
__________________
Gruss
L
lazydog ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
bool ausgabe, php ausgabe boolean, ausgabe eines boolean wertes, php ausgabe bool

Alle Zeitangaben in WEZ +2. Es ist jetzt 16:07 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum