Seite 4 von 6 ErsteErste 123456 LetzteLetzte
Ergebnis 61 bis 80 von 104

Thema: Der 'große' PHP-Thread

  1. #61

    War mir schon klar, dass hier nicht alle PHP-Probs rein sollen, aber kleine Fragen nach einer Funktion z.B. wäre hier denke ich besser als in einem neuen Thread aufgehoben.

    @dadie:
    Willst du die Gesamtgröße des Verzeichnisses? Dafür kannst du leider nicht einfach filesize() verwenden, sondern musst dir eine Funktion bauen (bzw. von der PHP-Homepage klauen):
    PHP-Code:
    <?php
    function dirsize($dirName '.') {
       
    $dir  opendir($dirName);
       
    $size 0;

       while(
    $file readdir($dir)) {
           if (
    $file != '.' && $file != '..') {
               if (
    is_dir($file)) {
                   
    $size += dirsize($dirName '/' $file);
               } else {
                   
    $size += filesize($dirName '/' $file);
               }
           }
       }
       
    closedir($dir);
       return 
    $size;
    }
    ?>
    (Ich musste das Skript ein bisschen verändern, weil der Typ mit Objekten gearbeitet hat)
    Sollte so funktionieren

  2. #62
    thx euch beiden

    Es klappt 1A und für die nachwelt mein Code

    PHP-Code:
     function dirsize($dirName
                {
                    
    $verzeichniss        opendir($dirName);
                    
    $verzeichnissgroesse 0;

                    while(
    $verzeich_file readdir($verzeichniss)) {
                        if (
    $verzeich_file != '.' && $verzeich_file != '..') {
                   

             if (
    is_dir($verzeich_file)) {
                                
    $verzeichnissgroesse += dirsize($dirName '/' $verzeich_file);
                            } else {
                                
    $verzeichnissgroesse += filesize($dirName '/' $verzeich_file);
                            }
                                     }
                                        }
                    
    closedir($verzeichniss);


                     if(
    $verzeichnissgroesse<1000)
                     {
                         return 
    number_format($verzeichnissgroesse0","".")." Bytes";
                     }
                     elseif(
    $verzeichnissgroesse<1000000)
                     {
                         return 
    number_format($verzeichnissgroesse/10241","".")." kB";
                     }
                     else
                     {
                         return 
    number_format($verzeichnissgroesse/10485762","".")." MB";
                     }
                 


                } 
    Echt cool das ich seid 2 Tagen die Funktion von "function" kappiert habe

  3. #63
    function ist keine Funktion sondern ein Sprachkonstrukt so wie if...else (oder sehe ich das falsch?)

    @Dingsi: Mist, hab wohl zu lange geschrieben. Mit "PHP-Homepage" war diese Seite gemeint (erster Kommentar).

  4. #64
    Huch, habe heute morgen gedacht "was für ein cooler Thread", dann habe ich gesehen, dass ich schon vor fast 2 Jahren hier reingepostet habe xD.

    Naja ich habe mal wieder ein anliegen:
    (Vorneweg @Chocwise: ich kann jetzt html, und css auch, bei PHP & mysql bin ich in den Anfängen)
    Nun zur Frage;
    Wie kann ich in einer Tabelle in einer Datenbank in einer Spalte (also Vertikal) alle Werte zusammenzählen lassen? Der Wert hat nämlich dne namen Dwonloads und ich möchte die Gesamtdownloadzahl ermitteln.
    Am besten wäre dies in einer Funktion, da ich jenes genau 10 mal hintereinander brauche, bei 10 Downloadarten. Die Zehn verschiedenen arten haben in der Downloadstabelle auch die IDs 1-10, die sie immer zugeteilt bekommen.
    Also es soll dann halt "WHERE `id` = '1' " z.b. heißen. Dass alle downloadzahlen der Downloadart "1" zusammengezählt werden. Hoffe da steigt einer durch, ich bin grade selber etwas konfus ^^°.

    Danke im Voraus

  5. #65
    Zitat Zitat von Rpg_Goldenboy
    ...
    Nun zur Frage;
    Wie kann ich in einer Tabelle in einer Datenbank in einer Spalte (also Vertikal) alle Werte zusammenzählen lassen? Der Wert hat nämlich dne namen Dwonloads und ich möchte die Gesamtdownloadzahl ermitteln.
    Am besten wäre dies in einer Funktion, da ich jenes genau 10 mal hintereinander brauche, bei 10 Downloadarten. Die Zehn verschiedenen arten haben in der Downloadstabelle auch die IDs 1-10, die sie immer zugeteilt bekommen.
    Also es soll dann halt "WHERE `id` = '1' " z.b. heißen. Dass alle downloadzahlen der Downloadart "1" zusammengezählt werden. Hoffe da steigt einer durch, ich bin grade selber etwas konfus ^^°.

    Danke im Voraus
    Hmh... an einer (My)SQL-Funktion die sowas schafft wäre ich auch interessiert. ich weiß wie man Werte eines Array's addiert, aber bei der Addition von Feldwerten einer Datenbank, wüsst ich nur die while-Methode.

  6. #66
    Also ich würd das jetzt ganz spontan so machen ...

    PHP-Code:
    $gesamtanzahl 0;
    $select mysql_query ('SELECT downloads FROM download WHERE id = "1"');
    while (
    $bla mysql_fetch_array ($select))
    {
       
    $gesamtanzahl $gesamtanzahl_1 $bla[0];

    So dass so lange der Wert der nächsten Spalte zur $gesamtanzahl_1 dazuaddiert wird, bis es halt keine Spalten mehr gibt ... müsste so ja eigentlich funktionieren. Oder war was anderes gemeint ?

    In einer Funktion dann
    PHP-Code:
    function count ($id)
    {
       
    $gesamtanzahl 0;
       
    $select mysql_query ('SELECT downloads FROM download WHERE id = "'.$id.'"');
       while (
    $bla mysql_fetch_array ($select))
       {
          
    $gesamtanzahl $gesamtanzahl $bla[0];
       }

    Für die übernehme ich aber keine Verantwortung, mit Funktionen kenn ich mich eigentlich kein Stück aus ...

    [edit] Oder war jetzt eine spezielle, vordefinierte PHP-Funktion gemeint? Wenn ja, hätte ich keine Ahnung ..

  7. #67
    Hab ich dir das nicht schon irgendwann mal im Chat erklärt? Oo°
    PHP-Code:
    $result mysql_query("SELECT SUM(`Downloads`) as `Download_Count` FROM Downloads WHERE `id` = 1");
    $row mysql_fetch_array($result);
    echo 
    $row['Download_Count']; 
    Sollte eigentlich alle Downloads zusammen zählen.

    das where vergessen.

    Geändert von Dingsi (22.01.2005 um 17:54 Uhr)

  8. #68
    Ich will auch, ich will auch ^^
    PHP-Code:
    $mysql_query mysql_query("SELECT `Download_Art`,
    COUNT (`Download_Art`)
    FROM Tabellenname
    GROUP BY `Download_Art`
    ODER BY `Download_Art` ASC"
    );
    while(
    $Auswertung mysql_fetch_array($mysql_query))
    {
    print_r($Auswertung);

    Dieses Skript sollte nach den Verschiedenen Download-Arten in der Tabelle ausschau halten und zählen wie oft jede einzelne Vorkommt.

    Es ist die mir am schnellsten Bekannte Query die alle Daten auf einen schlag auswertet. Denn die von Dingsi gepostete Query müsste bei ändern der Download Art eine neue Anfrage an die Datenbank stellen. Meine müsst nur mit mysql_fetch_array den nächsten Datensatz holen.

    edit:
    Ich glaube mein Skript schießt ein wenig am Ziel vorbei, da es nur zählt wie oft jede Download Variante vorkommt, und nicht welchen Wert der Inhalt besitzt :-/

    Deswegen hier mal ne andere Version
    PHP-Code:
    $mysql_query mysql_query("SELECT `Download_Art`,
    SUM (`Download_Art`) AS Download_Anzahl
    FROM Tabellenname
    GROUP BY `Download_Art`
    ODER BY `Download_Art` ASC"
    );
    while(
    $Auswertung mysql_fetch_array($mysql_query))
    {
    print_r($Auswertung);


    Geändert von Latency (22.01.2005 um 19:03 Uhr)

  9. #69
    Zitat Zitat von Dingsi
    Hab ich dir das nicht schon irgendwann mal im Chat erklärt? Oo°
    PHP-Code:
    $result mysql_query("SELECT SUM(`Downloads`) as `Download_Count` FROM Downloads WHERE `id` = 1");
    $row mysql_fetch_array($result);
    echo 
    $row['Download_Count']; 
    Sollte eigentlich alle Downloads zusammen zählen.

    das where vergessen.
    Interessant. O_o
    *notier*
    Poste solche Sachen hier ins Forum statt sie für Chats zu vergeuden.

  10. #70
    *hust* *röchel*

    Ich will ja nicht wie ein Pinngel Klingen aber man sollte niemald `Spalte` = 'a' nutzen !
    `Spalte` LIKE 'a' ist besser das Gleichzeichen kann zu Derben Problemen füren
    ich spreche da aus erfahrung !

  11. #71
    Zitat Zitat von dadie
    *hust* *röchel*

    Ich will ja nicht wie ein Pinngel Klingen aber man sollte niemald `Spalte` = 'a' nutzen !
    `Spalte` LIKE 'a' ist besser das Gleichzeichen kann zu Derben Problemen füren
    ich spreche da aus erfahrung !
    Que?
    Sonst noch alles frisch?
    LIKE frisst mehr Performace als =, da LIKE eben das tut was es bedeutet: like = ähnlich.
    Like sucht also Werte die 'a' ähnlich sind. Gut... da die % fehlen, sucht LIKE AFAIK tatsächlich nur Felder in denen Tatsächlich nur das 'a' steht, aber logischerweise frisst LIKE mehr Performance als = weil es eben nach Ähnlichkeiten sucht und nicht einfach nur das rauspickt das dem Suchstring enspricht.
    Also erkläre ich Dadies Behauptung einfach mal als absoluten Quatsch, bis er mir Fakten Präsentiert die mich vom Gegenteil überzeugen.

  12. #72
    Zitat Zitat von Chocwise
    Also erkläre ich Dadies Behauptung einfach mal als absoluten Quatsch, bis er mir Fakten Präsentiert die mich vom Gegenteil überzeugen.
    Er bezieht sich wahrscheinlich darauf, daß man bei = eben auch aufpassen muß, daß man auch exakt das richtige übergibt.

  13. #73
    Zitat Zitat von Jesus_666
    Er bezieht sich wahrscheinlich darauf, daß man bei = eben auch aufpassen muß, daß man auch exakt das richtige übergibt.
    Das würde auch erklären weshalb gerade er bereits schlechte Erfahrungen mit der =-Variante gemacht hat.

    Okok. Der war fies. XD

  14. #74
    Zitat Zitat von Chocwise
    Das würde auch erklären weshalb gerade er bereits schlechte Erfahrungen mit der =-Variante gemacht hat.

    Okok. Der war fies. XD

    .................. du bist gemein

    Geändert von dadie (22.01.2005 um 22:26 Uhr)

  15. #75
    Öhm joa, also das von Dingsi geht schonmal nicht^^.
    Er zeigt mir da nämlich einfach null an und wenn ich mysql_num_rows mache, dann sagt er, dass nur ein Eintrag gefunden wurde, aber es sind 2 Einträge ;_;.

    Und bei Latency wollte ich nochmal fragen, was der Code von dir jetzt genau macht und wofür die einzelnen dinger da sind, also im mysql_query alles, was GROß geschrieben wurde^^.

  16. #76
    Ich verweiße hier mal am besten an die offizielle mySQL-Documentiation zum Thema COUNT

  17. #77
    joa hmm.....
    irgendwie habe ich das gefühl, das ist nicht das, was ich brauche, ich kann mich momentan auch überhaupt nicht konzentrieren, ich mache nochmal ein beispiel:
    so sieht vereinfacht die Tabelle aus:
    PHP-Code:
    +----+-----+---------+
    |
    nameart |downloads|
    +----+-----+---------+
    |
    bla |1    |1337     |
    +----+-----+---------+
    |
    ble |2    |7777     |
    +----+-----+---------+
    |
    blo |1    |815      |
    +----+-----+---------+
    |
    bli |2    |815      |
    +----+-----+---------+ 
    ich möchte jetzt, dass bla und blo / ble und bli zusammengezählt werden.

    Bei dem link, den du mir gegeben hast, Latency, wird ja nur gezählt, wieviel Tiere ein besitzer hat und das ist einfach, da jedes Tier ein neuer Eintrag ist .

    Edit: *autsch*
    hat sich erledigt, ich habe das von dingsi kopiert und vergessen WHERE `id` in WHERE `art` umzutauschen "

    Geändert von rgb (23.01.2005 um 16:27 Uhr)

  18. #78
    Öh joa hi!

    Jetzt ist ein Doppelpost entstanden, aber kann ich ja nix dafür, wenn keiner mehr wat postet
    So, ich wollte einfach mal fragen, wo hier der Fehler versteckt ist, mein größtes Problem ist nämlich noch, dass immer irgendwelche dummen Fehler passieren (siehe post vor mir).
    PHP-Code:
    <?php
         
    include "global.php";
         
    $name $_POST['name'];
         
    $content $_POST['content'];
         
    $homepage $_POST['homepage'];
         
    $email $_POST['email'];
         
    $icq $_POST['icq'];
         
    $timestamp time();
         
    $datum date("d.m.Y",$timestamp);
         
    $sql "INSERT INTO `rdn_guestbook` (`name`, `content`, `homepage`, `email`, `icq`, `date`, `active`) VALUE ('$name', '$content', '$homepage', '$email', 'icq', '$datum', '1')";
         
    $result mysql_query($sql);
         echo 
    mysql_error();
         echo 
    "<br>";
         echo 
    $sql;
    ?>
    Der mysql_error erzählt mir folgendes:
    PHP-Code:
    You have an error in your SQL syntax near 'VALUE ('11111111111', '1111111111111', '1111111111111111', '11111111111', 'icq',' at line 1
    INSERT INTO 
    `rdn_guestbook` (`name`, `content`, `homepage`, `email`, `icq`, `date`, `active`) VALUE ('11111111111''1111111111111''1111111111111111''11111111111''icq''24.01.2005''1'
    danke fürs suchen und hoffentlich finden

  19. #79
    Es fehlt dir, wenn ich das richtig sehe, ein S bei VALUES

  20. #80
    So, ist zwar mehr SQL als PHP, aber egal.
    Wo liegt der Fehler in folgendem SQL-String (ist wahrscheinlich was triviales, aber ich bin nicht so gut in MySql)?
    PHP-Code:
    $query "UPDATE pages SET (`inhalt`=`jkdlg ein<br />Test`, `name`=`dasyg`) WHERE `id`=`3`"

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •