Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 09:33

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



php mysql problem

Discussion on php mysql problem within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
SuGGl's Avatar
 
elite*gold: 0
Join Date: Mar 2012
Posts: 22
Received Thanks: 1
php mysql problem

Hallo, ich habe ein kleines problem mit mysql. Ich möchte aus einer Datenbank von einem benutzernamen die id bekommen danach mit der id in einer anderen tabelle alle einträge auslesen und in einer zahl darstellen lassen doch leider kommt immer der 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 '-players WHERE playername=SuGGl LIMIT 1' at line 1


Hier ist der Code:
PHP Code:
<?php
$user 
$_SESSION['name'];
$frage "SELECT playername, playerid FROM lb-players WHERE playername=$user LIMIT 1";
$ergebnis mysql_query($frage) or die(mysql_error());
$row mysql_fetch_object($ergebnis);
$id $row->playerid;

$frage "SELECT * FROM lb-world WHERE playerid LIKE '$id'";
$anz mysql_num_rows($frage) or die(mysql_error());
echo 
"Du hast ".$anz." Blöcke bearbeitet";
?>
Ich hoffe mir wird einer helfen

LG SuGGl
SuGGl is offline  
Old 04/21/2012, 18:45   #2
 
.Acu³'s Avatar
 
elite*gold: 166
Join Date: Mar 2011
Posts: 207
Received Thanks: 25


Beispiel:
PHP Code:
$queryMYSQL_QUERY(" SELECT tabelle1.*,tabelle2.alter,tabelle2.id FROM tabelle1 
LEFT JOIN tabelle2 ON (tabelle2.id = tabelle1.id) 
WHERE tabelle1.name='Hans' "
); 
Anpassen sollte ja selber klappen
.Acu³ is offline  
Old 04/21/2012, 20:07   #3
 
Project Rivalry's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,674
Received Thanks: 229
$frage = "SELECT playername, playerid FROM lb-players WHERE playername Like $user LIMIT 1";
Project Rivalry is offline  
Old 04/23/2012, 11:54   #4
 
Mashkin's Avatar
 
elite*gold: 44
Join Date: May 2010
Posts: 2,053
Received Thanks: 1,747
Quote:
Originally Posted by SuGGl View Post
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 '-players WHERE playername=SuGGl LIMIT 1' at line 1
PHP Code:
$frage "SELECT playername, playerid FROM lb-players WHERE playername=$user LIMIT 1"
Beim Vergleich des Namens muss die Variable "$user" in Anführungszeichen gesetzt werden:
Code:
"SELECT playername, playerid FROM lb-players WHERE playername=`$user` LIMIT 1"
Ein Tipp: Sieh zu, dass alle Variablen in einer Query ordentlich escaped sind.

Und JOINs zu benutzen ist eleganter und auch technisch gesehen schneller.
Mashkin is offline  
Old 04/23/2012, 14:23   #5


 
.Marcel''s Avatar
 
elite*gold: 100
Join Date: Sep 2009
Posts: 8,143
Received Thanks: 2,763
Hier noch etwas Allgemeines zur Sicherheit:

Quote:
  • Escapen Sie jede nicht numerische Benutzereingabe, welcher zur Datenbank weitergereicht werden soll mit der jeweiligen datenbankspezifischen Escape-Funktion (z.B. mysql_real_escape_string(), sqlite_escape_string() usw.). Wenn keine datenbankspezifischen Escapemechanismen existieren können in der Regel (je nach Datenbanktyp) auch die Funktion addslashes() und addcslashes() von Nutzen sein. Siehe auch das erste Beispiel. Wie dieses Beispiel zeigt, sind in den statischen Teil der Abfrage eingebrachten Escapes nicht genug, und können leicht gehacked werden.
  • Geben Sie keinerlei datenbankspezifische Informationen aus, speziell über das Schema, egal wie (auf ehrliche oder unehrliche Weise). Siehe auch Fehlerbehandlung und Error Handling and Logging Functions.
  • Sie können stored procedures und vorher definierte Cursor verwenden, um den Datenzugriff zu abstrahieren, sodass Benutzer nicht direkt auf Tabellen oder Views zugreifen, aber diese Lösung hat andere Auswirkungen.
Quelle:
.Marcel' is offline  
Old 04/23/2012, 15:53   #6
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
Quote:
Originally Posted by GAMER19951 View Post
$frage = "SELECT playername, playerid FROM lb-players WHERE playername Like $user LIMIT 1";
bei nem like kann es dir passieren, dass du versehentlich nen falschen user selectest
NotEnoughForYou is offline  
Thanks
1 User
Old 04/23/2012, 21:46   #7
 
Project Rivalry's Avatar
 
elite*gold: 0
Join Date: Apr 2010
Posts: 1,674
Received Thanks: 229
@ NotEnoughForYou o.O wieso wo ist den genau der unterschied.. wäre nett wen du mir das erklären könnteest interessiert mich jetzt =DD

mfg

gamer
Project Rivalry is offline  
Old 04/23/2012, 22:05   #8

 
マルコ's Avatar
 
elite*gold: 1329
Join Date: Jun 2009
Posts: 1,873
Received Thanks: 960
LIKE = eng. "so wie", spielt also auf die Ähnlichkeit, nicht Gleichheit an.
Siehe
マルコ is offline  
Thanks
2 Users
Old 04/25/2012, 23:31   #9


 
Whoknowsit's Avatar
 
elite*gold: 146
Join Date: May 2009
Posts: 3,764
Received Thanks: 6,974
PHP Code:
<?php 
$result 
mysql_query("SELECT COUNT(*) FROM `lb-world` WHERE `playerid` = (SELECT `playerid FROM `lb-players` WHERE playername = '".$user."')") or die (mysql_error()); 
$anz mysql_result($result0); 
echo 
"Du hast ".$anz." Blöcke bearbeitet" 
?>
Ungetestet.
Whoknowsit is offline  
Reply


Similar Threads Similar Threads
MySql Problem
04/04/2012 - Metin2 Private Server - 0 Replies
Hi, habe ein Problem mit meinem Mysql Server auf freebsd. Der Server selbst hat 24GB Ram. Habe per Tuning-primer die my.cnf eingestellt die folgendermaßen aussieht: # The MySQL server sync_binlog=1 port = 3306 socket = /tmp/mysql.sock
MySQL problem..
03/07/2012 - Metin2 Private Server - 0 Replies
Hallo zusammen :) Ich habe ein Problem bezüglich MySQL.. wenn ich über Navicat bonis switche.. sehe ich ingame nichts (auch nach reboot nicht) im errorfile steht folgendes: Ausschnitt: SYSERR: Mar 7 19:40:36 :: ChildLoop: AsyncSQL: query failed: Unknown column 'vnum' in 'field list' (query: INSERT DELAYED INTO log (type, time, who, x, y, what, how, hint, ip, vnum) VALUES('ITEM', NOW(), 2, 2986, 0, 30000006, 'SET_SOCKET', '', '', 72702) errno: 1054) SYSERR: Mar 7 19:40:40 ::...
MySQL Problem
11/13/2011 - Technical Support - 9 Replies
Wenn ich IP, User sowie Passwort eingebe, kommt direkt das: 1130 - Host 'p5B1763D8.dip.t-dialin.net' is not allowed to connect to this MySQL server Woran liegt das? Danke im vorraus
[PROBLEM]:[Root]:Mysql:[...]/tmp/mysql.sock
10/22/2011 - Metin2 Private Server - 3 Replies
Hallo Community habe jetzt seit ein Paar Tagen einen Fehler Namens: failed, retrying in 5 secondsmysql_real_connect: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) Screen: http://img809.imageshack.us/img809/9805/helpg.png
Problem mit MySQL
08/18/2011 - Metin2 Private Server - 8 Replies
Nabend, ich habe ein Problem mit MySQL und zwar, wenn ich einen Datenbank account erstellen will, also das mein Kumpel auch auf meine Datenbank conecten kann, wird das passwort was ich eingebe nicht angenommen. z.b. 123456789 auf 8 Zahlen/Buchstaben verkürzt. doch auch wenn ich nur 6 Zahlen/Buchstaben eingebe, wird es auf 8 Zahlen/Buchstaben verlängert. Sprich egal was ich eingebe,



All times are GMT +2. The time now is 09:34.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.