=zählenwenn()

  • PHP

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • =zählenwenn()

    Hallo,

    ihr kennt ja sicher alle Excel. Da gibt es eine Option ZÄHLENWENN(EREIGNIS;BEREICH). Gibt es das in PHP auch?
    Ich möchte nämlich in einer Datenbank alle Ereignisse zählen, die eine bestimmte Eigenschaft haben.

    ew_h2002
  • ich würds so losen:

    $SQL=mysql_query("SQL QUERY MIT WHERE ANGABE"); // also where feld1="true" ruft auch alle einträge auf wo feld1 = true ist..
    $count = mysql_num_rows($SQL);

    $count ist dann die zahl, der mysql reihen die rausgekommen sind ..

    also wenn ich dich richtig verstanden hab :)
  • Hallo,

    das ist super cool!
    Danke!

    Also es geht um ein Gästebuch bei der Angelegenheit.
    Ich möchte eine Schleife nutzen, die so oft abfragt wie Einträge vorhanden sind (das geht ja auch einfach). Aber angezeigt werden sollen nur bestimmte, freigegebene, Einträge. Es sollen pro Seite immer 25 Beiträge erscheinen. Natürlich kann ich da nicht die 25 Datenbankeinträge nehmen, sondern muss 25 freigegebene Datenbankeinträge nehmen.

    Die Datenbank sieht so aus:

    Quellcode

    1. 0<>1121002111<>Bla, Bla Bla<>usw
    2. 1<>118511325<>Bla, Bla Bla<>usw
    3. ...

    Dabei heißt die 0 vorne, der Beitrag ist nicht freigegeben, wird also nicht angezeigt und darf also für die 25 Stück nicht mitzählen.
    Der zweite Beitrag hat eine 1 als erstes - ist also freigegeben und zählt.

    Was ich brauche ist nur der Schnipsel, der sozusagen zählt, wenn erste-option-gleich-1.
    DANKE!

    ew_h2002
  • hier mal was auf die schnelle ... solltest damit was anfangen koennen!! ^^

    ONLINEDEMO: h**p://mexxem.me.funpic.de/FSB/zaehlenwenn/zaehlenwenn.php
    h**p://mexxem.me.funpic.de/FSB/zaehlenwenn/data.db

    PHP-Quellcode

    1. <HTML>
    2. <HEAD>
    3. <title>zaehlen wenn ...</title>
    4. </HEAD>
    5. <BODY>
    6. <?php
    7. import_request_variables('G', '_');
    8. $page = (isset($_page)) ? $_page : 1;
    9. $data = 'data.db'; // datendatei
    10. $rpp = 5; // zeilen pro seite
    11. $counter = 1; // hilfsvariable
    12. $LF = "\r\n";
    13. // datendatei vorhanden?
    14. if (file_exists($data)) {
    15. $dataarray = file($data); // einlesen der datendatei in ein array
    16. //echo '<pre>$dataarray ==> '; print_r($dataarray); echo '</pre>';
    17. // durchlaufen des arrays und datenreihen in ein neues array aussortieren
    18. while (list($key, $value) = each($dataarray)) {
    19. $linearray = split('<>', $value);
    20. if ($linearray[0] == 1) {
    21. $dataarraynew[$counter]['date'] = (isset($linearray[1])) ? trim($linearray[1]) : 'kein datum';
    22. $dataarraynew[$counter]['text'] = (isset($linearray[2])) ? trim($linearray[2]) : 'kein text';
    23. $dataarraynew[$counter]['addon'] = (isset($linearray[3])) ? trim($linearray[3]) : 'kein zusatztext';
    24. $counter += 1;
    25. } // END if
    26. } // END while
    27. unset($dataarray);
    28. $counter = 1;
    29. //echo '<pre>$dataarraynew ==> '; print_r($dataarraynew); echo '</pre>';
    30. // die gewuenschten daten ausgeben
    31. reset($dataarraynew);
    32. $start = $rpp*$page-$rpp+1;
    33. $end = $rpp*$page;
    34. $sum = count($dataarraynew);
    35. $prev = ($page-1 != 0) ? '<a href="?page='.($page-1).'">&lt;&lt;</a>' : '&nbsp;';
    36. $next = (($page+1) <= ceil($sum/$rpp)) ? '<a href="?page='.($page+1).'">&gt;&gt;</a>' : '&nbsp;';
    37. echo ' <table style="border: 1px solid;">'.$LF;
    38. echo ' <tr>'.$LF;
    39. echo ' <td colspan="3" style="text-align: center;">datendatei eintraege</td>'.$LF;
    40. echo ' </tr>'.$LF;
    41. echo ' <tr>'.$LF;
    42. echo ' <td style="font-weight: bold; width: 100px;">datum</td><td style="font-weight: bold; width: 200px;">text</td><td style="font-weight: bold; width: 200px;">addOn</td>'.$LF;
    43. echo ' </tr>'.$LF;
    44. for ($i = $start; $i <= $end; $i++) {
    45. echo ' <tr>'.$LF;
    46. if (isset($dataarraynew[$i])) {
    47. echo ' <td>'.$dataarraynew[$i]['date'].'</td><td>'.$dataarraynew[$i]['text'].'</td><td>'.$dataarraynew[$i]['addon'].'</td>'.$LF;
    48. } else {
    49. echo ' <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>'.$LF;
    50. } // END if
    51. echo ' </tr>'.$LF;
    52. } // END for
    53. echo ' <tr>'.$LF;
    54. echo ' <td style="text-align: left;">'.$prev.'</td><td style="text-align: center;">'.$start.'-'.$end.'/'.$sum.'</td><td style="text-align: right;">'.$next.'</td>'.$LF;
    55. echo ' </tr>'.$LF;
    56. echo ' </table>'.$LF;
    57. } else {
    58. echo ' <h3>!!! datendatei <u>'.$data.'</u> nicht vorhanden !!!</h3>'.$LF;
    59. } // END ifelse
    60. ?>
    61. </BODY>
    62. </HTML>
    Alles anzeigen


    falls der integer eintrag ( 0<>1121002111<>Bla, Bla Bla<>usw ) wirklich ein datum sein sollte, dann koennte man die datendatei auch danach sortieren!
    jetzt werden die datendatei-eintraege der reihe nach von oben, wenn an erster stelle eine 1 steht, ausgegeben!!

    ceeyaa.mex