php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 25-10-2009, 11:26
Ri4i
 Registrierter Benutzer
Links : Onlinestatus : Ri4i ist offline
Registriert seit: Jun 2009
Beiträge: 14
Ri4i befindet sich auf einem aufstrebenden Ast
Exclamation kleines Problemm bei meiner Topliste.

Hallo zusammen,

habe kleines Problemchen mit meiner Topliste, also wenn ein User eingeloggt ist dann Zeigt die liste so wie ich es wollte! Aber wenn User nicht eingeloggt ist und geht auf die liste dann wird so ein fehler angezeigt: "Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/...online6"
also die Zeile 6 ist irgendwie falsch!
und hier ist die aus PHP:
Zitat:
"$punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id"));"
Ich vermutte, dass ich was bei bzw nach "SELECT" schreiben soll, aber weiß nicht was genau! Habe schon bei google und co. geguckt nichts passendes gefunden! Würde mich über eure Hilfe sehr freuen.

Gruß
Mit Zitat antworten
  #2 (permalink)  
Alt 25-10-2009, 12:39
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Wenn kein User eingeloggt ist, was ist dann $user_id?
Mit Zitat antworten
  #3 (permalink)  
Alt 25-10-2009, 16:28
Ri4i
 Registrierter Benutzer
Links : Onlinestatus : Ri4i ist offline
Registriert seit: Jun 2009
Beiträge: 14
Ri4i befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von onemorenerd Beitrag anzeigen
Wenn kein User eingeloggt ist, was ist dann $user_id?

na id ist doch wenn User eingelogt ist!? oder...

eigentlich funktioniert alles sowie ich will nur mich stört halt wenn User nicht eingelogt ist dann wird diese DB Fehler angezeigt!:
PHP-Code:
Warning:  mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/htdocs/toptop/top.php on line 6 
Mit Zitat antworten
  #4 (permalink)  
Alt 25-10-2009, 16:41
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ri4i Beitrag anzeigen
na id ist doch wenn User eingelogt ist!? oder...
Die Frage war, was diese Variable enthält, wenn der Nutzer nicht eingeloggt ist.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 25-10-2009, 16:50
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Jetzt denk doch mal logisch. Wenn der User nicht eingeloggt ist, gibt es keine ID. Und wie sieht dann dein SQL-Statement aus? So:
PHP-Code:
SELECT punkte_ges FROM profil WHERE id
Und das ist ein Syntax-Fehler!

Bau mal folgenden Code ein, dann siehst du es:
PHP-Code:
$res mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id") or die(mysql_error()); 
Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #6 (permalink)  
Alt 25-10-2009, 17:53
Benutzerbild von fireweasel fireweasel
 Registrierter Benutzer
Links : Onlinestatus : fireweasel ist offline
Registriert seit: Sep 2008
Ort: At home
Beiträge: 851
fireweasel wird schon bald berühmt werdenfireweasel wird schon bald berühmt werden
fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken
Standard

Zitat:
Zitat von Ri4i Beitrag anzeigen
... "Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /www/...online6"
also die Zeile 6 ist irgendwie falsch!
und hier ist die aus PHP:

PHP-Code:
$punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id")); 
Ich vermutte, dass ich was bei bzw nach "SELECT" schreiben soll, aber weiß nicht was genau!
Falsch vermutet. Was lernen wir als erstes im Grundkurs Programmieren? Dass das Ergebnis einer Funktion auf Gültigkeit überprüft werden muss, bevor wir es der nächsten Funktion in den Hals stopfen. Also:

PHP-Code:
$result mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id");

if (!
is_resource($result)) {
    die(
'Sch#@*, hat nicht geklappt');
}
$fo mysql_fetch_object($result); 
Die gleiche Vorgehensweise ist vor dem Aufruf von mysql_query() zu empfehlen. Du übergibst einen String, der die Variable $user_id auswertet. Wenn die einen unbrauchbaren Wert enthält oder gar nicht existiert, wird die als Leerstring "''" in deine(n) Query eingesetzt. Dann ist es auch kein Wunder, wenn mysql_query() kein Result-Set zurückgibt, sondern FALSE.

Geändert von fireweasel (25-10-2009 um 18:13 Uhr)
Mit Zitat antworten
  #7 (permalink)  
Alt 25-10-2009, 21:07
Ri4i
 Registrierter Benutzer
Links : Onlinestatus : Ri4i ist offline
Registriert seit: Jun 2009
Beiträge: 14
Ri4i befindet sich auf einem aufstrebenden Ast
Standard

Leute ist doch alles das selbe. habe auch Probiert!

hier ist das ganze:
PHP-Code:
$punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id"));
if(
$punkte->punkte_ges>=39500$zahl=" LIMIT 100";
elseif(
$punkte->punkte_ges>=29500$zahl=" LIMIT 30";
elseif(
$punkte->punkte_ges>=19500$zahl=" LIMIT 28"
elseif(
$punkte->punkte_ges>=9300$zahl=" LIMIT 26";
elseif(
$punkte->punkte_ges>=9300$zahl=" LIMIT 24";
elseif(
$punkte->punkte_ges>=5500$zahl=" LIMIT 22";
elseif(
$punkte->punkte_ges>=5000$zahl=" LIMIT 20";
elseif(
$punkte->punkte_ges>=2200$zahl=" LIMIT 18";
elseif(
$punkte->punkte_ges>=2200$zahl=" LIMIT 16";
elseif(
$punkte->punkte_ges>=500$zahl=" LIMIT 14";
elseif(
$punkte->punkte_ges>=500$zahl=" LIMIT 12";
elseif(
$punkte->punkte_ges>=0$zahl=" LIMIT 10";
}
if (!isset(
$user_id)) $zahl=" LIMIT 10";
$top=mysql_query("SELECT * FROM `foto`, `profil` WHERE profil.id=foto.user_id AND profil.sex=$sex AND foto.vote>=100 AND foto.status=1 ORDER BY prozent DESC $zahl");
?> 
Wie kann ich denn diese fehler weg machen? sorry habe vielleicht nicht verstanden was sie genau meinen
Mit Zitat antworten
  #8 (permalink)  
Alt 25-10-2009, 21:10
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ri4i Beitrag anzeigen
habe auch Probiert!
Aber nicht logisch ...

PHP-Code:
if (!isset($user_id)) $zahl=" LIMIT 10";
$top=mysql_query("SELECT ..."); 
Wieso verwendest du die Variable $user_id vor diesen Zeilen schon - wenn du erst hier überprüfst, ob es sie überhaupt gibt?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #9 (permalink)  
Alt 26-10-2009, 19:14
Ri4i
 Registrierter Benutzer
Links : Onlinestatus : Ri4i ist offline
Registriert seit: Jun 2009
Beiträge: 14
Ri4i befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von wahsaga Beitrag anzeigen
Aber nicht logisch ...

PHP-Code:
if (!isset($user_id)) $zahl=" LIMIT 10";
$top=mysql_query("SELECT ..."); 
Wieso verwendest du die Variable $user_id vor diesen Zeilen schon - wenn du erst hier überprüfst, ob es sie überhaupt gibt?
hmm irgendwas mache ich walsch! kommt immer selbe Ergebniss oder es geht garnix!

könnt mir vielleicht genaueren tipp geben
Mit Zitat antworten
  #10 (permalink)  
Alt 26-10-2009, 21:21
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ri4i Beitrag anzeigen
könnt mir vielleicht genaueren tipp geben
Hier gibt es nur Hilfe zur Selbsthilfe. Und keinen fertigen Code. Beherzige diese Ratschläge und du wirst den Fehler selber finden. Oder aber auf Ungereimten stoßen, bei denen wir dir gerne weiterhelfen.

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #11 (permalink)  
Alt 27-10-2009, 08:50
Ri4i
 Registrierter Benutzer
Links : Onlinestatus : Ri4i ist offline
Registriert seit: Jun 2009
Beiträge: 14
Ri4i befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kropff Beitrag anzeigen
Hier gibt es nur Hilfe zur Selbsthilfe. Und keinen fertigen Code. Beherzige diese Ratschläge und du wirst den Fehler selber finden. Oder aber auf Ungereimten stoßen, bei denen wir dir gerne weiterhelfen.

Peter
hier Peter,

wenn ich mein Problemm selber finden will, dann benutze ich google! Das habe ich, das hat mir aber nicht weiter geholfen! Darum muss ich hier fragen! Wenn du nicht helfen willst dann las es! Verarschen kann ich mich auch selber!

Und was meinst du mit "Ungereimten stoßen"? Vielleicht habe ich mich Falsch ausgedruckt! Sorry. Das ist auch meine Ungereimtheit! Ich habe ja geschrieben wo ich fehler vermutte, und durch euren Antworten hat das sich hier bestätigt! Schööön)))

Das hat aber mein Fehler nicht weg gemacht! Ich habe ja auch versucht umzuschreiben, wird aber nicht besser! Bitte euch mir weiter zu helfen!
Mit Zitat antworten
  #12 (permalink)  
Alt 27-10-2009, 09:20
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.722
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Ri4i Beitrag anzeigen
wenn ich mein Problemm selber finden will, dann benutze ich google! Das habe ich, das hat mir aber nicht weiter geholfen! Darum muss ich hier fragen! Wenn du nicht helfen willst dann las es! Verarschen kann ich mich auch selber!
Verwarn! Noch so eine Entgleisung und du bist weg vom Fenster.
Zitat:
Zitat von Ri4i Beitrag anzeigen
Und was meinst du mit "Ungereimten stoßen"? Vielleicht habe ich mich Falsch ausgedruckt! Sorry. Das ist auch meine Ungereimtheit! Ich habe ja geschrieben wo ich fehler vermutte, und durch euren Antworten hat das sich hier bestätigt! Schööön)))
Und wie sehen deine Versuche aus? Testausgaben? So wie ich es beschrieben habe? Wahrscheinlich nicht. Und wie ich schon sagte, fertigen Code gibst es hier nicht!

Peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #13 (permalink)  
Alt 27-10-2009, 10:38
phpMorpheus2
 Registrierter Benutzer
Links : Onlinestatus : phpMorpheus2 ist offline
Registriert seit: Apr 2007
Beiträge: 646
Blog-Einträge: 2
phpMorpheus2 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn du die Variable $user_id benutzt, um etwas aus der mysql datenbank abzufragen, so MUSS die Variable $user_id aber auch etwas beinhalten !
Ist der User eingeloggt, so beinhaltet die Variable die Userid (z.B. "20")
Ist der User aber NICHT eingeloggt, so beinhaltet die Variable $user_id nichts.
Die ist dann ja leer.

Und da die Variable leer ist, gibt es bei der mysql Abfrage einen Syntaxfehler.
PHP-Code:
$punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id")); 
Darum solltest du prüfen ob $user_id gefüllt ist.
Und das bitte VOR jegleicher Verwendung.
z.B. so:

PHP-Code:
if(isset($user_id) === true) {
    
$punkte mysql_fetch_object(mysql_query("    SELECT
                                                    punkte_ges
                                                FROM
                                                    profil
                                                WHERE 
                                                    id=$user_id"
));
                                                    
    if(
$punkte->punkte_ges>=39500$zahl=" LIMIT 100";
    elseif(
$punkte->punkte_ges>=29500$zahl=" LIMIT 30";
    elseif(
$punkte->punkte_ges>=19500$zahl=" LIMIT 28"
    elseif(
$punkte->punkte_ges>=9300$zahl=" LIMIT 26";
    elseif(
$punkte->punkte_ges>=9300$zahl=" LIMIT 24";
    elseif(
$punkte->punkte_ges>=5500$zahl=" LIMIT 22";
    elseif(
$punkte->punkte_ges>=5000$zahl=" LIMIT 20";
    elseif(
$punkte->punkte_ges>=2200$zahl=" LIMIT 18";
    elseif(
$punkte->punkte_ges>=2200$zahl=" LIMIT 16";
    elseif(
$punkte->punkte_ges>=500$zahl=" LIMIT 14";
    elseif(
$punkte->punkte_ges>=500$zahl=" LIMIT 12";
    elseif(
$punkte->punkte_ges>=0$zahl=" LIMIT 10";
} else {
    
$zahl " LIMIT 10";
    
$top mysql_query("SELECT
                            *
                        FROM
                            `foto`,
                            `profil`
                        WHERE
                            profil.id = foto.user_id
                        AND
                            profil.sex=$sex
                        AND
                            foto.vote>=100
                        AND
                            foto.status=1
                        ORDER BY
                            prozent
                        DESC $zahl"
);

Dazu noch:
SELECT * ist nicht so das Gelbe vom Ei.
Mit Zitat antworten
  #14 (permalink)  
Alt 27-10-2009, 16:27
Ri4i
 Registrierter Benutzer
Links : Onlinestatus : Ri4i ist offline
Registriert seit: Jun 2009
Beiträge: 14
Ri4i befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Kropff Beitrag anzeigen
Verwarn! Noch so eine Entgleisung und du bist weg vom Fenster.

Und wie sehen deine Versuche aus? Testausgaben? So wie ich es beschrieben habe? Wahrscheinlich nicht. Und wie ich schon sagte, fertigen Code gibst es hier nicht!

Peter
Zitat:
Zitat von phpMorpheus2 Beitrag anzeigen
Wenn du die Variable $user_id benutzt, um etwas aus der mysql datenbank abzufragen, so MUSS die Variable $user_id aber auch etwas beinhalten !
Ist der User eingeloggt, so beinhaltet die Variable die Userid (z.B. "20")
Ist der User aber NICHT eingeloggt, so beinhaltet die Variable $user_id nichts.
Die ist dann ja leer.

Und da die Variable leer ist, gibt es bei der mysql Abfrage einen Syntaxfehler.
PHP-Code:
$punkte=mysql_fetch_object(mysql_query("SELECT punkte_ges FROM profil WHERE id=$user_id")); 
Darum solltest du prüfen ob $user_id gefüllt ist.
Und das bitte VOR jegleicher Verwendung.
z.B. so:

PHP-Code:
if(isset($user_id) === true) {
    
$punkte mysql_fetch_object(mysql_query("    SELECT
                                                    punkte_ges
                                                FROM
                                                    profil
                                                WHERE 
                                                    id=$user_id"
));
                                                    
    if(
$punkte->punkte_ges>=39500$zahl=" LIMIT 100";
    elseif(
$punkte->punkte_ges>=29500$zahl=" LIMIT 30";
    elseif(
$punkte->punkte_ges>=19500$zahl=" LIMIT 28"
    elseif(
$punkte->punkte_ges>=9300$zahl=" LIMIT 26";
    elseif(
$punkte->punkte_ges>=9300$zahl=" LIMIT 24";
    elseif(
$punkte->punkte_ges>=5500$zahl=" LIMIT 22";
    elseif(
$punkte->punkte_ges>=5000$zahl=" LIMIT 20";
    elseif(
$punkte->punkte_ges>=2200$zahl=" LIMIT 18";
    elseif(
$punkte->punkte_ges>=2200$zahl=" LIMIT 16";
    elseif(
$punkte->punkte_ges>=500$zahl=" LIMIT 14";
    elseif(
$punkte->punkte_ges>=500$zahl=" LIMIT 12";
    elseif(
$punkte->punkte_ges>=0$zahl=" LIMIT 10";
} else {
    
$zahl " LIMIT 10";
    
$top mysql_query("SELECT
                            *
                        FROM
                            `foto`,
                            `profil`
                        WHERE
                            profil.id = foto.user_id
                        AND
                            profil.sex=$sex
                        AND
                            foto.vote>=100
                        AND
                            foto.status=1
                        ORDER BY
                            prozent
                        DESC $zahl"
);

Dazu noch:
SELECT * ist nicht so das Gelbe vom Ei.
oh leute habe das hinbekommen, war eigentlich ganz einfach, ich glaube war nur übermüdet!

musste gleich nachm header das da einfügen:
PHP-Code:
if (isset($user_id)) 
und dann nach } das da:
if (!isset($user_id)) $zahl=" LIMIT 10";

Danke euch, hätte eigentlich selber hinbekommen! Und Kropff sei mir bitte nicht sauer! so kammst mir einfach rüber!

Gruß
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
php problemm vladimir23 PHP Developer Forum 1 26-01-2006 04:58
<div> Plazierungs Problemm LukasS HTML, JavaScript, AJAX, jQuery, CSS, Bootstrap, LESS 9 26-07-2005 10:08
[Funktion] Array Problemm Citycobra PHP Developer Forum 5 17-01-2005 13:07
Suche Script habe Problemm Dj Boune Apps und PHP Script Gesuche 1 11-11-2002 15:11
anregungen zu meiner topliste AaM User pages 0 29-09-2002 22:11

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:52 Uhr.