Problem mit einer Datenbank

  • Hiho. Ich bin noch ziemlich neu in Sachen PHP und MySQL und ich hab da ein Problem wo ich nu schon seit Stunden dran hänge :/

    folgendes Skript:
    <?php
    session_start();
    ?>

    <?php
    if(!isset($_SESSION['name']))
    {
    echo "Bitte erst <a href=\"login.html\">einloggen</a>";
    exit;
    }
    ?>
    <?php
    $verbindung = mysql_connect("localhost", "shiroto" , "***") // Passwort hab ich hier jetzt einfach mal durch Sternchen ersetzt xD
    or die("Verbindung zur Datenbank konnte nicht hergestellt werden");

    mysql_select_db("user") or die ("Datenbank konnte nicht ausgewählt werden");

    $name = $_POST['name'];

    if($name == "")
    {
    echo "Bitte Namen eingeben. <a href=\"createchar.php\">Zurück</a>";
    exit;
    }

    $sessionname = $_SESSION['name']; // hier nimmt er den namen der session und greift damit auf den eintag in der DB zu; funktioniert (habs mit echo $sessionname kontrolliert)
    $id = mysql_query("SELECT id FROM uuser WHERE name LIKE '$sessionname'"); // bis hier _scheint_ alles soweit zu funktionieren

    $eintrag = "INSERT INTO char (id, name) VALUES ('$id', '$name')"; // hier vermute ich den Fehler
    $eintragen = mysql_query($eintrag);

    if($eintragen == true)
    {
    echo "Benutzername <b>$name</b> wurde erstellt. <a href=\"http://localhost/\">index</a>";
    }
    else
    {
    echo "Fehler beim Speichern des Benutzernames. <a href=\"createchar.php\">Zurück</a>";
    }
    ?>

    in fact: ich bekomme immer die Fehlermeldung "Fehler beim Speichern des Benutzernamens"
    Er soll eigentlich nur den Namen der vorher von einem Formular(richtig) übergeben wurde und die ID die er aus einer anderen DB (uuser) kopiert in die DB char schreiben...
    aber er tuts nicht und ich weiß nich warum. kann mir einer helfen?._.

  • PHP
    $id = mysql_query("SELECT id FROM uuser WHERE name LIKE '$sessionname'"); // bis hier _scheint_ alles soweit zu funktionieren
    
    
    $eintrag = "INSERT INTO char (id, name) VALUES ('$id', '$name')"; // hier vermute ich den Fehler


    Da vermutest du in gewisser Hinsicht richtig.

    Setze mal zwischen diese beiden Zeilen noch ein bißchen was zwischen:

    PHP
    $id = mysql_query("SELECT id FROM uuser WHERE name LIKE '$sessionname'"); // bis hier _scheint_ alles soweit zu funktionieren
    $row = mysql_fetch_array($id);
    $id = $row['id'];
    $eintrag = "INSERT INTO char (id, name) VALUES ('$id', '$name')"; // hier vermute ich den Fehler


    Dann hast du das was du möchtest.

  • danke für die hilfe aber es funktioniert immernoch nicht oo
    aber vielleicht könntest du mir trotzdem erklären was das nu genau bewirkt hat?

  • Und täglich grüßt das Murmeltier :(

    ... mysql_query(...) or die ("MySQL-Fehler: " . mysql_error());

    Dann verrät dir MySQL, was da nicht stimmt.

  • yeah "you have an error in your SQL syntax" - da wär ich nie drauf gekommen.ich suche die ganze zeit nach dem fehler aber ich finde ihn nicht. deswegen bin ich hier oO"

  • Schade, mit der kompletten Fehlermeldung hätten wir vielleicht was anfangen können, aber so... :(

  • ok ich habe keinen syntaxerror.hab das ganze mit ner anderen tabelle versucht und es funktionierte.also muss es daran liegen dass ich aus irgendeinem grund nichts in die datenbank schreiben kann.mögliche fehlerquellen wären (nach meinem wissensstand) fehlende Rechte oder falscher Datentyp. an den rechten kanns nich liegen, da ich die tabelle mit dem selben admin account angelegt hab, zudem liegen beide in der selben datenbank.die tabelle sieht auch in beiden spalten (id und name) exakt gleich aus.und da php die datantypen selber festlegt kanns daran eigtl auch nich liegen....ich checks nich

  • Halllooooo??? Du schreibst doch selber

    "you have an error in your SQL syntax" - da wär ich nie drauf gekommen.


    Also bekommst du einen Fehler! Ich bin mir sicher, dass MySQL mehr als deine gepostete Fehlermeldung raushaut. Da du uns aber die komplette Fehlermeldung immer noch verschweigst, gehe ich kühn davon aus, dass du das Problem alleine lösen möchtest. Viel Erfolg....

  • ich habs! er hatte irgendein problem mit dem tabellennamen "char"..vielleicht sollt ich meinen tabellen nicht die selben namen wie existierenden datentypen geben..oO
    anyways: danke für die hilfe

  • es kam nichts weiter ôo da stand nur noch dass ich in irgendner faq nachsehn soll. hätte mir davon was weitergeholfen....ach is auch egal

  • Nee, ist eben nicht egal! Wenn du die Fehlermeldung komplett gepostet hättest, wäre man sofort auf das Problem gestoßen!