kostenloser Webspace werbefrei: lima-city


MySQL einträge zählen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    dueselps

    dueselps hat kostenlosen Webspace.

    Hallo zusammen,

    Ich stehe gerade richtig auf dem Schlauch :((

    Ich möchte alle MySQL Einträge in der Tabelle hans zählen, wo die Variable $x mit dem wert in der Spalte titel übereinstimmt. Und diese dann als Zahl ausgeben.

    Bin gerade übelst verwirrt, brauche nur kurz die Code zeile, blicke in dem Internet gewirre gernicht mehr durch :((
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Wie wärs mit
    SELECT COUNT(*) FROM tabelle WHERE bedingung
    ?

    Also in deinem Beispiel eher so:
    $title = mysql_real_escape_string($x); // was auch immer in $x steht
    $query = "SELECT COUNT(*) FROM hans WHERE title = '$title'";
    $result = mysql_query($query); // und jetzt noch die 1. Zeile auslesen
    Um mysqli oder PDO darfst du dich kümmern.

    Beitrag zuletzt geändert: 27.10.2013 19:17:40 von hackyourlife
  4. MySQL Einträge zählen

    z.B. so

    mysql_query("SELECT COUNT(*) AS anzahl FROM table_name WHERE titel ='".$x."'")
    $res = mysql_fetch_array($counter);
    $count = $res["anzahl"]; 
    print "<p>Anzahl: " . $count . "</p>\n");


    oder so

    mysql_query("SELECT * FROM table_name WHERE titel ='".$x."'")
    $count = mysql_num_rows($res);
    print "<p>Anzahl: " . $count . "</p>\n");


    ich glaub die erste Version ist performanter (schneller)
    aber bei der zweiten kann man anstatt * (= Alle Felder) auch nur ein Feld (z.B: id) einlesen

    PS: ... das table_name natürlich noch durch Deinen Tabellen-Name ersetzen
    oder auch als Variable
    ... FROM ".$my_table." WHERE ...



    EDIT ... oh, da war jemand schneller :)

    EDIT2 ... der Code ist Fehlerhaft .. richiger Code siehe hier weiter unten ... :)

    Wollte je auch eigentlich nur die 2 möglichen SELECT Abfragen zeigen ... :oO^^




    Beitrag zuletzt geändert: 27.10.2013 20:14:24 von webnfo
  5. Autor dieses Themas

    dueselps

    dueselps hat kostenlosen Webspace.

    irgendwie hat mir das beides nicht geholfen. da kommen immer fehler raus oder garnichts.

    webnfo variante 2:
    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\LP Webseite\scripts\lp.php on line 26

    webnfo variante 1:
    Notice: Undefined variable: counter in C:\xampp\htdocs\LP Webseite\scripts\lp.php on line 29

    Warning: mysql_fetch_array() expects parameter 1 to be resource, null given in C:\xampp\htdocs\LP Webseite\scripts\lp.php on line 29

    haclyourlife:
    kein fehler und keine zahl

    hab es aber jeztz so angepasst nach der reihenfolge von oben:
    //$res = mysql_query("SELECT * FROM videos WHERE lp ='".$betreff."'");
            //$video = mysql_num_rows($res);
    
            //mysql_query("SELECT COUNT(*) AS anzahl FROM videos WHERE lp ='".$betreff."'");
            //$res = mysql_fetch_array($counter);
            //$video = $res["anzahl"];
    
            $title = mysql_real_escape_string('$betreff'); // was auch immer in $x steht
            $query = ('SELECT COUNT(*) FROM videos WHERE lp = "$titel"');
            $video = mysql_query($query); // und jetzt noch die 1. Zeile auslesen
  6. ja ... hab da zwei ... drei Fehler .... sorry

    nach der Zeile mit mysql_query jeweils ein Strichpunkt
    das $res = mus vor die Zeile mit mysql_query
    und bei Variante 2 fehlt die Zeile mit mysql_query ganz.

    $query = "SELECT COUNT(*) AS anzahl FROM table_name WHERE titel ='".$x."'"; 
    $res = mysql_query($query); 
    $data = mysql_fetch_array($res);
    $count = $data["anzahl"];
    print "<p>Anzahl: " . $count . "</p>\n");


    $query = "SELECT * FROM table_name WHERE titel ='".$x."'"; 
    $res = mysql_query($query); 
    $data  = mysql_fetch_array($res);
    $count = mysql_num_rows($data);
    print "<p>Anzahl: " . $count . "</p>\n");


    so ... jetzt sollte beides gehen ... :xD
  7. Autor dieses Themas

    dueselps

    dueselps hat kostenlosen Webspace.

    Fehlermeldung: Warning:
    mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\LP Webseite\scripts\lp.php on line 30
    bei:
    $query = mysql_query('SELECT COUNT(*) AS anzahl FROM videos WHERE lp ='.$betreff);
            $res = mysql_query($query);
            $data = mysql_fetch_array($res);
            $video = $data["anzahl"];


    und der gleiche fehler auch bei:
    $query = 'SELECT COUNT(*) AS anzahl FROM videos WHERE lp ="'.$betreff.'"';
            $res = mysql_query($query);
            $data = mysql_fetch_array($res);
            $video = $data["anzahl"];
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    dueselps schrieb:
    haclyourlife:
    kein fehler und keine zahl
    Etwas Mitdenken ist gewünscht … wenn du das Ergebnis nicht ausliest und ausgiebst wird es wohl auch nicht angezeigt werden.

    @webnfo:

    wenn dich nur die Anzahl interessiert, solltest du niemals die Daten abfragen, sondern auch wirklich nur die Anzahl!

    Außerdem ist dein Code nicht sicher, du solltest jegliche Parameter, die irgendwie in der Query landen vorher richtig escapen. Zum Ende noch:
    $s = "Text mit $var als Variablen";
    // ist besser als 
    $s = "Text mit " . $var . " als Variablen";
    Vorallem auch weil es leichter lesbar und weniger fehleranfällig ist.
  9. Autor dieses Themas

    dueselps

    dueselps hat kostenlosen Webspace.

    ist $resault nicht das ergebniss?

    hab es auch nochmal so probier, kommt aber auch der fehler raus:
    $title = mysql_real_escape_string('$betreff'); // was auch immer in $x steht
            $query = ('SELECT COUNT(*) FROM videos WHERE lp = "$titel"');
            $res = mysql_query($query); // und jetzt noch die 1. Zeile auslesen
            $data = mysql_num_rows($res);
            $video = $data["anzahl"];


    Nachtrag habe es jetzt auch das gekürtzt, es kommt keine fehlermeldung:
    $query = ('SELECT COUNT(*) FROM videos WHERE lp = $betreff');
            $res = mysql_query($query);
            $video = $res["anzahl"];


    Beitrag zuletzt geändert: 27.10.2013 21:12:38 von dueselps
  10. dueselps schrieb:
    Fehlermeldung: Warning:
    mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\LP Webseite\scripts\lp.php on line 30


    sorry

    das ist natürlich Quatsch

    $query = mysql_query('SELECT COUNT(*) AS anzahl FROM videos WHERE lp ='.$betreff);
    $res = mysql_query($query);


    so dann

    $query = "SELECT COUNT(*) AS anzahl FROM videos WHERE lp='$betreff'";
    $res = mysql_query($query);
    $data = mysql_fetch_array($res);
    $video = $data["anzahl"]; // ---- oder = $data[0]; ----
    
    print "<p>Anzahl: $video</p>\n");


    habs oben auch geändert.

    ABER es geht ja hier hauptsächlich um die MySQL Abfrage:
    SELECT COUNT(*)

    und alles andere sollte man selber hinbekommen ... ob jetzt mysql_fetch_array, mysql_fetch_row, etc.


    EDIT: @hackyourlife hats noch besser mit mysql_real_escape_string()


    Beitrag zuletzt geändert: 27.10.2013 21:32:55 von webnfo
  11. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    @dueselps: Das ist immer noch falsch…

    Mein letzter Codeschnipsel für den Thread:
    $x = 'dein Titel'; // du meintest doch »was in der Variablen $x steht«
    $title = mysql_real_escape_string($x); // was auch immer in $x steht
    $query = "SELECT COUNT(*) FROM hans WHERE title = '$title'";
    $result = mysql_query($query);     // Abfrage ausführen
    $row = mysql_fetch_array($result); // Daten abholen
    $count = $row[0];                  // Spalte auslesen
    mysql_free_result($result);        // Speicher freigeben
    echo("Anzahl: $count");            // Anzahl auf dem Bildschirm bewundern


    Beitrag zuletzt geändert: 27.10.2013 21:30:34 von hackyourlife
  12. Was macht ihr das dem armen Jungen so schwierieg?
    Easy going.

    <?
    $count= mysql_num_rows(mysql_query("SELECT * FROM `table`"));
    echo $count;
    ?>



    Greez.
  13. keytsolution schrieb:
    Was macht ihr das dem armen Jungen so schwierieg?
    Easy going.

    <?
    $count= mysql_num_rows(mysql_query("SELECT * FROM `table`"));
    echo $count;
    ?>



    Greez.


    Wie bereits erwähnt will er nur die Anzahl, nicht die ganzen Daten von mysql auslesen lassen und nach php schicken lassen. Das ist in der Praxis ein himmelweiter unterschied. Der letzte Schnipsel von hackyourlife ist doch einwandfrei und ist praxistauglich
  14. Autor dieses Themas

    dueselps

    dueselps hat kostenlosen Webspace.

    Es funktioniert aber immer noch nicht, es kommt immer der Fehler:

    mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\LP Webseite\scripts\lp.php on line 30


    Was drückt der Fehler denn aus? oder hat irgendwer noch eine Idee?
  15. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    dueselps schrieb:
    Was drückt der Fehler denn aus?
    Der Fehler sagt, dass etwas bei der Abfrage fehlgeschlagen hat. Wenn du wissen willst, was die Ursache ist, musst du vor dem
    mysql_fetch_array()
    , aber nach dem
    mysql_query()
    folgende Zeile infügen:
    echo mysql_error();

    Meine Vermutung: du hast den Tabellennamen in der Abfrage nicht angepasst :-D

    Tipp: verwend den Code von keytsolution nicht, da dieser langsamer ist und mehr Ressourcen benötigt.
  16. 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!