dennis m: Datensatz Abfrage zählen

Liebe Mitglieder,
Also ich möchte auf meiner Website angeben, wie oft der ausgegebene Datensatz bereits abgefragt wurde, zum Beispiel: Dieser Datensatz wurde bereits 412 Mal angeschaut!!!
Wie kann ich das am einfachsten lösen?
Vg, Dennis

  1. Hi,

    Also ich möchte auf meiner Website angeben, wie oft der ausgegebene Datensatz bereits abgefragt wurde, zum Beispiel: Dieser Datensatz wurde bereits 412 Mal angeschaut!!!
    Wie kann ich das am einfachsten lösen?

    Eine zusaetzliche Zaehler-Spalte am Datensatz unterbringen, und nach jedem Auslesen per Update um eins Hochzaehlen.

    MfG ChrisB

    1. Eine zusaetzliche Zaehler-Spalte am Datensatz unterbringen, und nach jedem Auslesen per Update um eins Hochzaehlen.

      Also Eine Spalte, von mir aus Visits (VARCHAR 255) und beim Aufruf den Datensatz so aktualisieren, das im Visits-Feld die zahl eins hochspringt! Ok, und wie geht das? mit dem aktualisieren das es eines hochgeht?

      1. echo $begrüßung;

        Also Eine Spalte, von mir aus Visits (VARCHAR 255) und beim Aufruf den Datensatz so aktualisieren, das im Visits-Feld die zahl eins hochspringt! Ok, und wie geht das? mit dem aktualisieren das es eines hochgeht?

        So wie man das üblicherweise macht. Man nimmt den alten Wert, erhöht ihn um eins und legt das Ergebnis wieder am selben Platz ab.
        In SQL: UPDATE tabelle SET spalte = spalte + 1 WHERE id = ...

        echo "$verabschiedung $name";

        1. So wie man das üblicherweise macht. Man nimmt den alten Wert, erhöht ihn um eins und legt das Ergebnis wieder am selben Platz ab.
          In SQL: UPDATE tabelle SET spalte = spalte + 1 WHERE id = ...

          Alos hab jetzt folgende gemacht:
          MSQL Spalte: VISITS (INT)
          und meine Abfrage:

          SELECT ID, VISITS (ID=Primärschlüssel)
          FROM rt (rt=Tabellenname)
          WHERE ID = colname (holt die ID aus dem URL-Parameter, sodass nur die entsprecheden Angezeigt werden und nicht alle!)

          Wenn ich jetzt bei Dreamweaver das von dir oben genannte:

          entweder UPDATE rt INT VISITS = VISITS + 1 WHERE ID = colname
          oder UPDATE rt.VISITS = rt.VISITS + 1 WHERE ID = colname
          oder UPDATE rt.VISITS = VISITS + 1 WHERE ID= colname

          eingebe meldet Dreamweaver einen Error!
          Das Problem muss am UPDATE liegen, da es ohne geht!
          Was kann ich machen, bzw. was mach ich falsch?
          VG; Dennis

          1. Hi,

            Wenn ich jetzt bei Dreamweaver das von dir oben genannte:

            entweder UPDATE rt INT VISITS = VISITS + 1 WHERE ID = colname
            oder UPDATE rt.VISITS = rt.VISITS + 1 WHERE ID = colname
            oder UPDATE rt.VISITS = VISITS + 1 WHERE ID= colname

            eingebe meldet Dreamweaver einen Error!

            Na sowas, "einen Error" - so unspezifisch drueckt sich dein Traumdingsbums aus?

            Das Problem muss am UPDATE liegen, da es ohne geht!
            Was kann ich machen

            Die richtige Syntax mal nachlesen - http://dev.mysql.com/doc/refman/4.1/en/update.html

            Und vielleicht koenntest du sowas kuenftig auch selber machen, bevor du fragst - das waer' ganz doll fein.

            MfG ChrisB

            1. dann müssts doch so stimmen oder:
              SELECT ID, VISITS
              FROM rt
              UPDATE rt SET VISITS=+1
              WHERE ID = colname

              kommt trotzdem error:
              syntax erro: near UPDATE rt SET=+1 WHERE ID=1

              Kann mir einer weiterhelfen?
              ich weiß das ich mich eig. mehr mit msql auseinander setzten müsste! Aber bitte helft mir!
              vg, dennis

              1. meinte natuerlich

                near UPDATE rt SET VISITS=+1 WHERE ID=-1  !!!!!!!!!!!!!!!

                1. Hallo,

                  meinte natuerlich
                  near UPDATE rt SET VISITS=+1 WHERE ID=-1  !!!!!!!!!!!!!!!

                  wie soll man dir helfen ohne ein Stückchen Code zu sehen?

                  Gruss
                  hawk

                  1. Stückchen Code:

                    <?php require_once('../../Connections/database.php');?>
                    <?php include("rating/includes/rating_functions.php"); ?>
                    <?php
                    if (!function_exists("GetSQLValueString")) {
                    function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
                    {
                      $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;

                    $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

                    switch ($theType) {
                        case "text":
                          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
                          break;
                        case "long":
                        case "int":
                          $theValue = ($theValue != "") ? intval($theValue) : "NULL";
                          break;
                        case "double":
                          $theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
                          break;
                        case "date":
                          $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
                          break;
                        case "defined":
                          $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
                          break;
                      }
                      return $theValue;
                    }
                    }

                    $currentPage = $_SERVER["PHP_SELF"];

                    mysql_select_db($database_database, $database);
                    $query_rt = "SELECT * FROM rt ORDER BY DATE DESC";
                    $rt = mysql_query($query_rt, $database) or die(mysql_error());
                    $row_rt = mysql_fetch_assoc($rt);
                    $totalRows_rt = mysql_num_rows($rt);

                    $maxRows_commentsys = 10;
                    $pageNum_commentsys = 0;
                    if (isset($_GET['pageNum_commentsys'])) {
                      $pageNum_commentsys = $_GET['pageNum_commentsys'];
                    }
                    $startRow_commentsys = $pageNum_commentsys * $maxRows_commentsys;

                    $colname_commentsys = "-1";
                    if (isset($_GET['ID'])) {
                      $colname_commentsys = $_GET['ID'];
                    }
                    mysql_select_db($database_database, $database);
                    $query_commentsys = sprintf("SELECT * FROM commentsys WHERE TOS_ID = %s ORDER BY DATE DESC", GetSQLValueString($colname_commentsys, "text"));
                    $query_limit_commentsys = sprintf("%s LIMIT %d, %d", $query_commentsys, $startRow_commentsys, $maxRows_commentsys);
                    $commentsys = mysql_query($query_limit_commentsys, $database) or die(mysql_error());
                    $row_commentsys = mysql_fetch_assoc($commentsys);

                    if (isset($_GET['totalRows_commentsys'])) {
                      $totalRows_commentsys = $_GET['totalRows_commentsys'];
                    } else {
                      $all_commentsys = mysql_query($query_commentsys);
                      $totalRows_commentsys = mysql_num_rows($all_commentsys);
                    }
                    $totalPages_commentsys = ceil($totalRows_commentsys/$maxRows_commentsys)-1;

                    mysql_select_db($database_database, $database);
                    $query_commentsys_autor_usrname = "SELECT Autor_usrname FROM commentsys";
                    $commentsys_autor_usrname = mysql_query($query_commentsys_autor_usrname, $database) or die(mysql_error());
                    $row_commentsys_autor_usrname = mysql_fetch_assoc($commentsys_autor_usrname);
                    $totalRows_commentsys_autor_usrname = mysql_num_rows($commentsys_autor_usrname);

                    $colname_visits = "0";
                    if (isset($_GET['ID'])) {
                      $colname_visits = $_GET['ID'];
                    }
                    mysql_select_db($database_database, $database);
                    $query_visits = sprintf("SELECT ID, VISITS FROM rt WHERE ID = %s", GetSQLValueString($colname_visits, "int"));
                    $visits = mysql_query($query_visits, $database) or die(mysql_error());
                    $row_visits = mysql_fetch_assoc($visits);
                    $totalRows_visits = mysql_num_rows($visits);

                    $queryString_commentsys = "";
                    if (!empty($_SERVER['QUERY_STRING'])) {
                      $params = explode("&", $_SERVER['QUERY_STRING']);
                      $newParams = array();
                      foreach ($params as $param) {
                        if (stristr($param, "pageNum_commentsys") == false &&
                            stristr($param, "totalRows_commentsys") == false) {
                          array_push($newParams, $param);
                        }
                      }
                      if (count($newParams) != 0) {
                        $queryString_commentsys = "&" . htmlentities(implode("&", $newParams));
                      }
                    }
                    $queryString_commentsys = sprintf("&totalRows_commentsys=%d%s", $totalRows_commentsys, $queryString_commentsys);
                    ?>

                    1. Hi,

                      Stückchen Code:

                      Das ist kein Stueckchen, sondern jede Menge unrelevanter Scheiss.
                      Kuerze bitte (verdammtnochmal) in solchen Faellen auf das wesentliche - kein Mensch hat Lust, sich fuer ein simples Update-Problem seitenweise PHP-Code anzusehen.

                      Allerdings ist in dem Code das Woertchen "UPDATE" ueberhaupt nicht vorhanden ... also konzentriere dich jetzt bitte mal ein bisschen, und liefere dann endlich eine brauchbare Problembeschreibung.

                      </hilfe/charta.htm#tipps-fuer-fragende>

                      MfG ChrisB

              2. Hi,

                dann müssts doch so stimmen oder:
                SELECT ID, VISITS
                FROM rt
                UPDATE rt SET VISITS=+1
                WHERE ID = colname

                kommt trotzdem error:
                syntax erro: near UPDATE rt SET=+1 WHERE ID=1

                Wenn MySQL Fehler "near irgendwas" meldet, dann kannst du mit an Sicherheit grenzender Wahrscheinlichkeit davon ausgehen, dass die fehlerhafte Stelle genau vor diesem irgendwas liegt.

                Es sieht so aus, als ob du versuchst, beide Queries auf einmal abzufeuern. Selbst wenn das mit myzsql_query moeglich waere - ist es nicht - wuerde immer noch das Semikolon zwischen beiden Statements fehlen, um diese voneinander abzugrenzen.

                Beschaeftige dich jetzt bitte endlich mal ein bisschen mit den Grundlagen, anstatt weiter wild herumzuraten.

                MfG ChrisB

      2. Hallo Dennis,

        Also Eine Spalte, von mir aus Visits (VARCHAR 255)

        das ist ganz bestimmt der falsche Datentyp.

        [...] das im Visits-Feld die zahl

        Nimm einen Datentyp für Zahlen. Nimm einen für ganze Zahlen.
        Wie das Hochzählen geht, hat Dir ja dedlfix bereits mitgeteilt.

        Freundliche Grüße

        Vinzenz