Honk: Datensätze zählen und in Variable schreiben

Tach auch,

könnte mal kurz Hilfe gebrauchen.
Ich möchte alle meine Datensätze zählen, die in der Spalte Rubrik die Zahl 12 drin stehen haben und diesen Wert dann ausgeben. Wie bekomme ich diesen Wert in eine Variable geschrieben? Bisher habe ich es so versucht:

$result=mysql_query("SELECT * FROM meinetabelle WHERE rubrik="12" ");
echo"$result";

geht nicht!

thx

Honk

  1. Mahlzeit Honk,

    $result=mysql_query("SELECT * FROM meinetabelle WHERE rubrik="12" ");
    echo"$result";

    geht nicht!

    1. ist "geht nicht" keine hilfreiche Fehlerbeschreibung und

    2. ist das kein Wunder - Quizfrage: welchen Rückgabewert liefert mysql_query()?

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Hi EKKi,

      ich habe nochmal rumprobiert:

      $query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
      $result = mysql_query($query) or die("Anfrage fehlgeschlagen");
      $line = mysql_fetch_array($result, MYSQL_ASSOC);
      foreach ($line as $col_value)
      {
      $anzahl = $col_value;
      }
      echo"$anzahl";

      Da erzählt er mir jetzt "Anfrage fehlgeschlagen".

      Wenn ich die Select-Anweisung in der Datenbank ausführe funzt es...

      noch ne Idee?

      1. Hello,

        $query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");

        Da erzählt er mir jetzt "Anfrage fehlgeschlagen".

        Welchen Spaltentyp hat rubrik?
        Ist das eine numerischer oder ein String-Typ?

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
        Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. echo $begrüßung;

          » $query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
          » Da erzählt er mir jetzt "Anfrage fehlgeschlagen".

          Welchen Spaltentyp hat rubrik?
          Ist das eine numerischer oder ein String-Typ?

          Das ist egal, MySQL typumwandelt problemlos zwischen String- und Zahlentypen. Du hast im Zitat eine Zeile unterschlagen. Es wird mit dem Ergebnis von mysql_query() ein weiteres Mal mysql_query() aufgerufen, was nicht sinnvoll ist und zum Fehler führt.

          echo "$verabschiedung $name";

          1. Hello,

            » $query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");
            » Da erzählt er mir jetzt "Anfrage fehlgeschlagen".

            Welchen Spaltentyp hat rubrik?
            Ist das eine numerischer oder ein String-Typ?

            Das ist egal, MySQL typumwandelt problemlos zwischen String- und Zahlentypen.

            Das sehe ich anders!
            Gemeint war auch rubrik1...
            Wenn die Spalte einen Stringtyp hat, dann kann ich nicht mit 12 vergleichen, sondern muss mit '12' vergleichen. Oder wurde das inzwischen geändert?

            Darüberhinaus sollte der OP die Auswertung des MySQL-Errors verbessern, oder?

            http://de3.php.net/manual/en/function.mysql-error.php

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
            Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. echo $begrüßung;

              » Das ist egal, MySQL typumwandelt problemlos zwischen String- und Zahlentypen.
              Das sehe ich anders!

              Das ist MySQL aber egal, wie du das siehst.

              Wenn die Spalte einen Stringtyp hat, dann kann ich nicht mit 12 vergleichen, sondern muss mit '12' vergleichen. Oder wurde das inzwischen geändert?

              Es ist jedenfalls problemlos möglich, Zahlen und Strings zu vergleichen.

              Darüberhinaus sollte der OP die Auswertung des MySQL-Errors verbessern, oder?

              Ja schon, aber das bringt ihn in diesem Fall nicht viel weiter. Es wird einen Syntaxfehler geben à la "... near 'Ressource id #1'". Er sollte sich eher ein grundlegendes Verständnis zulegen, wie eine MySQL-Abfrage gemacht wird, welche Funktion was zurückliefert und wie die Funktionen zusammenspielen.

              echo "$verabschiedung $name";

              1. Hello,

                Es ist jedenfalls problemlos möglich, Zahlen und Strings zu vergleichen.

                ... where numerische\_spalte = '123'

                ist selbstverständlich möglich. Ja nee is klar, Murat :-P

                Aber nicht anders herum

                ... where string\_typ\_spalte = 123

                Dass Du das eigentlich weißt, ist mir klar. Wieso diese Verwirrung?

                #----
                Ist was passiert?

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

                --
                Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
                1. echo $begrüßung;

                  » Es ist jedenfalls problemlos möglich, Zahlen und Strings zu vergleichen.
                      ... where numerische\_spalte = '123'
                  ist selbstverständlich möglich. Ja nee is klar, Murat :-P
                  Aber nicht anders herum
                      ... where string\_typ\_spalte = 123
                  Dass Du das eigentlich weißt, ist mir klar. Wieso diese Verwirrung?

                  Ich habe es gestern probiert und eben nochmal. Beide Varianten sind problemlos möglich. Warum sollte es einen Unterschied geben ob der String links und die Zahl rechts oder umgekehrt steht?

                  echo "$verabschiedung $name";

                  1. Hello,

                    Ich habe es gestern probiert und eben nochmal. Beide Varianten sind problemlos möglich. Warum sollte es einen Unterschied geben ob der String links und die Zahl rechts oder umgekehrt steht?

                    Weil es mMn früher immer zu einer Fehlermeldung geführt hat.

                    Ok, ist wohl nicht mehr so. Danke für die Aufklärung.

                    Ist also nur noch relevant, Strings, die Sonderzeichen (Leerzeichen) bezüglich der Schnittstelle enthalten zu binden oder solche in Häkchen zu setzen, die Spaltennamen entsprechen ...

                    [ Also für die Praxis doch besser alle :-P ]

                    Liebe Grüße aus dem schönen Oberharz

                    Tom vom Berg

                    --
                    Nur selber lernen macht schlau
                    http://bergpost.annerschbarrich.de
                    1. Hi,

                      Ist also nur noch relevant, Strings, die Sonderzeichen (Leerzeichen) bezüglich der Schnittstelle enthalten zu binden oder solche in Häkchen zu setzen, die Spaltennamen entsprechen ...

                      Quatsch.
                      Stringwerte - die nicht *zufällig* auch gültige Zahlwerte darstellen -gehören immer als solche ausgezeichnet, egal ob sie Leerzeichen enthalten oder nicht.

                      MfG ChrisB

                      --
                      Light travels faster than sound - that's why most people appear bright until you hear them speak.
      2. Mahlzeit Honk,

        $query=mysql_query("SELECT COUNT (*) FROM meinetabelle WHERE rubrik1=12 ");

        Vorhin schriebst Du noch "WHERE rubrik="12"" ... was jetzt?

        $result = mysql_query($query) or die("Anfrage fehlgeschlagen");

        Zitat 1282

        $line = mysql_fetch_array($result, MYSQL_ASSOC);
        foreach ($line as $col_value)
        {
        $anzahl = $col_value;
        }

        Wieso so kompliziert? Wenn Du für "COUNT(*)" einen sinnvollen Aliasnamen vergeben würdest, könntest Du direkt auf diesen zugreifen.

        echo"$anzahl";

        Wieso schreibst Du eine einfache Variable in einen String?

        Da erzählt er mir jetzt "Anfrage fehlgeschlagen".

        Wer ist "er"? PHP? Die Datenbank (nebenbei: welche?)?

        Ich wette, in der Fehlermeldung steht noch mehr - wieso vorenthältst Du Deinen Lesern (und potentiellen Helfern) wichtige Informationen?

        Wenn ich die Select-Anweisung in der Datenbank ausführe funzt es...

        "Funzt" ist - genauso wie "funzt net" - keine hilfreiche Problembeschreibung ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|