php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 18.04.2009, 00:53  
Benutzer
 
Registriert seit: 11.03.2009
Beiträge: 32
oomworld befindet sich auf einem aufstrebenden Ast
Standard pro Benutzer eine Tabelle mit Feldern

Hallo liebe Community wieder hat mich das Programmierfieber gepackt und wieder stolpere ich über ein paar Hindernisse =S..

Ich möchte das wenn sich jemand registriert ( er gibt nur einen Namen ein, das reicht für meine Zwecke. Dann wird neben dem "User" auch eine Tabelle angelegt z.B. "Tabelle CDs" und in dem der Tabelle " Interpret etc.. "
den Code habe ich auch bereits unten fertisgestellt.

Eigentlich geht der Code ja, aber es wird immer die gleiche Tabelle erzeugt, egal wie viele sich registrieren.

Meine Frage: Wie bekomme ich das hin, so das er pro Benutzer eigene Tabellen und Felder anlegt die nur für diesen Benutzer gelten.

Das heist wenn er sich einloggt werden nur seine CDs angezeigt.

Meine vorstellung wie es klappen könnte: vlt. tuhe ich den Username für jede Tabelle und Feld davor definieren (aber wie mach ich das ?) mit Variablen?

LogIn Script sieht so aus bei mir..
PHP-Code:
<?php
session_start
(); 


$db mysql_connect();
@
mysql_select_db("meinedb"$db);


$sql "SELECT * FROM username WHERE (user like '$cdusername')";
$result mysql_query ($sql$db);

if (
mysql_num_rows ($result) > 0) {

   
$datenrichtig true;


   
$user_eingeloggt true;
}
else {

$datenrichtig false;


$user_eingeloggt false;
}



session_register("user_eingeloggt");
?>

<html>
<head>
      <?php if ($datenrichtig) { ?>
      <meta http-equiv="Refresh" content="2; url=startseite.php?<?=session_name()?>=<?=session_id()?>">
      <?php ?>
</head>

<body>
<?php

if ($datenrichtig) {
   echo 
"Log in Erfolgreich. Sie werden weitergeleitet...";
}
else {
     echo 
"Die Daten waren falsch.";
}

?>
</body>
</html>


PHP-Code:
<?php
   
if ($gesendet)
   {
      
$db mysql_connect();

      
$sqlab "insert username";
      
$sqlab .= "(user) values ";
      
$sqlab .= "('$cdusername')";

      
mysql_db_query("meinedb"$sqlab);

      
$num mysql_affected_rows();
      if (
$num>0)
 echo 
"Ihr Account wurde eingerichtet<p>";
      else
      {
         echo 
"Error, ";
         echo 
"no MySQL connection<p>";
      }
      
mysql_close($db);
   }
PHP-Code:
mysql_query("CREATE TABLE cds (
id int(255) NOT NULL auto_increment,
interpret varchar(100) NOT NULL,
titel varchar(100) NOT NULL,
PRIMARY KEY (id) );"
);
mysql_close(); 
Ich bedanke mich im Vorraus für eure Hilfestellungen.

Mit freundlichen Grpüßen
euer oomworld
oomworld ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 18.04.2009, 03:16  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

klar wird immer die gleiche Tabelle erstellt wenn du ihr immer den gleichen Namen gibts

aber warum für jeden User eine Tabelle, wenn du Datensätze in den Tabellen per ID's Usern zuordnen kannst?

http://de.wikipedia.org/wiki/Normalisierung_(Datenbank)
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline  
Alt 18.04.2009, 10:03  
Benutzer
 
Registriert seit: 11.03.2009
Beiträge: 32
oomworld befindet sich auf einem aufstrebenden Ast
Standard

vielen Dank für deine rasche Antwort moveax1 ,

leider muss ich dir sagen das ich deine Antwort nicht ganz verstehe, deinen Link habe ich zwar beachtet und gelesen aber ich verstehe trotzdem nicht wie ich das programmieren soll.

Ich möchte weiterhin das wenn ich auf "Registrieren" klicke das diese Tabelle mit den vorgegebenen Feldern erstellt werden.

Ich hänge nur dabei ihm zu sagen der er immer die tabelle je nach benutzer erstellt also "Benutzername+Tabellenname" oder "Id+Tabellenname"

vielen Dank für eure Hilfen !
euer oomworld
oomworld ist offline  
Alt 18.04.2009, 10:24  
Benutzer
 
Benutzerbild von Shouted
 
Registriert seit: 16.04.2009
Beiträge: 40
Shouted befindet sich auf einem aufstrebenden Ast
Shouted eine Nachricht über ICQ schicken Shouted eine Nachricht über MSN schicken Shouted eine Nachricht über Skype™ schicken
Standard

Wie moveax1 bereits gesagt hat reicht es doch wenn Du eine Tabelle hast. Du hast in der Tabelle die Spalten, für dein Beispiel jetzt, 'CDs' und 'username' bzw. 'userID'. Später kannst Du dann beim Auslesen der Daten einfach mit einere WHERE-Klausel im mysql_query() die zum username gehörenden CDs ausgeben lassen.

Für jeden User eine eigene Tabelle zu erstellen ist in meinen Augen ziemlich sinnfrei und nimmt unnötigerweise Platz in der Datenbank weg.

Grüsse
Shouted ist offline  
Alt 18.04.2009, 10:44  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

Ich würde sogar 2 Tabellen nehmen, da jeder User mehrere CD's haben könnte:

User:
User_ID | Username | Email

CDs:
CD_ID | CD_Name | Erscheinungsjahr | User_ID

Wenn man will kann man das beliebig fortsetzen:

Interpreten:
Interpret_ID | Interpret_Name | CD_ID
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline  
Alt 18.04.2009, 10:57  
Benutzer
 
Benutzerbild von Shouted
 
Registriert seit: 16.04.2009
Beiträge: 40
Shouted befindet sich auf einem aufstrebenden Ast
Shouted eine Nachricht über ICQ schicken Shouted eine Nachricht über MSN schicken Shouted eine Nachricht über Skype™ schicken
Standard

Ja wenn du zu den CDs noch zusätzliche Informationen hast bietet sich das wirklich an. Aber sonst kannst du die CDs ja einfach in der Tabelle z.B. mit einem Komma trennen und später bei der Ausgabe wieder mit explode schneiden lassen.

moveax1 hat aber wirklich die elegante Version wenn du noch mehrere Daten dazu brauchst.

Es führen bekanntlich ja viele Wege nach Rom

Grüsse
Shouted ist offline  
Alt 18.04.2009, 11:07  
Erfahrener Benutzer
 
Registriert seit: 27.09.2008
Beiträge: 316
PHP-Kenntnisse:
Fortgeschritten
moveax1 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Shouted Beitrag anzeigen
Ja wenn du zu den CDs noch zusätzliche Informationen hast bietet sich das wirklich an. Aber sonst kannst du die CDs ja einfach in der Tabelle z.B. mit einem Komma trennen und später bei der Ausgabe wieder mit explode schneiden lassen.
Ich würde von Anfang an ohne explode arbeiten wollen. Wer weiss was für Informationen man später dem Script noch hinzufügen muss.
Wenn man später was am Tabellen Layout ändern muss, hat man mehr Probleme, als wenn man von Anfang an vernünftigt normalisiert hat.
__________________
twitter.com/moveax1 || http://modxcms.com/ || http://ubuntuusers.de/

$live->free() OR die();
moveax1 ist offline  
Alt 18.04.2009, 11:33  
Benutzer
 
Benutzerbild von Shouted
 
Registriert seit: 16.04.2009
Beiträge: 40
Shouted befindet sich auf einem aufstrebenden Ast
Shouted eine Nachricht über ICQ schicken Shouted eine Nachricht über MSN schicken Shouted eine Nachricht über Skype™ schicken
Standard

Das ist natürlich auch wieder wahr! Sollte ja lediglich ein Lösungsvorschlag sein, sofern er es mit einer Tabelle lösen möchte. Aber da er ja so oder so im Moment versucht mehrere Tabellen zu benützen bietet sich Deine Methode wirklich besser an

Grüsse
Shouted ist offline  
Alt 19.04.2009, 13:53  
Benutzer
 
Registriert seit: 11.03.2009
Beiträge: 32
oomworld befindet sich auf einem aufstrebenden Ast
Standard

vielen Dank Shouted und moveax1, euer Rat war am Ende doch sehr hilfreich

Mit freundlichen Grüßen
euer oomworld
oomworld ist offline  
 


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] Daten in der Tabelle mit x Feldern ändern bigtofa PHP Tipps 2009 7 04.02.2009 12:55
[Erledigt] Ab welcher Anzahl von Feldern in einer Tabelle (DB) ist eine Classe kontra Technikus PHP Tipps 2008 57 29.10.2008 15:16
where Abfrage in anderer Tabelle?? Matthiasnet Datenbanken 10 11.04.2007 17:35
Zeilenanzahl einer tabelle mit WHERE aber ohne schleife? sovereign Datenbanken 13 17.04.2006 20:34
[Erledigt] Problem mit dem Füllen einer Tabelle über Formular PHP Tipps 2006 18 10.01.2006 12:51
Problem mit Anzeige einer Tabelle mit dem Firefox? HTML, Usability und Barrierefreiheit 8 28.11.2005 15:08
[Erledigt] Tabelle aktualisieren Datenbanken 3 23.11.2005 09:54
[Erledigt] Problem mit mySQL Datenbanken 7 27.09.2005 12:06
[Erledigt] Daten aus mehreren Tabellen holen Datenbanken 0 19.09.2005 17:14
[Erledigt] mysql abfrage über 4 Tabelle - bis 3 geht, bei der 4. habert Datenbanken 2 08.09.2005 11:59
[Erledigt] Komplizierte Suchen in 2 Feldern Datenbanken 3 01.09.2005 09:58
tabelle in tabelle ohne aussenrand noskule HTML, Usability und Barrierefreiheit 6 25.08.2005 14:17
Tabelle in Tabelle ausrichten HTML, Usability und Barrierefreiheit 7 03.01.2005 14:32
mehrere Benutzer arbeiten an einem Datensatz ajo_silent Datenbanken 6 20.11.2004 13:52
HILFE: Column count doesn't match value count at row 1 Datenbanken 17 12.06.2004 16:45

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
mysql pro user eine tabelle, login tabellen, jeder user eigene tabelle datenbank, mysql tabelle pro user, tabelle in feldern, benutzernamen tabelle, felder user tabelle, moveax1, php user tabelle, php datenbank pro user, mysql tabelle pro nutzer, php datenbank benutzerverwaltung tabellen, tabelle in datenbank pro user, eine mysql tabelle pro user, user php table, php pro user eine datenbank, php benutzer viele tabellen, für jeden nutzer eigene tabelle, jeder user eine eigene tabelle? mysql, mysql eine tabelle pro user

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:38 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