kostenloser Webspace werbefrei: lima-city


MY SQL Rechnen mit Tabellenwerten

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    jensico-airlines

    jensico-airlines hat kostenlosen Webspace.

    Hallo,

    ich würde gerne bei meiner Tabelle von einer Spalte alle werte zusammen rechnen.
    Ich habe auch schon viel versucht, aber immer kam eine Fehlermeldung egal was ich gemacht habe.

    Meine Daten:
    Tabelle: flugstunden
    Spalte: stunde

    Meine letzte Ausführung sieht so aus:
    Ich habe mal den User und das Password raus genommen.
    <?php

    $host = "mysql.lima-city.de";
    $user = "";
    $password = "";
    $dbname = "db_72063_1";
    $tabelle ="flugstunde";

    $dbverbindung = mysql_connect ($host, $user, $password);

    $ergebnis = mysql_query(SELECT SUM(stunde) AS summe FROM flugstunden);

    {
    echo $ergebnis;
    }
    mysql_close ($dbverbindung);

    ?>

    Leider kommt auch hier eine Fehlermeldung. Kann mir jemand sagen was ich falsch mache? Oder würdet ihr es ganz anders machen.

    In meiner Tabelle stehen in der Spalte stunde 2 Zahlen: 10 und 15.
    Als Ergebnis sollte also 25 raus kommen.

    Mfg jens
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. g**n

    <?php
    
    $host = '';
    $user = '';
    $password = '';
    $dbname = '';
    $tabelle ='flugstunde';
    
    
    
    $dbverbindung = mysql_connect ($host, $user, $password);
    
    // du hattest vergessen die datenbank auszuwählen
    mysql_select_db($dbname);
    
    
    // das or die(mysql_error()) hilft, es zeigt Fehlermeldungen an ...
    
    $query = 'SELECT SUM(stunde) AS summe FROM ' . $tabelle;
    $ergebnis = mysql_query($query) or die(mysql_error());
    $num = mysql_num_rows($ergebnis);
    
    if($num == 1)
    {
    	echo mysql_result($ergebnis,0,'summe');
    }
    
    mysql_close ($dbverbindung);
    
    ?>


    Das sollte funktionieren. Ist aber nicht unbedingt sicher für den Einsatzt auf einer Page.
    Es müssten noch Fehlerbehandlung rein (z.b. bei der Table-auswahl) und auch das die(mysql_error()) ist nicht empfehlenswert.

    ... das $ergebnis ist ein mysql result, du kannst es nicht wie eine zahl behandeln. schau dir mal an wie ich es geschrieben habe.

    Gruß gotn

    edit: tippfehler entfernt

    Beitrag geaendert: 24.2.2007 13:23:44 von gotn
  4. Autor dieses Themas

    jensico-airlines

    jensico-airlines hat kostenlosen Webspace.

    Vielen Danke für deine Antwort. Jetzt funktioniert es.
  5. g**n

    Kein Problem, aber wie gesagt, ich würde es so nicht auf einer Website einsetzen.

    Gruß GotN
  6. Autor dieses Themas

    jensico-airlines

    jensico-airlines hat kostenlosen Webspace.

    Ich habe nun nochmal 2 Fragen:

    Und zwar würde ich gerne nicht nur einfach so die Spalten zusammen rechen. Sondern die Spalten sollte Zeiten sein. Beispiel:
    Name Spielzeit
    XS 00:30
    XD 02:14

    Als Ergebnis soll dann 02:44 stehen. Ist sowas möglich?
    Außerdem sollte darauf geachtet werden das nach 00:59 nicht 00:60 sondern 01:00 kommt.

    Und meine Zweite Frage ist:
    Ist es möglich das man die Anzahl der Spalten raus gibt. Beispiel ich habe in einer Tabelle die Mitglieder und würde nun gerne angezeigt bekommen wie viele Mitglieder ich habe.

    Mfg Jens
  7. Bei folgender Tabelle (ergebnisse):
    +---------+------------+------+-----+---------+-------+
    | Field   | Type       | Null | Key | Default | Extra |
    +---------+------------+------+-----+---------+-------+
    | name    | varchar(3) | YES  |     | NULL    |       | 
    | stunden | int(11)    | YES  |     | NULL    |       | 
    | minuten | int(11)    | YES  |     | NULL    |       | 
    +---------+------------+------+-----+---------+-------+

    Verwende folgendes Query + WHERE Klausel:
    SELECT (SUM(stunden)+FLOOR(SUM(minuten)/60) mod 24), (SUM(minuten) mod 60) FROM ergebnisse;

    Für deine 2. Frage:
    SELECT COUNT() FROM tabellenname ...

    Beitrag geaendert: 6.3.2007 17:36:40 von bladehunter
  8. Autor dieses Themas

    jensico-airlines

    jensico-airlines hat kostenlosen Webspace.

    Danke für die Hilfe. Ich werde die sagen ob es funktioniert hat.

    Mfg Jens
  9. d*d

    mit php auslesen und dann explode() geht auch ganz gut
  10. Autor dieses Themas

    jensico-airlines

    jensico-airlines hat kostenlosen Webspace.

    Hallo,

    ich habe es jetzt mal getestet, leider komme ich damit nicht so ganz klar. Ich bekomme kein Ergebnis raus, obwohl etwas in der Tabelle steht.

    Hier mal Quelltext: (Verbindung zur Datenbank habe ich raus genommen)
    <?php
    $dbverbindung = mysql_connect ($host, $user, $password);
    
    $abfrage = "SELECT (SUM(stunden)+FLOOR(SUM(minuten)/60) mod 24), (SUM(minuten) mod 60) FROM ergebnisse";
    $ergebnis = mysql_query($abfrage);
       {
       echo "$ergebnis";
       }
    
    ?>

    Kann mir jemand sagen was ich falsch mache? (Ich bin nicht so gut in php, da ich es auch noch nicht so lange mache, also sorry wenn es ein einfacher Fehler ist, aber ich würde mich trotzdem freuen wenn ihr mir die Losung nenne könntet.)

    Mfg Jens

    Beitrag geaendert: 13.3.2007 15:31:14 von jensico-airlines
  11. Autor dieses Themas

    jensico-airlines

    jensico-airlines hat kostenlosen Webspace.

    Kann mir keiner Helfen? Würde mich sehr freuen.

    Mfg Jens
  12. Mach mal ein mysql_error(); am Ende des PHP Bereichs.
    Dann sagt er dir die Fehlermeldung.

    Du musst natürlich die Spaltennamen anpassen ;)
  13. Autor dieses Themas

    jensico-airlines

    jensico-airlines hat kostenlosen Webspace.

    Das habe ich jetzt mal gemacht.

    Als Fehlermeldung kommt: Resource id #4


    <?php
    $host = "mysql.lima-city.de";
    $user = "";
    $password = "";
    $dbname = "";
    $tabelle ="ergebnisse";
    
    $dbverbindung = mysql_connect ($host, $user, $password);
    
    mysql_select_db($dbname);
    
    $abfrage = 'SELECT (SUM(stunden)+FLOOR(SUM(minuten)/60) mod 24), (SUM(minuten) mod 60) FROM ergebnisse';
    $ergebnis = mysql_query($abfrage) OR die(mysql_error()); 
    
    {
    echo $ergebnis;
    }
    
    
    
    mysql_close ($dbverbindung);
    
    ?>


    Ich weiß nur nicht was daran noch falsch sein soll.

    Mfg Jens
  14. Nicht mysql_close(); sondern mysql_error(); !

    Du kannst das Ergebnis aus $ergebnis nicht einfach so ausgeben!
    Du musst es Zeile für Zeile "fetch"en.

    Dafür hast du folgende Möglichkeiten:


    mysql_fetch_array &#8212; Liefert einen Datensatz als assoziatives Array, als numerisches Array oder beides
    mysql_fetch_assoc &#8212; Liefert einen Datensatz als assoziatives Array
    mysql_fetch_field &#8212; Liefert ein Objekt mit Feldinformationen aus einem Anfrageergebnis
    mysql_fetch_lengths &#8212; Liefert die Länge eines jeden Feldes in einem Ergebnis
    mysql_fetch_object &#8212; Liefert eine Ergebniszeile als Objekt
    mysql_fetch_row &#8212; Liefert einen Datensatz als indiziertes Array

    Quelle: http://www.php.net/manual/de/ref.mysql.php
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!