• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

Datenbank/Tabellenmanagement-Userverwaltung

newmacuser24

Antonowka
Registriert
27.12.05
Beiträge
355
Hallo,
hätte eine Frage zum Datenbank/Tabellenmanagement (MySQL). Wenn man eine unbestimmte Anzahl von Benutzern verwaltet, so stelle ich mir vor, ist es am besten, wenn man sie alle in eine Tabelle schreibt. Jetzt stellt sich mir die Frage, was man mit individuellen Einstellungen macht, die user in ihrem Profil machen können (z.B.: homepage angeben, etc...) Legt man da für jeden Benutzer eine eigene Tabelle an, oder wirft alles in eine Tabelle und filtert dann mit Suchkriterien, wenn man dem jeweiligen Benutzer sein Profil anzeigt? Hoffe, ich hab das einigermassen verständlich erklärt ;)

Danke im Voraus!
 

fealXX

Granny Smith
Registriert
05.02.08
Beiträge
15
eine tabelle user mit passwort und name und id
und eine tabelle mit userid und den einstellungen
 

newmacuser24

Antonowka
Registriert
27.12.05
Beiträge
355
Um nicht einen neuen Thread öffnen zu müssen, dachte ich, ich poste es einfach mal hier...
Wenn ich aus der Tabelle nun Daten auslese und in eine Menüliste schreibe, so wird die id ein wenig sonderbar ausgegeben.
Die Tabelle besteht aus: id, Produktname, Eigenschaften, etc...

Hier der Code, den ich verwende, um die Daten aus der MySQL-Datenbank zu holen und in die Liste reinzuladen:

...zunächst mal mit DB connecten, etc...

PHP:
<select name="items" id="items">
        <option value="#">Bitte wählen</option> 
        <?
         $sql="SELECT * FROM products_db WHERE Eigenschaften LIKE '$size' ORDER BY Produktname ASC";
	 $result=mysql_query($sql);
	
		while($zeile = mysql_fetch_array($result)){
	?>
               <option value= <? echo $zeile['id']; ?>"><?php echo $zeile['Produktname'];
		?></option>
                <?
		}
		?>

Die id wird anstatt 1,2,3,4,5 mit 1/" oder 2/" oder 3/",etc... ausgegeben.
In der Datenbank ist sie aber als INT angelegt.

Was kann da bloß sein?

Danke im Voraus!
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
hallo…
könnte an einem fehlendem Hochkomma in dieser Zeile hier liegen:
Code:
<option value=[COLOR="Red"]"[/COLOR]<? echo $zeile['id']; ?>"><?php echo $zeile['Produktname'];
 

fealXX

Granny Smith
Registriert
05.02.08
Beiträge
15
Code:
 <select name="items" id="items">
        <option value="#">Bitte wählen</option> 
        <?
         $sql=[COLOR=Red]'[/COLOR]SELECT * FROM products_db WHERE Eigenschaften LIKE [COLOR=Red]`'.addslashes([/COLOR]$size[COLOR=Red]).'`[/COLOR] ORDER BY Produktname ASC[COLOR=Red]'[/COLOR];
     $result=mysql_query($sql);
 
        while($zeile = mysql_fetch_array($result)){[LEFT][COLOR=Red]echo'[/COLOR]<option value=[COLOR=Red]"'.[/COLOR]$zeile['id'][COLOR=Red].'[/COLOR]">[COLOR=Red]'.[/COLOR]$zeile['Produktname'][COLOR=Red].'[/COLOR]</option>[COLOR=Red]';[/COLOR]
[/LEFT]
         }
        ?>
erzähl ma obs so geht
ansonsten hab ich noch ne andere idee
 

newmacuser24

Antonowka
Registriert
27.12.05
Beiträge
355
Vielen Dank! Hab die Lösung von creative7even ausprobiert und hat sofort geklappt. War das fehlende Hochkomma. Da schätzt man dann wieder die Programmiersprachen, die eine SYNTAX ERROR ausgeben ;)
 

creative7even

Jerseymac
Registriert
23.02.05
Beiträge
454
…Da schätzt man dann wieder die Programmiersprachen, die eine SYNTAX ERROR ausgeben ;)

Sei froh dass keine Syntax-Error ausgeworfen werden. Da würden man beim Surfen durchs www einen Schreikrampf bekommen. Für validen HTML-Code gibt es den Validator: http://validator.w3.org/. Der würde bspw. auch fehlende Hochkomma finden.

Und noch was:
Die SQL-Statements benötigen noch etwas Aufmerksamkeit (SQL-Injection):
Code:
$query = sprintf("select * from products_db where Eigenschaften like '%s' order by Produktname ASC", mysql_real_escape_string($size));
$result = mysql_query($query);

such mal nach "mysql_real_escape_string" im php-Manual.

lg.c7