tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
263
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    metalwilli metalwilli ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    8
    Hallo Leute!

    Bin gerade an einem Schulprojekt dran, und habe bisher Daten in einem HTML-Formular an die Datenbank übergeben und eingetragen. Jetzt geht es jedoch an die Auswertung über PHP.

    Ich habe es so gemacht, dass die Anzahl der Antworten gezählt wird und dann als absolute Zahl, als %-Zahl von den Gesamtantworten der jeweiligen Frage und als grafischer Balken dargestellt wird. Die ersten 2 Sachen gehen. Der Balken wird auch in der korrekten Länge angezeigt doch möchte ich die roten Balken "spiegeln". Sie sollen also in die andere Richtung schauen als die grünen!

    Auf der Seite http://metalwilli.me.ohost.de/test/evaluatedata.php kann man sich das Ergebnis mal anschauen.

    Code für die Balken:

    PHP-Code:
    <?php
    //Anzahl der Antworten von Frage 1 zählen (zum Prozentrechnen)
    $sql "SELECT COUNT(*) as qu1total FROM questionnnaire where question1!=''";
    $result mysql_query($sql) OR die(mysql_error());
    $row mysql_fetch_assoc($result);
    $anz=$row['qu1total'];
    $proz=(100/$anz);
     
    //bei question1 zählen wieviel mal Yes geantwortet wurde
    $sql "SELECT COUNT('question1') as qu1y FROM questionnnaire WHERE question1 = 'Yes'";
    $result mysql_query($sql) OR die(mysql_error());
    $row mysql_fetch_assoc($result);
    $qu1y=$row['qu1y'];
    echo 
    $qu1y;
    ?> 
    </td>
    <td width="150">
    <?php
    //nun multpliziert man den Prozentwert einer Antwort an der Gesamtheit * die Anzahl der Antworten bei denen Yes drinnen steht = Prozentwert
    echo round($proz*$qu1y,2)."%";
    ?>
    </td>
    <td width="150">
    <?php
    //man macht in Photoshop ein "Bild" das 1 px breit und 5px hoch ist, dann multipliziert man es mit dem Prozentwert
    echo "<img src='pics/balken_gruen.jpg' height='5' width='".round($proz*$qu1y*2,0)."'"
    ?>
    </td>
    </tr>
    <tr>
    <td width="150">No</td>
    <td width="150">
    <?php
    $sql 
    "SELECT COUNT('question1') as qu1n FROM questionnnaire WHERE question1 = 'No'";
    $result mysql_query($sql) OR die(mysql_error());
    $row mysql_fetch_assoc($result);
    $qu1n=$row['qu1n'];
    echo 
    $qu1n;
    ?> 
    </td>
    <td width="150">
    <?php
    echo round($proz*$qu1n,2)."%";
    ?>
    </td>
    <td width="150">
    <?php
    echo "<img src='pics/balken_rot.jpg' height='5' width='".round($proz*$qu1n*2,0)."'>"
    ?>
    Man beachte besonders qu1n also die Antwort mit dem roten Balken!

    Ich will, dass das Dingens genau in die andere Richtung "fahren lassen". Hoffe es ist halbwegs verständlich, was gemeint ist?

    mfg, metalwilli
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Weise den Nein-Grafikenbalken einen margin-left-Wert von der Differenz der Maximallänge und der Länge des Grafikbalkens zu. Wenn die Maximallänge 200 Pixel und die Länge des Grafikbalkens 123 Pixel ist, sollte der margin-left-Wert 200-123, also 77 Pixel betragen.
     
    Markus Wulftange

  3. #3
    metalwilli metalwilli ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    8
    jetzt schauts so aus:

    http://metalwilli.me.ohost.de/test/evaluatedata.php

    geändert hab ich folgendes:

    PHP-Code:
    <?php
    echo "<img src='pics/balken_rot.jpg' height='5' width='".round($proz*$qu1n*2,0)."' margin-left:'".round($proz*$anz*2,0) - round($proz*$qu1n*2,0)."'>"
    ?>
    er rechnet zwar aber er nimmt es mir nicht als wert für den margin....

    mfg, metalwilli
     

  4. #4
    Registriert seit
    Mar 2004
    Beiträge
    490
    Margin-left ist kein Attribut des IMG Tags, sondern ein Element/Befehl(oder wie man das nennt) aus den CSS Style Sheets.

    Versuch mal

    PHP-Code:
    <?php
    echo '<img src="pics/balken_rot.jpg" height="5" width="'.round($proz*$qu1n*2,0).'" style="margin-left:'.round($proz*$anz*2,0) - round($proz*$qu1n*2,0).'px;">'
    ?>
    P.S.: Habe mal die Single und Doublequotes "getauscht" damit man nichts maskieren muss. Hoffe mir ist dabei kein Fehler unterlaufen.
     

  5. #5
    metalwilli metalwilli ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    8
    Danke, aber trotzdem geht es so auch nicht! Hab die Single- und Doublequotes auch mal ausgewechselt aber nix.

    Jetzt schauts so aus:

    http://metalwilli.me.ohost.de/test/evaluatedata.php




    mfg, metalwilli
     

  6. #6
    Registriert seit
    Mar 2004
    Beiträge
    490
    Schau dir mal den Quellcode des ausgeworfenen HTMLs an

    HTML-Code:
    <td width="150">
    <img src='pics/balken_gruen.jpg' height='5' width='57'</td>
    </tr>
    <tr>
    
    <td width="150">Satisfied</td>
    <td width="150">
    2</td>
    <td width="150">
    28.57%</td>
    <td width="150">
    <img src='pics/balken_gruen.jpg' height='5' width='57'</td>
    <!-- IMG Tag hat kein Ende^^^^^^^^^^^^-->
    </tr>
    Wie du siehst, beim IMG Tag ist nichts zu sehen vom style und margin.
    Da musst du nochmal schauen.

    PS: ich habe mir jetzt nicht die Logik deines Scripts angeschaut, sondern nur nach Syntax und Programmierfehlern gesucht
     

  7. #7
    metalwilli metalwilli ist offline Rookie
    Registriert seit
    Apr 2007
    Beiträge
    8
    Hallo, danke für deine Mühen aber ich bin grad selber auf die Lösung des Problems gekommen war ganz simpel:

    Ich hab einfach eine Spalte mehr gemacht. Der Balken der nach rechts gehen soll, einfach in die Rechte spalte und align = left (default) und der Balken der nach links gehen soll, einfach in die linke Spalte und align = right



    jeztzt schauts so aus:

    http://metalwilli.me.ohost.de/test/evaluatedata.php

    gelöst

    mfg, metalwilli
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 25.08.10, 19:13
  2. Antworten: 2
    Letzter Beitrag: 11.01.09, 16:52
  3. Bei "Line"-Befehl Balken mit Umrandung zeichnen
    Von Black-Zero im Forum Visual Basic 6.0
    Antworten: 1
    Letzter Beitrag: 29.10.08, 23:39
  4. MySQL "ORDER by" umdrehen?
    Von Jonas007 im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 08.12.06, 21:30
  5. Helix-Spline "umdrehen"
    Von JLo_Smiley im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 28.08.04, 09:18