Datensatz Abfrage zählen
dennis m
- php
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
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
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?
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";
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
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= colnameeingebe 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
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
meinte natuerlich
near UPDATE rt SET VISITS=+1 WHERE ID=-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
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);
?>
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
Hi,
dann müssts doch so stimmen oder:
SELECT ID, VISITS
FROM rt
UPDATE rt SET VISITS=+1
WHERE ID = colnamekommt 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
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