tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
668
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Chris-P Chris-P ist offline Rookie
    Registriert seit
    Jun 2008
    Beiträge
    8
    Hallo zusammen

    Ich bin Anfänger in Sachen php und mysql und steh da vor einem kleinen Problem das ich einfach ned hinbekomm

    Und zwar möchte ich mit folgendem Script nach absenden eines Registrierungsformulars eine Tabelle erstellen.

    PHP-Code:
    $sql 'CREATE TABLE Tabelle2 ( `id` mediumint( 8 ) NOT NULL AUTO_INCREMENT ,'
            ' `Spalte1` varchar(30 ) NOT NULL default \'\','
            ' `Spalte2` varchar( 30) NOT NULL default \'\','
            ' `Spalte3` varchar( 40 ) NOT NULL default \'\','
            ' PRIMARY KEY ( `id` ) ) TYPE = MYISAM AUTO_INCREMENT =2'
    ;

    $result=mysql_query($sql);

    $sql='INSERT INTO Tabelle2 VALUES("Text1", "Text2", "Text3")';
    $result=mysql_query($sql); 
    Nun kommt mein eigentliches Problem. Der Name der zu erstellenden Tabelle2 soll aus dem Wert Spalte uid einer weiteren Tabelle1 ermittelt werden.

    Wie mache ich das? Wär nett wenn mir jemand mein Script umschreiben könnte so wie das dann letztendlich funktioniert.

    Ich sag schonmal im Voraus Danke
     

  2. #2
    Patrick Oberlies Patrick Oberlies ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Frankenberg
    Beiträge
    60
    PHP-Code:
    $sql 'SELECT name FROM Tabelle1 WHERE uid='.$uid.''// In die Variable $uid musst du vorher nur schreiben welche uid du haben willst

    $result=mysql_query($sql);

    $sql1 'CREATE TABLE '.$result['name'].' ( `id` mediumint( 8 ) NOT NULL AUTO_INCREMENT ,'
            ' `Spalte1` varchar(30 ) NOT NULL default \'\','
            ' `Spalte2` varchar( 30) NOT NULL default \'\','
            ' `Spalte3` varchar( 40 ) NOT NULL default \'\','
            ' PRIMARY KEY ( `id` ) ) TYPE = MYISAM AUTO_INCREMENT =2'
    ;

    $result1=mysql_query($sql1);

    $sql2='INSERT INTO Tabelle2 VALUES("Text1", "Text2", "Text3")';
    $result2=mysql_query($sql2); 
    Ich hab den Code nicht getestet, sollte aber so funktionieren.
     

  3. #3
    Chris-P Chris-P ist offline Rookie
    Registriert seit
    Jun 2008
    Beiträge
    8
    danke schonmal für deine antwort...

    jetz hatte ich einen kleinen denkfehler.. sorry...

    der Name der zu erstellenden Tabelle soll sich aus Tabelle und der Session-ID des eingeloggten Users zusammensetzen. Und nicht wie geschrieben aus einer uid einer anderen Tabelle.

    Also wenn die Session-ID 01 ist sollte die neue Tabelle Tabelle01 heissen..

    Da ich die Session-ID erst nach einem Login bekomme, muss ich das Script zum Erstellen dieser Tabelle an anderer Stelle ausführen.. Aber das macht ja nix...

    Kannst du mir da auch weiterhelfen
     

  4. #4
    Patrick Oberlies Patrick Oberlies ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Frankenberg
    Beiträge
    60
    Willst du wirklich jedes Mal bei einer anderen session_id eine neue Tabelle erstellen? Das wird mit der Zeit ziemlich unübersichtlich.

    So sollte es funktionieren:
    PHP-Code:
    $sid $_GET['sid']; //Wenn du die Session_id an die Url angehängt hast

    // Wenn noch keine sid vorhanden ist kannst du folgendes machen

    if ($sid == '')
    {
      
    $sid get_sid();
    }

    $sql 'CREATE TABLE Tabelle'.$sid.' ( `id` mediumint( 8 ) NOT NULL AUTO_INCREMENT ,'
            ' `Spalte1` varchar(30 ) NOT NULL default \'\','
            ' `Spalte2` varchar( 30) NOT NULL default \'\','
            ' `Spalte3` varchar( 40 ) NOT NULL default \'\','
            ' PRIMARY KEY ( `id` ) ) TYPE = MYISAM AUTO_INCREMENT =2'
    ;

    $result=mysql_query($sql1);

    $sql1='INSERT INTO Tabelle2 VALUES("Text1", "Text2", "Text3")';
    $result1=mysql_query($sql1); 
     

  5. #5
    Chris-P Chris-P ist offline Rookie
    Registriert seit
    Jun 2008
    Beiträge
    8
    es geht um folgendes...

    ich plane ein votingsystem bei dem für jeden user eine votingseite erstellt wird. Und dafür möchte ich die Votingtabellen für den einzelnen user automatisch erstellen...

    Ich weiß sonst keine möglichkeit wie ich das sonst lösen könnte.

    hättest du eine idee?
     

  6. #6
    Patrick Oberlies Patrick Oberlies ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Frankenberg
    Beiträge
    60
    Soll es für jeden User gleich aussehen?

    Du brauchst nur eine einzige Datenbank für alle User.
    PHP-Code:
    $sql 'CREATE TABLE Vote_User ( `id` mediumint( 8 ) NOT NULL AUTO_INCREMENT ,'
            ' `uid` int(3 ) NOT NULL default \'\','
            ' `Spalte1` varchar(30 ) NOT NULL default \'\','
            ' `Spalte2` varchar( 30) NOT NULL default \'\','
            ' `Spalte3` varchar( 40 ) NOT NULL default \'\','
            ' PRIMARY KEY ( `id` ) ) TYPE = MYISAM AUTO_INCREMENT =2'
    ;

    $result=mysql_query($sql1); 
    In das Feld uid musst du nur immer die Userid eintragen.
     

  7. #7
    Chris-P Chris-P ist offline Rookie
    Registriert seit
    Jun 2008
    Beiträge
    8
    jeder user bekommt eine seite auf dem er sich vorstellen kann und dann soll jeder andere user über schaltflächen einfach nur ja oder nein voten können...

    und jeder user darf nur einmal voten...
     

  8. #8
    Patrick Oberlies Patrick Oberlies ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Frankenberg
    Beiträge
    60
    Dann brauchtst du 2 Tabellen: Eine in der jeder User eingetragen ist und wo die Anzahl der Ja's und Nein's steht und eine wo steht welcher User bereits abgestimmt hat.
    Tabelle 1 wo jeder User drin steht und die Anzahl der Votes für Ja und der Votes für Nein stehen:
    PHP-Code:
    $sql 'CREATE TABLE Vote_User ( `id` mediumint(8) NOT NULL AUTO_INCREMENT ,'
            ' `uid` int(3) NOT NULL default \'\','
            ' `Ja` int(5) NULL default \'\','
            ' `Nein` int(5) NULL default \'\','
            ' PRIMARY KEY ( `id` ) ) TYPE = MYISAM AUTO_INCREMENT =2'

    In id steht die Id des Eintrags, in uid die Id des Users, in dem Feld Ja steht die Anzahl der Votes für Ja und in Feld Nein steht die Anzahl der Votes für Nein. Du musst da dann einfach bei einem entsprechendem Vote 1 addieren.

    Die zweiter Tabelle in der die User für einen anderen User voten:
    PHP-Code:
    $sql 'CREATE TABLE User_Vote ( `id` mediumint(8) NOT NULL AUTO_INCREMENT ,'
            ' `uid` int(3) NOT NULL default \'\','
            ' `fuid` int(3) NOT NULL default \'\','
            ' `vote` varchar(4) NULL default \'\','
            ' PRIMARY KEY ( `id` ) ) TYPE = MYISAM AUTO_INCREMENT =2'

    id ist die Id des Eintrags, uid die Id des Users der gevotet hat, fuid ist die Id von dem User für den gevotet wird und in vote steht drin wie der Spieler gevotet hat, also entweder Ja oder Nein.

    Hoffe das hilft dir.
     

  9. #9
    Chris-P Chris-P ist offline Rookie
    Registriert seit
    Jun 2008
    Beiträge
    8
    hey danke hört sich sehr gut an

    jetz noch eine frage...

    wie lautet dann der code für die Abfrage ob ein user schon gevotet hat oder ned

    könntest mir den auch sagen
     

  10. #10
    Patrick Oberlies Patrick Oberlies ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Frankenberg
    Beiträge
    60
    PHP-Code:
    $user $_GET['user']; 

    $sql mysql_query("SELECT fuid FROM User_Vote WHERE uid = ".$uid.""); //uid ist die Userid des Users der Voten will 

    if ($sql != $user) {
        
    noch nicht gevotet
    } else {
        
    schon gevotet

    In der If Anweisung musst du nur noch das entsprechende einbinden. Also entweder das Formular zum Voten oder einen Text der sagt das bereits für den User gevotet wurde.
     

  11. #11
    Chris-P Chris-P ist offline Rookie
    Registriert seit
    Jun 2008
    Beiträge
    8
    Super... dankeschön

    Dann werd ich mich mal ans Werk machen und falls ich noch fragen hab meld ich mich nochmal
     

  12. #12
    Patrick Oberlies Patrick Oberlies ist offline Mitglied Silber
    Registriert seit
    May 2008
    Ort
    Frankenberg
    Beiträge
    60
    Falls du noch Fragen oder Probleme hast benutz aber erst die Suchfunktion und sieh mal bei Google nach. Oft findet man da schon genug hilfreiche Beiträge bzw. Seiten.
     

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 02.06.10, 12:52
  2. Abfrage einer spalte von einer anderen tabelle
    Von bcallifornia im Forum Relationale Datenbanksysteme
    Antworten: 1
    Letzter Beitrag: 02.11.05, 19:06
  3. Antworten: 8
    Letzter Beitrag: 28.10.05, 22:08
  4. Inhalt aller Felder einer Spalte aus einer Tabelle rauslesen
    Von messmar im Forum Relationale Datenbanksysteme
    Antworten: 3
    Letzter Beitrag: 12.01.05, 15:17
  5. menge einer Spalte in einer Tabelle auslesen
    Von Spacejumper im Forum PHP
    Antworten: 9
    Letzter Beitrag: 15.12.04, 12:25