• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Prüf Formular.

Oki danke.

Ich arbeite gerade daran Bilder auf den Server hochzuladen mit php und den Datei Pfad in meiner db zu speichern das ich es anschliessend mit den anderen angaben wider abrufen kann.

Nun weiss ich jedoch nicht wie ich das anstellen soll :/

Mein bisheriger code für upload und eintragen in die DB:
PHP:
<?php
    $db = new mysqli('localhost','root','','protokol');
    
    if($db->connect_error):
        echo 'Verbindung Fehlgeschlagen';
    endif;
    
    if(isset($_POST['submit'])):
        $seriennummer     = $_POST['Serial-number-Text'];
        $object         = $_POST['Object'];
        $user             = $_POST['User'];
        $creator         = $_POST['Creator'];
    //Bilder Upload
        move_uploaded_file($_FILES["inside-Img"]["tmp_name"], "images/".$seriennummer."-Innen.jpg");
        move_uploaded_file($_FILES["top-Img"]["tmp_name"], "images/".$seriennummer."-Oben.jpg");
        move_uploaded_file($_FILES["plug-legend-img"]["tmp_name"], "images/".$seriennummer."-Stecker.jpg");
        move_uploaded_file($_FILES["Top-Bag-img"]["tmp_name"], "images/".$seriennummer."-Oben-mit-Stecker.jpg");
    //
    $absenden = $db->prepare("INSERT INTO kontrolliert (seriennummer,type,kontrolliert,gebaut,datum) Values(?,?,?,?,NOW())");
    $absenden->bind_param('iiss',$seriennummer,$object,$user,$creator);
    

    $absenden->execute();
        
    endif;


Mein code zum auslessen:
PHP:
    $db = new mysqli('localhost','root','','protokol');
    
    if($db->connect_error):
        echo 'Verbindung Fehlgeschlagen';
    endif;
    
$abfrage = $db->query("SELECT * From kontrolliert ORDER BY datum DESC");

while($ausgabe = $abfrage->fetch_object()){
    echo '
    <div class="content">
        <b>Gebaut am:</b>          '.$ausgabe->datum.'<br>
        <b>Seriennummer:</b>      '.$ausgabe->seriennummer.'<br>
        <b>Type:</b>              '.$ausgabe->type.'<br>
        <b>Kontrolliert von:</b> '.$ausgabe->kontrolliert.'<br>
        <b>Gebaut von:</b>          '.$ausgabe->gebaut.'<br><br><hr>
    </div>
         ';   
}
 
hatte so ne idee würdet ihr es anderst machen?

PHP:
$db = new mysqli('localhost','root','','protokol');
   
    if($db->connect_error):
        echo 'Verbindung Fehlgeschlagen';
    endif;
   
    if(isset($_POST['submit'])):
        $seriennummer     = $_POST['Serial-number-Text'];
        $object         = $_POST['Object'];
        $user             = $_POST['User'];
        $creator         = $_POST['Creator'];
        $innen            = "images/".$seriennummer."-Innen.jpg";
    //Bilder Upload
        move_uploaded_file($_FILES["inside-Img"]["tmp_name"], "images/".$seriennummer."-Innen.jpg");
        move_uploaded_file($_FILES["top-Img"]["tmp_name"], "images/".$seriennummer."-Oben.jpg");
        move_uploaded_file($_FILES["plug-legend-img"]["tmp_name"], "images/".$seriennummer."-Stecker.jpg");
        move_uploaded_file($_FILES["Top-Bag-img"]["tmp_name"], "images/".$seriennummer."-Oben-mit-Stecker.jpg");
    //
    $absenden = $db->prepare("INSERT INTO kontrolliert (seriennummer,type,kontrolliert,gebaut,innen,datum) Values(?,?,?,?,?,NOW())");
    $absenden->bind_param('iisss',$seriennummer,$object,$user,$creator,$innen);
   

    $absenden->execute();
       
    endif;


und wie kann ich das nun nicht als dateipfad sondern als bild widergeben?
 
Auch wenn die letzte Frage etwas anders ist als wie hier
solltest du es vieleicht in einen Thema belassen.
So wird das alles nur ein hin und her weil keiner weiß was du gerade im anderen Thema machst.
Ich sehe das gerade nicht als Crossposting , du solltest aber vieleicht doch bescheid geben damit die User dir dann auch besser helfen können und nicht Kuddelmuddel gibt
 
Funktioniert denn das Hochladen der Bilder und das Eintragen der anderen Wert in die Datenbank? Wenn ja, dann kannst Du die Dateinamen der Bilder wieder aus der Seriennummer zusammen setzen und die Bilder anzeigen:
Code:
while($ausgabe = $abfrage->fetch_object()){
    $seriennummer = $ausgabe->seriennummer;
    echo '
    <div class="content">
        <b>Gebaut am:</b>          '.$ausgabe->datum.'<br>
        <b>Seriennummer:</b>      '.$ausgabe->seriennummer.'<br>
        <b>Type:</b>              '.$ausgabe->type.'<br>
        <b>Kontrolliert von:</b> '.$ausgabe->kontrolliert.'<br>
        <b>Gebaut von:</b>          '.$ausgabe->gebaut.'<br><br><hr>
    </div>
    <img src="images/' . $seriennummer . '-Innen.jpg">
         ';
}

Hay.

Es hatte geklappt nun habe ich etwas weiter geschrieben und bekomme nun diesen Fehler beim eintragen (habe die zeile 107 markiert).

Fatal error: Uncaught Error: Call to a member function bind_param() on boolean in C:\xampp\htdocs\taru\pages\test.php:107 Stack trace: #0 C:\xampp\htdocs\taru\index.php(11): require_once() #1 {main} thrown in C:\xampp\htdocs\taru\pages\test.php on line 107



PHP:
$db = new mysqli('localhost','root','','protokol');
    
    if($db->connect_error):
        echo 'Verbindung Fehlgeschlagen';
    endif;
    
    if(isset($_POST['submit'])):
        $seriennummer         = $_POST['Serial-number-Text'];
        $object             = $_POST['Object'];
        $user                 = $_POST['User'];
        $creator             = $_POST['Creator'];
        $innenJpg            = "images/".$seriennummer."-Innen.jpg";
        $obenJpg            = "images/".$seriennummer."-oben.jpg";
        $steckerJpg            = "images/".$seriennummer."-stecker.jpg";
        $seriennummerJpg    = "images/".$seriennummer."-seriennummer.jpg";
        $deckelJpg            = "images/".$seriennummer."-deckel.jpg";
    //Bilder Upload
        move_uploaded_file($_FILES["inside-Img"]["tmp_name"], "images/".$seriennummer."-Innen.jpg");
        move_uploaded_file($_FILES["top-Img"]["tmp_name"], "images/".$seriennummer."-Oben.jpg");
        move_uploaded_file($_FILES["plug-legend-img"]["tmp_name"], "images/".$seriennummer."-Stecker.jpg");
        move_uploaded_file($_FILES["Serial-number-Img"]["tmp_name"], "images/".$seriennummer."-Seriennummer.jpg");
        move_uploaded_file($_FILES["Top-Bag-img"]["tmp_name"], "images/".$seriennummer."-Oben-mit-Stecker.jpg");
    //
    $absenden = $db->prepare("INSERT INTO `kontrolliert`(`id`, `seriennummer`, `type`, `kontrolliert`, `gebaut`, `Innen-Bild`, `Oben-Bild`, `Stecker-Bild`, `Seriennummer-Bild`, `Oben-mit-Stecker-Bild`, `datum`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11])");
//zeile 107   
 $absenden->bind_param('iisssssssss',$seriennummer,$object,$user,$creator,$innenJpg,$obenJpg,$steckerJpg,$seriennummerJpg,$deckelJpg);
    

    $absenden->execute();
        
    endif;
 
@Sempervivum
Eigentlich ist die Fehlermeldung schon eindeutig genug.
Call to a member function bind_param() on boolean
betrifft
PHP:
$absenden = $db->prepare
also kann ja nur $absenden ein boolscher Wert sein und somit ist klar, dass
PHP:
$absenden = $db->prepare("...");
in die Hose geht.
 
kenn mich nicht so aus mit php habs so verstanden:

PHP:
if (!mysqli_query($db, "SET a=1")) {
    printf("Error message: %s\n", mysqli_error($db));
}

dann kriege ich das ausgegeben:

Error message: Unknown system variable 'a'
 
ist meine erste haha :D bin mich hier noch am einlernen
Was soll das heißen ?
Da du hier ja das geschrieben hast
Es hatte geklappt nun habe ich etwas weiter geschrieben und bekomme nun diesen Fehler beim eintragen
gehe ich von aus das du deine neuen Spalten nicht mit der Db angeglichen hast .
Dann solltest du hier vieleicht auch mal zählen
Code:
$absenden->bind_param('dein bla bla code');
In beiden Fällen solltes du eine Error Meldung von Php bekommen,
 
Oooof peinliiiich lesen müsste man können. Haha. Ich hatte eine funktionierende version, dann als ich für die bildpfade die tabelle erweitert habe unds im code ergänzte erhielt ich das erste mal diesen Fehler.

Bin gerade unterwegs poste bald die aktuelle struktur.

Ps:Was ich oben sagen wollte war das es meine ersten versüche mit php ukd mysql sind
 
Hast du zwischenzeitig schon was am Code geändert ?
Wie sieht der jetzt aus ?
Hast du die Zeile schon geändert?
PHP:
 $absenden->bind_param('iisssssssss',$seriennummer,$object,$user,$creator,$innenJpg,$obenJpg,$steckerJpg,$seriennummerJpg,$deckelJpg);
oder die
PHP:
$absenden = $db->prepare("INSERT INTO `kontrolliert`(`id`, `seriennummer`, `type`, `kontrolliert`, `gebaut`, `Innen-Bild`, `Oben-Bild`, `Stecker-Bild`, `Seriennummer-Bild`, `Oben-mit-Stecker-Bild`, `datum`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11])");

Ich bin mir gerade nicht sicher , aber [value-1] ist glaube ich kein erlaubter( ich sage mal Platzhalter ) dafür.

 
Hay,
habe an den Zeilen etwas rumprobiert aber dann gab es immer nur noch mehr Probleme darum sind sie nun wider gleich,

Ich habe denn teil mit dem insert ehrlich gesagt so direkt aus meiner sql Datenbank ausgeben lassen und da wahr es so haha.
 
hier wäre noch mals mein aktueller code:
Code:
<div class="content">
            <form action="" method="post" enctype="multipart/form-data">
                <label class="test-function">Kontroliert von:</label>
                <select name="User" onchange="aktualisiere_progressbar()" class="test-function">
                    <option value="" disabled selected hidden>Auswählen</option>
                    <option>Andrin</option>
                    <option>Dario</option>
                    <option>David</option>
                    <option>Martin</option>
                </select><br><br>
                <label class="test-function">Gebaut von:</label>
                <select name="Creator" class="test-function" onchange="aktualisiere_progressbar()">
                    <option value="" disabled selected hidden>Auswählen</option>
                    <option>Andrin</option>
                    <option>Dario</option>
                    <option>David</option>
                    <option>Martin</option>
                </select><br><br>
                <label class="test-function">Produkt:</label>
                <select name="Object" class="test-function" onchange="aktualisiere_progressbar()">
                    <option value="" disabled selected hidden>Auswählen</option>
                    <option>94003</option>
                    <option>58052</option>
                    <option>51315</option>
                    <option>51317</option>
                </select><br>
                <label class="test-function">Serien Nummer</label>
                  <input class="test-function" onchange="aktualisiere_progressbar()" type="number"            name="Serial-number-Text">
                <br>
                <label class="test-function">Sicht Prüfung</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="visual-inspection">
                <br>
                <label class="test-function">Schrauben</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="screw">
                <br>
                <label class="test-function">Kabel Verschraubungen</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="cable-gland">
                <br>
                <label class="test-function">Zugkontroller</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="plugs">
                <br>
                <label class="test-function">Durchgangsprüfung</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="beep">
                <br>
                <label class="test-function">Säckli</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="bag">
                <br>
                <label class="test-function">Serien Nummer</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="Serial-Number">
                <br>
                <label class="test-function">Legende</label>
                <input class="test-function" onchange="aktualisiere_progressbar()" type="checkbox"         name="Type-label">
                <br>
                <label class="test-function">Innen</label><input class="test-function" onchange="aktualisiere_progressbar()" type="file"                               name="inside-Img" accept="image/*" capture/>
                <br>
                <label class="test-function">Deckel Geöffnet</label><input class="test-function"    onchange="aktualisiere_progressbar()" type="file"                 name="top-Img" accept="image/*" capture/>
                <br>
                <label class="test-function">Stecker + Legende</label><input class="test-function"    onchange="aktualisiere_progressbar()" type="file"                 name="plug-legend-img" accept="image/*"/ capture>
                <br>
                <label class="test-function">Seriennummer</label><input class="test-function"    onchange="aktualisiere_progressbar()" type="file"                 name="Serial-number-Img" accept="image/*" capture/>
                <br>
                <label class="test-function">Deckel mit Säckli</label><input class="test-function"    onchange="aktualisiere_progressbar()" type="file"                  name="Top-Bag-img" accept="image/*" capture/>
                <br>
                <progress id="fortschritt" value="0" max="15"></progress>
                <br><br>
                <input type="submit" name="submit" value="Absenden">
            </form>
           
        </div>
    </body>
</html>
<script>
function aktualisiere_progressbar() {
    var anteil = 0;
    for (var k = 0; k < document.forms[0].elements.length; k++) {
        if (document.forms[0].elements[k].value != '') anteil++;
    }
    document.getElementById('fortschritt')
        .value = anteil;
}
</script>
<?php
    $db = new mysqli('localhost','root','','protokol');
   
    if($db->connect_error):
        echo 'Verbindung Fehlgeschlagen';
    endif;
   
if (!mysqli_query($db, "SET a=1")) {
    printf("Error message: %s\n", mysqli_error($db));
}

   
    if(isset($_POST['submit'])):
        $seriennummer         = $_POST['Serial-number-Text'];
        $object             = $_POST['Object'];
        $user                 = $_POST['User'];
        $creator             = $_POST['Creator'];
        $innenJpg            = "images/".$seriennummer."-Innen.jpg";
        $obenJpg            = "images/".$seriennummer."-oben.jpg";
        $steckerJpg            = "images/".$seriennummer."-stecker.jpg";
        $seriennummerJpg    = "images/".$seriennummer."-seriennummer.jpg";
        $deckelJpg            = "images/".$seriennummer."-deckel.jpg";
    //Bilder Upload
        move_uploaded_file($_FILES["inside-Img"]["tmp_name"], "images/".$seriennummer."-Innen.jpg");
        move_uploaded_file($_FILES["top-Img"]["tmp_name"], "images/".$seriennummer."-Oben.jpg");
        move_uploaded_file($_FILES["plug-legend-img"]["tmp_name"], "images/".$seriennummer."-Stecker.jpg");
        move_uploaded_file($_FILES["Serial-number-Img"]["tmp_name"], "images/".$seriennummer."-Seriennummer.jpg");
        move_uploaded_file($_FILES["Top-Bag-img"]["tmp_name"], "images/".$seriennummer."-Oben-mit-Stecker.jpg");
    //
    $absenden = $db->prepare("INSERT INTO `kontrolliert`(`id`, `seriennummer`, `type`, `kontrolliert`, `gebaut`, `Innen-Bild`, `Oben-Bild`, `Stecker-Bild`, `Seriennummer-Bild`, `Oben-mit-Stecker-Bild`, `datum`)");
    $absenden->bind_param('iisssssss',$seriennummer,$object,$user,$creator,$innenJpg,$obenJpg,$steckerJpg,$seriennummerJpg,$deckelJpg);
   

    $absenden->execute();
       
    endif;
 
Hay.

Danke ich schaue mir das mal an.

Wiso der crosspost, ganz einfach weil ich versuche mit google lösungen zu finden und wen ich nix finde etwas vergleichbares, damit ich etwas habe zum ausprobieren und tüfteln.
 
Ein Text, den ich in einem anderen Forum zum Thema Crossposting gelesen habe:
Crossposting bedeutet, dass ein und dieselbe Frage in mehreren Foren oder Newsgroups gleichzeitig gestellt wird. Ein solches Verhalten wird von den meisten Helfern nicht toleriert, denn damit stellst Du einerseits die Kompetenz der Helfer jedes einzelnen Forums und Newsgroup in Frage und bewirkst zudem, dass ein zig-faches an Stunden aufgewendet wird, um nur ein einziges Problem zu lösen, denn überall werden sich die Helfer daran setzen, eine Lösung für Dich zu finden. Das ist ganz klar ein Missbrauch an dem kostenlosen und freiwilligen Support, der hier angeboten wird. Wenn Deine Frage klar und deutlich gestellt wurde, dann wirst Du ganz bestimmt innerhalb kürzester Zeit eine Antwort erhalten. Sollte dies auch nach mehreren Tagen nicht der Fall sein, dann versuche bitte die Frage besser zu formulieren. Falls Du dennoch in einem zweiten Forum posten solltest, erwähne bitte, dass Du die Frage schon woanders gestellt hast, und dass Du es tust, weil keine Lösung gefunden werden konnte.
Außerdem sind häufig Crossposting laut Forenregeln nicht erlaubt.
 
Zurück
Oben