+ Antworten
Ergebnis 1 bis 13 von 13

Thema: INSERT INTO stellt mich vor ein Problem

  1. #1
    TP-Veteran kami bringt sich richtig ein kami bringt sich richtig ein
    Registriert seit
    Apr 2004
    Ort
    NRW
    Beiträge
    1.030

    Arrow INSERT INTO stellt mich vor ein Problem

    Hallo Forum,

    habe momentan eine Schwierigkeit mit dem Befehl INSERT INTO:
    Tabellenaufbau:
    PHP-Code:
    CREATE TABLE IF NOT EXISTS `ange` (
      `
    IDint(5NOT NULL AUTO_INCREMENT,
      `
    Bildvarchar(20COLLATE latin1_german2_ci NOT NULL DEFAULT '',
      `
    Bild_nrvarchar(80COLLATE latin1_german2_ci DEFAULT '',
      `
    Bild_txttext COLLATE latin1_german2_ci NOT NULL,
      
    PRIMARY KEY (`ID`),
      
    KEY `ID` (`ID`),
      
    FULLTEXT KEY `Bild_txt` (`Bild_txt`),
      
    FULLTEXT KEY `Bild_txt_2` (`Bild_txt`)
    ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci COMMENT='bild_eingabe' AUTO_INCREMENT=71 
    Jetzt will ich einen Datensatz einfügen. Dieser lautet:
    PHP-Code:
    $insertSQL "INSERT INTO ange\n" 
                
    "(`Bild_nr`)\n"
                
    "VALUES (\'"$original.$ord .   "\')"
    Als Text ausgegeben lautet dieser:
    INSERT INTO ange (`Bild_nr`) VALUES (\'G:/apache/xampp/htdocs/castillo2010/IMAGES/bach.jpg\')
    ...und die Fehlermeldung lautet:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insertSQL' at line 1
    Habe schon gegoogelt. Vermute, daß es mit der ID zu tun hat. Sie soll aber automatisch weiterzählen. Wie mache ich am besten so etwas? Kann mir einer mit Erfahrung helfen?
    _____________________
    gruss
    reinhold

    _____________________
    meine Site:
    http://www.rkami.de



  2. #2
    TP-Insider Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Avatar von Settler
    Registriert seit
    Feb 2008
    Ort
    Marl
    Beiträge
    805
    ID wird dank AUTO_INCREMENT automatisch vergeben.

    Das hast du:

    Code:
    INSERT INTO ange (`Bild_nr`) VALUES (\'G:/apache/xampp/htdocs/castillo2010/IMAGES/bach.jpg\')
    So sollte es aussehen, jetzt liegt es an dir, das hinzubekommen.

    Code:
    INSERT INTO ange (Bild_nr) VALUES ('G:/deinPfad')
    Tipps:
    ` != ' != "
    wofür \n ?

  3. #3
    TP-Veteran kami bringt sich richtig ein kami bringt sich richtig ein
    Registriert seit
    Apr 2004
    Ort
    NRW
    Beiträge
    1.030
    danke für die Antwort:
    also Spaltennamen ohne Anführung.
    Geändert in
    $insertSQL = "INSERT INTO ange (Bild_nr) VALUES ('" . $original.$ord . "')";
    Das kommt dabei raus:
    INSERT INTO ange (Bild_nr) VALUES ('G:/apache/xampp/htdocs/castillo2010/IMAGES/bach.jpg')
    ... die gleiche Fehlermeldung wie vorher.

    $sql = "INSERT INTO ange\n"
    . "(`Bild_nr`)\n"
    . "VALUES (\'G:/apache/xampp/htdocs/castillo2010/IMAGES/garten3.JPG\')";
    so hat es mir der PHPMyadmin übersetzt.
    _____________________
    gruss
    reinhold

    _____________________
    meine Site:
    http://www.rkami.de



  4. #4
    TP-Insider Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Avatar von Settler
    Registriert seit
    Feb 2008
    Ort
    Marl
    Beiträge
    805
    Zitat Zitat von kami Beitrag anzeigen
    PHP-Code:
    $insertSQL "INSERT INTO ange (Bild_nr) VALUES ('" $original.$ord "')"
    Versuch doch mal:
    PHP-Code:

    $insert 
    "INSERT INTO ange (Bild_nr) VALUES ('$original.$ord')"

  5. #5
    TP-Veteran kami bringt sich richtig ein kami bringt sich richtig ein
    Registriert seit
    Apr 2004
    Ort
    NRW
    Beiträge
    1.030
    ... danke für die Unterstützung.

    Leider, auch diese Version bringt die gleiche Fehlermeldung. Außerdem fehlt jetzt der Begriff "§original"

    INSERT INTO ange (Bild_nr) VALUES ('G:/apache/xampp/htdocs/castillo2010/IMAGES/.bach.jpg')
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insertSQL' at line 1
    _____________________
    gruss
    reinhold

    _____________________
    meine Site:
    http://www.rkami.de



  6. #6
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Code:
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insertSQL' at line 1
    Das liest sich für mich so, als ob Du die komplette Zeile …
    PHP-Code:
    $insertSQL "INSERT INTO ange (Bild_nr) VALUES ('" $original.$ord "')"
    … einfach so in phpMyAdmin eingefügt hast. Das geht natürlich nicht, weil PMA nichts mit den Variablen im Text anfangen kann und $insertSQL natürlich auch keine SQL Anweisung ist, deswegen wird das als Fehler an dieser Position moniert.

  7. #7
    TP-Veteran max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User max.m lebt für das TP und seine User Avatar von max.m
    Registriert seit
    Dec 2005
    Ort
    Stuttgart
    Beiträge
    1.955
    Zitat Zitat von phpBuddy Beitrag anzeigen
    einfach so in phpMyAdmin eingefügt hast.
    Abhilfe: $insertSQL per echo ausgeben lassen und das in PMA einfügen.

  8. #8
    TP-Veteran kami bringt sich richtig ein kami bringt sich richtig ein
    Registriert seit
    Apr 2004
    Ort
    NRW
    Beiträge
    1.030
    ... nein, nein,

    so weit müßtest Du mich ja kennen. Das habe ich in den PHPAdmin eingesetzt:

    INSERT INTO ange (Bild_nr) VALUES ('G:/apache/xampp/htdocs/castillo2010/IMAGES/garten3.JPG')
    _____________________
    gruss
    reinhold

    _____________________
    meine Site:
    http://www.rkami.de



  9. #9
    TP-Veteran kami bringt sich richtig ein kami bringt sich richtig ein
    Registriert seit
    Apr 2004
    Ort
    NRW
    Beiträge
    1.030
    ... das ist mein Code:
    PHP-Code:
                mysql_select_db($database_ange$ange);
                
    $insertSQL "INSERT INTO ange (Bild_nr) VALUES ('" $original.$ord "')";  ;
                echo 
    $insertSQL"<br />\n";    
                
    $auffuell mysql_query(insertSQL$ange) or die(mysql_error()); 
    ausgabe im Browser:
    INSERT INTO ange (Bild_nr) VALUES ('G:/apache/xampp/htdocs/castillo2010/IMAGES/bach.jpg')
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insertSQL' at line 1
    aus dem PHPAdmin heraus wird ein Datensatz hinzugefügt. Alles OK:
    PHP-Code:
    INSERT INTO angeBild_nr )
    VALUES (
    'G:/apache/xampp/htdocs/castillo2010/IMAGES/bach.jpg'

    Wo kann der Fehler herkommen?
    _____________________
    gruss
    reinhold

    _____________________
    meine Site:
    http://www.rkami.de



  10. #10
    TP-Specialist phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts phpBuddy ist einer der Eckpfeiler des TP - ohne ihn geht nichts Avatar von phpBuddy
    Registriert seit
    Aug 2004
    Ort
    Kaiserslautern
    Beiträge
    4.678
    Da fehlt ein $

    Code:
    $auffuell = mysql_query($insertSQL, $ange) or die(mysql_error());

  11. #11
    TP-Veteran kami bringt sich richtig ein kami bringt sich richtig ein
    Registriert seit
    Apr 2004
    Ort
    NRW
    Beiträge
    1.030
    danke.


    Ich doofe Nuss. Das hätte ich selbst finden können. Ich habe andauernd in der SQL-Zeile gesucht.

    Ja, Ja, Du liest das wie ein Kochbuch. Bist bestimmt ein guter Koch.
    _____________________
    gruss
    reinhold

    _____________________
    meine Site:
    http://www.rkami.de



  12. #12
    TP-Veteran kami bringt sich richtig ein kami bringt sich richtig ein
    Registriert seit
    Apr 2004
    Ort
    NRW
    Beiträge
    1.030
    Hallo Forum,

    habe es geschafft. Mit dem nachfolgendem Code kann ich in den Originalordner alle Bilder transportieren. Vom dem Code wird erkannt, welche Bilder noch nicht in die DB geschrieben worden sind. Dieses realisiere ich mit Arrays. Als erstes werden die in der DB gespeicherten "Bild_nr" in das Array geschrieben. Erkläre in einzelnen Teilen, damit die noch nicht so bewandert sind, es verstehen.

    Das ist die Verbindung zur Datenbank
    PHP-Code:
    $angelina mysql_query($query_angelina$ange) or die(mysql_error()); 
    Anzahl der Datensätze:
    PHP-Code:
    $db_anz =  $totalRows_angelina
    Mit der for-Schleife wird das DB-Array mit den Filenamen gefüllt.
    Die DB beginnt mit irgendeiner ID.

    PHP-Code:
    $db_Files = array();
    for (
    $i=1$i <= $db_anz$i++)
    {
        
    // Auslesen des Datensatzes – Zeiger wird auf den nächsten gestellt
        
    $db_inh mysql_fetch_array($angelina);
        
    // array_push fügt dem Array eine neue Zeile hinzu
        
    array_push($db_Filesbasename($db_inh['Bild_nr']));
    };
    // Mit nachfolgendem Code kann man das Array ausgeben lassen
    print_r($db_Files); 
    Nun kommt der Inhalt der Original-Bilder (aus der Camera)
    Die Bilder werden in ein Array einlesen. Die zwei Variablen benötige ich für den Funktionsaufruf mit glob()
    In diesem Befehl glob() kann ich eingeben, daß nur bestimmte Dateien gelesen werden. Und das ist der Befehl GLOB_BRACE.
    Am Schluß werde ich diese Funktion noch veröffentlichen.
    PHP-Code:
    $dir     "../IMAGES/";
    $type     "jpg,JPG";

    // Funktionsaufruf für den Ordner / Einlesen der Files in das Array
    $ordnerliste listPicture($dir$type);
    // hier die Anzahl der Bilder
    $ordnerl_anz count($ordnerliste);
    //Zur Kontrolle kann ich das Array ausgeben
    print_r($ordnerliste); 
    Das ist der Original-Ordner
    PHP-Code:
    $original         $_SERVER['DOCUMENT_ROOT'] . "/IMAGES/"
    Ich möchte die noch nicht eingetragenen Bilder in die DB eintragen:
    Muß also den ersten Eintrag des Array-Ordners mit den Array-DB-Einträgen vergleichen.
    Also 1 von X Einträgen. Das bewirkt die for-Schleife. Die DB-Einträge werden dann auch mit einer For-Schleife durchfahren.

    PHP-Code:
    for ($x=0$x $ordnerl_anz$x++)
    {
        
    // Hier wird die Ordnerliste durchlaufen
        
    $ord basename($ordnerliste[$x]['file']);

        for (
    $i=1$i <= $x$i++)
        {
            
    $db_Bild_nr $db_Files[$x];
            
    // Hier wird die hier wird die DB-Liste durchlaufen
            // suche in der $db_Files den Wert der in der Variablen $ord eingetragen ist.
            
    if ( $finden array_search $ord$db_Files ) )
            {
                
    // Wenn vorhanden wird die For-Schleife abgebrochen. Braucht also nicht das gesamte Array durchlaufen.
                
    break;
            } else {
                
    // Wenn nicht gefunden gibt es FALSE zurück. Kann somit in die DB eingetragen werden
                // erst Verbindung
                
    mysql_select_db($database_ange$ange);
                
    // Dann der SQL-Code zum Eintragen in den Original-Ordner mit dem File-Namen
                
    $insertSQL "INSERT INTO ange (Bild_nr) VALUES ('" $original.$ord "')";
                
    // die SQL-Zeile kann zur Kontrolle ausgegeben werden. Jetzt ist sie ausgeschaltet
                //echo $insertSQL. "<br />\n";
                
    $auffuell mysql_query($insertSQL$ange) or die(mysql_error());
                
    // Die Forschleife kann abgebrochen werden
                
    break;
            }
        }
    }
    // trennen von der DB
    mysql_free_result($angelina); 
    Hoffentlich war das nicht zu kompliziert. Nun es fehlt noch die Funktion. Hier ist sie.
    Die Funktion speichert die Namen des Ordners in einem Array. Die Übergabe:
    directory und Type, also: DeinVerzeichnis/xxx.jpg oder DeinVerzeichnis/xxx.JPG
    Die Namen werden in Array $picture übergeben.
    PHP-Code:
    function listPicture($dir=".",$type="jpg")
    {
        
    $x 0;
        foreach (
    glob($dir."*"."{"$type"}"GLOB_BRACE|GLOB_ERR) as $filename)
        {

            
    $picture[$x]['file'] = $filename;
            
    $x++;
        }

        return 
    $picture;

    Nun könnt Ihr bei Bedarf es selbst ausprobieren. Bei mir klappt es. Über eine Einschätzung oder Bewertung würde ich mich sehr freuen.
    _____________________
    gruss
    reinhold

    _____________________
    meine Site:
    http://www.rkami.de



  13. #13
    TP-Insider Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Settler ist ein richtiges Arbeitstier - DANKE Avatar von Settler
    Registriert seit
    Feb 2008
    Ort
    Marl
    Beiträge
    805
    Zitat Zitat von kami Beitrag anzeigen
    danke.


    Ich doofe Nuss. Das hätte ich selbst finden können. Ich habe andauernd in der SQL-Zeile gesucht.

    Ja, Ja, Du liest das wie ein Kochbuch. Bist bestimmt ein guter Koch.
    Deswegen auch immer den ganzen relevanten Code posten ...

+ Antworten

Ähnliche Themen

  1. PHP INSERT Problem
    Von mikescho im Forum Traum-Dynamik
    Antworten: 23
    Letzter Beitrag: 25.06.2009, 17:53
  2. [mySQL] Problem mit insert into
    Von Wanderratte im Forum Traum-Dynamik
    Antworten: 2
    Letzter Beitrag: 11.10.2004, 14:53
  3. INSERT INTO Problem
    Von Carpocalypse im Forum Traum-Dynamik
    Antworten: 11
    Letzter Beitrag: 15.07.2004, 22:17
  4. [PHP] Problem beim Insert
    Von Budda im Forum Traum-Dynamik
    Antworten: 9
    Letzter Beitrag: 06.05.2004, 11:24
  5. problem mit insert into
    Von jokkmokk im Forum Traum-Dynamik
    Antworten: 19
    Letzter Beitrag: 21.05.2003, 12:40

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51