Beiträge von Augustus

    Update:

    Das funktioniert aber nur solange bis 2x der gleiche Städename über das Formular reinkommt, dann hängt sich das ganze auf ?!


    Wo hast Du denn $_POST['idstadt'] her? Die kann doch im Formular gar nicht bekannt sein...

    Stimmt, korrigiert, jetzt werden beide Tabellen befüllt aber in der Tabelle anmeldung Spalte idstadt habe ich jetzt den Stadtnamen z.B. Genf und in der Tabelle staedte Spalte stadt auch. Bin ich zu blöd ??

    Hier meine komplette Versuchsanordnung, in dieser Konfiguration wird nur immer die Tabelle staedte gefüllt, anmeldung bleibt leer, Fehlermeldung erfolgt keine !


    Sorry Schreibfehler, mein Error-Reporting ist an, meldete kein Fehler, Schreibfehler korrigiert, funzt trotzdem nicht, befüllt nur eine Tabelle wenn die Relation aktiv ist ( Primär und Sekundärschlüssel )

    Update:

    ich verwende MySqli


    Was momentan funktioniert mit MySqli ist natürlich die Datenbankverbindung und dann z.B. für zwei Tabellen die Statements mit den Values hintereinander ( Stmt1,Stmt2 usw.). In der Tabelle mit dem Primärschlüssel ( das Feld Stadt ) ist als Unique Feld definiert, so dass keine doppelten Einträge vorkommen können.


    Was nicht funktioniert ist, sobald ich die Verknüpfung erstelle ( mit Designer Primär und Sekundärschlüssel ), werden nicht mehr beide Tabellen befüllt , egal welche zuerst angesprochen wird ! Warum ?


    Damit ich Anfänger es richtig Verstehe, das heisst wenn jetzt alles funktionieren würde, dass die ID oder Wert vom Primärschlüssel im Sekundärschlüssel nicht automatisch durch Sql eingefügt wird ?


    Vielen Dank für eure Antworten,

    also an Stef, mit einer geschickten Googleanfrage findest auch du manigfaltige Antworten betreffend INSERT INTO in mehrere Tabellen.


    Nur meine Frege ist wie wird es korrekt gemacht ?


    Ein kleines Beispiel:


    1 Datenbank mit 2 Tabellen, Datenbankname sagen wir Adressenverwaltung


    Name adressen,

    Felder:

    ID, vorname, nachname,id_ stadt



    2. Tabelle

    Name stadt,

    Felder:

    id_stadt, stadt


    id_stadt der Tabelle stadt ist der Primärschlüssel

    id_stadt der Tabelle adressen ist der Sekundärschlüssel


    Die eingaben kommen von einem Formular via POST und sollen nun mit PHP und MySql in die Datenbank.


    Wie sieht nun die Anweisung aus ?


    INSERT INTO adressen...........und wie geht es dann weiter, so dass beide Tabellen befüllt werden ?


    Geht das mit einem INSERT INTO aufruf ? Braucht es 2 hintereinander ? Wie geht das korrekt ?

    Hallo Forum,


    auf der 3. CD des PHP Kurses wird sehr schön erklärt wie man eine Datenbank plant, atomisiert, normalisiert und wie verschiedene Tabellen angelegt werden die in einer Beziehung zu einander stehen ( Primär und Sekundärschlüssel ).

    Was ich aber nicht gefunden habe, wie man mit MySql und PHP solche Tabellen füllt oder ausliest (mehrere Tabellen in der Datenbank), sprich INSERT INTO oder SELECT FROM . Mit einer Tabelle in der Datenbank alles kein Problem ! Ich habe im Netz geforscht und verschiedenste Kommentare gelesen, bin mir aber nicht wirklich sicher was korrekt ist ?

    Meine Frage, wie wird das korrekt gemacht ?


    Um eure Hilfe bedanke ich mich im voraus :thumbup:


    A.Meier

    Lösung gefunden, so funktioniert es :



    Vielen Dank euch allen für die Tipps und Mithilfe !

    Du bist der GRÖSSTE, komm her und lass dich küssen oder so !


    Nur ausserhalb vom PHP - Bereich funktioniert das suuuuper, aber wie muss ich das wiedergeben innerhalb von PHP ? Bin schon halb irre geworden mit dem Problem......... :thumbsup: :thumbsup: :thumbsup:


    HTML
    1. <img src="data:image/jpeg;base64,<?php echo base64_encode($row['Bilddaten']); ?>" />

    Also auf die Gefahr hin ,das ich mich hier zum Affen mache, ist es doch so, und korrigiert mich wenn ich falsch liegen sollte.


    Um ein Bild vom eigenen Computer auf einen Server hochzuladen benötigt man den Input Type file , mit dem man die Bilddatei auf dem eigenen Computer auswählen kann.

    Mit normalen HTML-Formularen kann man nicht nur Textinformationen, sondern auch Binärdaten an einen Webserver verschicken. Dazu muss lediglich in das Tagdas zusätzliche Attribut enctype="multipart/form-data" aufgenommen werden und das Formular ein Eingabefeld vom Typ file bekommen. Das erzeugt dann bei der Darstellung die typische Kombination aus einem Feld für den Namen einer lokalen Datei und dem Button Durchsuchen, um die Datei bequem ansteuern zu können. Schickt man das Formular ab, werden die Daten von PHP in einer temporären Datei auf dem Server gespeichert und die Systemvariable $_FILE enthält alle notwendigen Informationen, um die empfangenen Daten auszuwerten, wie etwa den Namen der temporären Datei oder den MIME-Typ der Datei, den der Browser zur Identifizierung mitschickt.
    Das heisst für mich, es sind eh Binärdaten die die hochgeladen werden, egal mal wo ich denn die Speichere auf dem Server, die dann ebenfalls zur Anzeige wieder umgewandelt werden müssen, also betreffend Rechenleistung dürfte das auf das selbe rauskommen betreffend Serverlast und/oder Rechenleistung. Ob die Binärdaten aus einer Datenbank ausgelesen werden oder aus einem Ordner, denke ich, dürfte kein grosser Unterschied bestehen oder ?
    Mein Problem liegt im Moment darin, die hochgeladenen Binärdaten in die Datenbank, als Bild wieder rauszubekommen, was mit echo in PHP problemlos klappt. Was nicht funktioniert im Moment, die Datei innerhalb einer Tabledatazelle wird nicht als Bild sonder als Binärcode angezeigt. Wieso funktioniert es mit echo und innerhalb einer Tabellenkostruktion nicht ? Eine echte Herausforderung ? ?( ?( ?(

    Hallo Cotton,
    du bist mir schon symphatisch, genau es ist eine Herausforderung, der man sich stellen muss.


    Das Bildformat habe ich berücksichtigt, es ist ein jpeg Bild. Ich sehe nicht ein, warum man Bilder nicht in der Datenbank speichern soll, wozu gibt es dann die BLOB - Felder, also ist davon auszugehen, dass die Datenbank und Server damit klarkommen, wäre ja sonst unsinnig.Bei 3000 Bildern und mehr in einem Dateisystem mit verlinkungen, ich weiss nicht. Ich werde mal deinen Anweisungen folgen und sehen was dabei rauskommt, melde mich dann wieder, danke vorerst mal !

    Ich gestehe, ich bin nicht der Forumprofi.......sorry, mein vorrangiges Problem ist das es nur in Binärdaten ausgegeben wird und nicht als Bild.Warum sollte man Bilder nicht direkt in der Datenbank speichern ? Ob sie in einer Datei sind auf dem Server oder in der Datenbank direkt sehe ich im Moment keine Vor oder Nachteile, aber vielleicht kommt das noch............

    Das Bild kommt über Input type File in die Datenbank, die Bilder müssen Serverseitig gespeichert sein, wegen dem Zugriff.



    <!DOCTYPE html>
    <html>


    <head>
    <title>Bildupload</title>


    <meta charset="UTF-8">
    <meta name="description" content="">
    <meta name="author" content="">
    <meta name="keywords" content="">
    <meta name="generator" content="Webocton - Scriptly (www.scriptly.de)">


    </head>


    <body>




    <?php



    mysql_connect("localhost","root","........");
    mysql_select_db("versuchsdatenbank");




    if (array_key_exists('Bild',$_FILES))


    {
    $bilddaten = $_FILES['Bild']['tmp_name'];
    $datenoffen = fopen($bilddaten,"r");
    $daten = addslashes(fread($datenoffen,filesize($bilddaten)));
    $befehl = "INSERT INTO bilder
    (
    Bilddaten
    )
    VALUE
    (


    '$daten'



    )
    " ;



    if (!mysql_query($befehl))


    die (mysql_error());



    }



    ?>


    <form name="bilder" action="bilder.php" method="post" enctype="multipart/form-data">



    <input type="file" name="Bild" value="" size="20" maxlength="50" />
    <input type="submit" name="send" value="Send" />



    </form>
    </body>
    </html>

    Haut irgendwie nicht hin ?


    Das merkwürdige ist wenn ich das Array vor der Tabelle mit echo anzeigen lasse, erscheint ordnungsgemäss das Bild, aber die Tabelle nachher wird nicht gezeichnet.


    Umgekehrt, lass ich das Array vor der Tabelle nicht mit echo ausgeben, sondern erst innerhalb Tabledata, wird die Tabelle gezeichnet aber das Bild erscheint als Binärcode innerhalb Tabledata ?(

    Hallo Forum,


    ich habe folgendes Problem:


    In meiner Datenbank in einem BLOB-Feld sind die Binärdaten eines Jpeg - Bildes abgespeichert.


    Beim Auslesen aus der Datenbank lass ich mir die Daten mit echo Anzeigen, das Bild erscheint, so weit so gut.


    Lass ich mir mit PHP eine Tabelle zeichnen und füge bei Tabledata die gleichen Angaben ein wie ich sie mit echo ohne Tabelle ausgeben lasse, erscheint nur der Binärcode.


    Wer weiss Rat ?


    Hier der PHP-Code:



    [code=php]


    <?php



    mysql_connect("localhost","root",".....");
    mysql_select_db("versuchsdatenbank");
    $db = mysql_query("SELECT Bilddaten, Beschreibung FROM bilder ");
    $ausgelesen = mysql_fetch_array($db);



    echo "<table border='1'>";


    echo "<tr>";


    echo "<td>";


    echo $ausgelesen['Bilddaten'] ;


    echo "</td>";


    echo "<td>";


    echo $ausgelesen['Beschreibung'] ;


    echo "</td>";


    echo "</tr>";


    echo "</table>";


    [/PHP]


    Für Hilfe, besten Dank im voraus............

    Hallo Basi,


    also Anstand und Freundlichkeit kosten bei uns in Zürich nichts !


    Das ich ein entstehendes Projekt nicht einfach in einem Forum preisgebe ohne Absicherung, sollte verständlich sein, auch für dich.
    Da du nicht wissen kannst um was es geht sind abschätzige Bemerkungen deinerseits absolut nicht angebracht und wenn euch das gratis Arbeiten im Forum zu viel Mühe macht weil ein nicht forumgeübtes Mitglied halt den falschen Button verwendet hat, dann lass es doch und tu was womit du Geld verdienst ! kommt dazu das niemand zu etwas gezwungen wird, wenns euch /dich nicht intressiert lasst es, kein Problem, du bist nicht die Welt !