[GastForen Programmierung/Entwicklung PHP und MySQL Top 3 Klicks ausgeben

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

31. Aug 2005, 17:03
Beitrag # 1 von 16
Bewertung:
(4109 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi !

Lese einen Ordner mit Bilder aus, lasse die Anzahl zählen mit count und Group by! Jetzt möchte ich nur die 3 meißt angeklickten Fotos anzeigen. Leider zeigt er mir nur ein Bild an und nicht auf jeder Seite, wenn ich "where bild = '$bild' im SQL String lasse, nehme ich es raus, zeigt er mir die richtigen Fotos an aber den falschen Pfad.

$queryb = "SELECT bild, COUNT(*) as numberc FROM punkte Where bild = '$bild' GROUP BY bild order by numberc DESC LIMIT 3";

$result2 = mysql_query($queryb) or die("Anfrage fehlgeschlagen: " . mysql_error());

echo "<h3>Die 3 TOP Fotos</h3>";
echo $result2;

while($row = mysql_fetch_object($result2))
{

echo "<a href=\"foto.php?bild=$bild&location=$location&datum=$datum&klick=$klick&bild_id=$bild_id&number=$numberc\"><img src='$row->bild' width=150 align='center' height=125 border=1></a>";
echo "&nbsp;";
echo $bild;

}
X

Top 3 Klicks ausgeben

oesi50
  
Beiträge gesamt: 2315

31. Aug 2005, 18:38
Beitrag # 2 von 16
Beitrag ID: #185261
Bewertung:
(4108 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Where bild =

und

GROUP BY bild

widersprechen sich prinzipiell.


als Antwort auf: [#185241]

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

1. Sep 2005, 14:11
Beitrag # 3 von 16
Beitrag ID: #185378
Bewertung:
(4086 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi !

das Problem ist bloß ohne group by kann ich auch kein Order machen aber das benötige ich um LIMIT auf 3 Bilder zu setzen. Lasse ich die Where Klausel raus funzt es nicht.
Was mache ich nur falsch ?


als Antwort auf: [#185261]

Top 3 Klicks ausgeben

oesi50
  
Beiträge gesamt: 2315

1. Sep 2005, 14:21
Beitrag # 4 von 16
Beitrag ID: #185380
Bewertung:
(4084 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
wie sieht denn deine db aus?


als Antwort auf: [#185378]

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

1. Sep 2005, 14:36
Beitrag # 5 von 16
Beitrag ID: #185387
Bewertung:
(4082 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
2 Spalten, eine autoincrement bild_id und die Spalte bild, dort werden alle bildpfade gespeichert die aufgerufen wurden. Mit Group by und count kann ich mir die Anzahl ausgeben lassen!


als Antwort auf: [#185380]

Top 3 Klicks ausgeben

oesi50
  
Beiträge gesamt: 2315

1. Sep 2005, 14:48
Beitrag # 6 von 16
Beitrag ID: #185392
Bewertung:
(4077 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
ich sag's mal noch deutlicher:

Poste hier deinen dump!


als Antwort auf: [#185387]

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

1. Sep 2005, 14:51
Beitrag # 7 von 16
Beitrag ID: #185393
Bewertung:
(4073 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
-- Tabellenstruktur für Tabelle `punkte`
--

CREATE TABLE `punkte` (
`bild_id` int(11) NOT NULL auto_increment,
`bild` varchar(70) NOT NULL default '',
PRIMARY KEY (`bild_id`)
) ;

--
-- Daten für Tabelle `punkte`
--

INSERT INTO `punkte` VALUES (71, 'Matrix_24_06_05_c//Kopie von IMG_2366.jpg');
INSERT INTO `punkte` VALUES (70, 'Matrix_24_06_05_c//Kopie (3) von IMG_2364.jpg');
INSERT INTO `punkte` VALUES (69, 'Matrix_24_06_05_c//Kopie (3) von IMG_2366.jpg');
.
.
.


als Antwort auf: [#185392]

Top 3 Klicks ausgeben

oesi50
  
Beiträge gesamt: 2315

1. Sep 2005, 16:26
Beitrag # 8 von 16
Beitrag ID: #185422
Bewertung:
(4065 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Erklär mir bitte noch, wie du mit diesen Daten Klicks zählen willst!


als Antwort auf: [#185393]

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

2. Sep 2005, 09:40
Beitrag # 9 von 16
Beitrag ID: #185548
Bewertung:
(4054 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Indem ich die Spalte Bild gruppiere und zähle und als ausgabe dient die temporäre Spalte number.


als Antwort auf: [#185422]

Top 3 Klicks ausgeben

Intermedia
Beiträge gesamt: 1287

2. Sep 2005, 13:30
Beitrag # 10 von 16
Beitrag ID: #185619
Bewertung:
(4048 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hi,

nicht das du jeden Klick in die DB schreibst?? Das ist doch nicht dein Ernst!
Hast du schon mal was von einer Addition gehört?

Hierzu brauchst du nur ein zusätzliches Feld in dem du ein Update machst und zu der vorherigen Zahl eine 1 dazu zählst.

Das wars.

Gruß Sven

P.S. Du machst ja schon ne Vergewaltigung der DB ;-)


als Antwort auf: [#185548]
(Dieser Beitrag wurde von Intermedia am 2. Sep 2005, 13:35 geändert)

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

6. Sep 2005, 10:09
Beitrag # 11 von 16
Beitrag ID: #186031
Bewertung:
(4027 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Mit dem Update haut es noch nicht richtig hin, er zählt richtig aber er macht kein Update bei "bild".
Muß ich nicht zuvor prüfen, ob der pfad sprich bild schon in der DB vorhanden ist, wenn nicht dann speicher ihn !


Code
if (bild == $bild){ 

$eintrag1="UPDATE punkte SET bild = '$bild', anzahl = anzahl + 1 where bild = '$bild' ";
$eintragen1 = mysql_query($eintrag1);
}
else
{
$eintrag="INSERT INTO punkte (bild, location, datum, anzahl) VALUES ('$bild', '$location', '$datum', '1')";
$eintragen = mysql_query($eintrag);
}



als Antwort auf: [#185619]

Top 3 Klicks ausgeben

Intermedia
Beiträge gesamt: 1287

6. Sep 2005, 10:54
Beitrag # 12 von 16
Beitrag ID: #186040
Bewertung:
(4022 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf:
Code
if (bild == $bild){ 



was soll das ? Dein erstes "bild" ist keine Variable, selbst wenn es eine Variable ist macht es keinen Sinn gleiche Variablen zu vergleichen weil die immer gleich sind.

Überdenke mal deine Logik.

Gruß Sven


als Antwort auf: [#186031]

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

7. Sep 2005, 13:52
Beitrag # 13 von 16
Beitrag ID: #186256
Bewertung:
(4014 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Aber wie kann ich denn prüfen ob das bild schon in der DB vorhanden ist, vielleicht so
Code
if ($_POST['bild'] == $row['bild']) { 



als Antwort auf: [#186040]

Top 3 Klicks ausgeben

Intermedia
Beiträge gesamt: 1287

7. Sep 2005, 19:06
Beitrag # 14 von 16
Beitrag ID: #186318
Bewertung:
(4007 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Sie dir mal $_FILES[bildname] an und das Array was rausgegeben wird, dort steht alles drin was du brauchst.

Ich empfehle http://www.php.net/docs.php als Nachschlagwerk da steht sehr viel drin.

Gruß Sven


als Antwort auf: [#186256]

Top 3 Klicks ausgeben

BratwurstmitSenf
Beiträge gesamt: 59

9. Sep 2005, 10:28
Beitrag # 15 von 16
Beitrag ID: #186539
Bewertung:
(3994 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
$_FILES[bild] ist leer, kannst du mir bitte die Bedinung mal erklären. Wie prüfe ich ob bild, schon in der DB vorhanden ist.

Danke


als Antwort auf: [#186318]
X