php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.02.2008, 19:49  
Erfahrener Benutzer
 
Registriert seit: 11.02.2004
Beiträge: 119
marcelglaeser
Standard andere kunden sahen auch script

hallo,
ich habe eine datenbank, in der die ip und die produktid eingetragen sind, um zu sehen, welcher kunde sich welches produkt ansehen hat.

jetzt habe ich folgende überlegung:

ich nehme die id des aktuellen produkts und lese alle ips aus, welche auch auf dem produkt waren und nun lese ich alle ids, von den ips aus. aber wie lass ich jetzt ermitteln, welche 10produkte am häufigsten angezeigt wurde.

ich habe schon vieles versucht, aber nie wirklich zu einer lösung gekommen.

danke, brauche nicht umbedingt scripte, sondern gedanken und ideen.
marcelglaeser ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.02.2008, 20:47  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Du willst also ermitteln, welche Benutzer sich dieses Produkt angeschaut haben und dann die Top10-Produkte genau dieser Benutzer herausfinden?

Gehen wir von folgender Tabelle aus:
products_users
product_id | user_ip

$result_1 = (SELECT users_ip FROM products_users WHERE product_id = #CURRENT#)
$result_2 = (SELECT product_id FROM products_users WHERE users_id IN ($result1) AND product_id != #CURRENT# GROUP BY (product_id) ORDER BY COUNT(product_id) DESC LIMIT 10)

Sub-SELECTs sind natürlich möglich.
Zergling-new ist offline   Mit Zitat antworten
Alt 25.02.2008, 18:25  
Erfahrener Benutzer
 
Registriert seit: 11.02.2004
Beiträge: 119
marcelglaeser
Standard

ja genau das meinte ich, so wie man es immer bei den onlineshops sieht. werde es gleich mal ausprobieren, vielen dank!
marcelglaeser ist offline   Mit Zitat antworten
Alt 29.02.2008, 19:22  
Erfahrener Benutzer
 
Registriert seit: 11.02.2004
Beiträge: 119
marcelglaeser
Standard

also so sieht mein script aktuell aus, aber irgendwie kommt immer ne fehlermeldung:
PHP-Code:
<?
include "config.php";
$connect mysql_connect($dbHost$dbUser$dbPass) or die("Verbindung zum Server nicht hergestellt!
"
);
mysql_select_db($dbName);

$result1 = ("SELECT ip FROM ip_sperre where id='50'");
$resultotheruser1 mysql_query("SELECT id FROM ip_sperre WHERE ip IN ($result1) AND id !='$id' GROUP BY id ORDER BY COUNT id DESC LIMIT 10");
while(
$rowotheruser1 mysql_fetch_array($resultotheruser1)){
$idotheruser ="$rowotheruser1[id]";
echo 
"$idotheruser
"
;
}
?>
die fehlermeldung lautet:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in zeile 8

woran kann das liegen?
marcelglaeser ist offline   Mit Zitat antworten
Alt 29.02.2008, 19:38  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

Lass dir doch mal die Fehlermeldungen mittels mysql_error ausgeben (wenn einer existiert)

Es könnte aber auch sein, dass dein Query keine Ergebisse liefert.
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 29.02.2008, 19:44  
Erfahrener Benutzer
 
Registriert seit: 11.02.2004
Beiträge: 119
marcelglaeser
Standard

also die fehlermeldung lautet:
Fehler: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'id DESC LIMIT 10' at line 1
marcelglaeser ist offline   Mit Zitat antworten
Alt 29.02.2008, 19:49  
Erfahrener Benutzer
 
Benutzerbild von tomtaz
 
Registriert seit: 17.06.2008
Beiträge: 1.762
PHP-Kenntnisse:
Fortgeschritten
tomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig netttomtaz ist einfach richtig nett
tomtaz eine Nachricht über ICQ schicken tomtaz eine Nachricht über Skype™ schicken
Standard

da hast du ja auch schon deine Antwort! Also bis 'id DESC LIMIT 10' scheint alles richtig zu sein...

Edit: Übrigens hat Zerling schon den richtigen Code gepostet...
__________________
Mfg Tomtaz
"Es soll jetzt diese Erfindung geben.... Kugel oder so heißt die. Ist so eine Art Suchmaschine..."
tomtaz ist offline   Mit Zitat antworten
Alt 01.03.2008, 10:40  
Erfahrener Benutzer
 
Registriert seit: 11.02.2004
Beiträge: 119
marcelglaeser
Standard

also mein aktueller script sieht nun so aus:
PHP-Code:
<?
include "config.php";
$connect mysql_connect($dbHost$dbUser$dbPass) or die("Verbindung zum Server nicht hergestellt!
"
);
mysql_select_db($dbName);

$result_1 = ("SELECT ip FROM ip_sperre WHERE id=$id");
$resultotheruser1 = ("SELECT id FROM ip_sperre WHERE ip IN ($result_1) AND id!='$id' GROUP BY id ORDER BY id DESC LIMIT 10");

$resultotheruser1=mysql_query($resultotheruser1);
while(
$rowotheruser1 mysql_fetch_array($resultotheruser1)){
$idotheruser ="$rowotheruser1[id]";
echo 
"$idotheruser
"
;
}
echo 
"Fehler: ".mysql_error();

?>
so dauert der seite aufbau ewig und irgendwann kommt ne meldung, dass der script wahrscheinlich einen fehler hat.

wenn ich aus:
PHP-Code:
$resultotheruser1 = ("SELECT id FROM ip_sperre WHERE ip IN ($result_1) AND id!='$id' GROUP BY id ORDER BY id DESC LIMIT 10"); 
aber
PHP-Code:
$resultotheruser1 = ("SELECT id FROM ip_sperre WHERE ip ='$result_1' AND id!='$id' GROUP BY id ORDER BY id DESC LIMIT 10"); 
mache, dann kommt die fehlermeldung:
Fehler: Subquery returns more than 1 row

was kann ich nun noch tun?
marcelglaeser ist offline   Mit Zitat antworten
Alt 06.03.2008, 05:38  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Bitte poste hier mal anständig die exakten Fehlermeldungen, den relevanten PHP-Code UND den MySQL-Query den du abschickst.

Es ist leider nicht selbstverständlich (warum eigentlich?) dass bei MySQL-Fehlern auch der MySQL-Code gepostet wird UND NICHT der PHP-Code, der diesen erzeugt.

Leg außerdem für ALLE Spalten, die du in den WHERE-Bedingungen verwendest einen Index in der Datenbank an, ja auch und gerade für die IPs.
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] PHP Script im Hintergrund Hu5eL PHP Tipps 2008 6 17.06.2008 22:09
Anmeldung mehrerer Kunden RoDa Datenbanken 2 26.05.2006 23:02
[Erledigt] Verzögerung durch included Script? Umgehen? PHP Tipps 2005-2 4 10.07.2005 19:26
[Erledigt] Relay Script PHP-Fortgeschrittene 11 01.06.2005 16:02
[Erledigt] Hilfe bei Download Verwaltungs Script PHP Tipps 2005 8 04.05.2005 10:29
Fehler bei Script, welches Ordner erstellt PsychoEagle PHP Tipps 2005 3 23.04.2005 16:03
bewertungs-und kommentar script tragen alles doppelt ein Matthiasnet PHP Tipps 2005 11 02.04.2005 23:13
[Erledigt] Script systemabhängig? PHP Tipps 2005 8 15.03.2005 09:45
link innerhalb eines script Datenbanken 2 27.10.2004 19:54
PHP und Mysql für Internen Bereich Beitragsarchiv 3 27.10.2004 10:53
PHP Script aus PHP aufrufen Stümper PHP Tipps 2004 5 26.09.2004 08:15
Wie ändere ich script ?? CityHubter PHP Tipps 2004 14 25.09.2004 19:24
"das" Script oder "der" Script?? Simbo Off-Topic Diskussionen 31 16.09.2004 17:04
Script nur einem am Tag ausführen? themonk PHP Tipps 2004 1 14.08.2004 13:37

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
andere \sahen auch\, select * from order by ip desc limit 10\ in php ausgeben, \sahen auch\

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:19 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.