Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] SQL Abfrage Problem

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] SQL Abfrage Problem

    Hallo Leute

    Mein Code sieht wie folgt aus:

    PHP-Code:
    <?php
    $search_id 
    $_GET'id' ];
    include (
    'db_con.php');
    $timestamp time();
    $datum date("d.m.Y - H:i"$timestamp);
    $connection db_connect();

    mysql_query("INSERT INTO events (timedate, user_id)
    VALUES ('"
    .$datum."', '".$search_id."')");

    $event_id "SELECT id FROM events WHERE timedate='$datum'";

    mysql_query("INSERT INTO images (verzeichnis, time, event_id)
    VALUES ('"
    .$search_id."','".$datum."','".$event_id."')");

    ?>
    Er legt mir den 2. Eintrag nicht an. Wieso?


  • #2
    Keine Ahnung, vielleicht solltest du mal dir die Fehlermeldungen ausgeben lassen ...

    Kommentar


    • #3
      1. Informier dich über SQL Injection Gefahren. Am besten du suchst hier im Board danach Man kann ohne weiteres Schadcode in deinem Skript ausführen

      2. Lerne mal PHP & MySQL Grundlagen Du speicherst den Query in $event_id und damit wird auch versucht, dieser String in die event_id Spalte zu schreiben.
      Selbst wenn du den Query ausgeführt hättest, hättest du nicht die ID zurückbekommen!

      Kommentar


      • #4
        PHP-Code:
        mysql_query("INSERT INTO images (verzeichnis, time, event_id)
        VALUES ('"
        .$search_id."','".$datum."','".$event_id."')"); 
        ich denke time is vorreserviert änder mal die spalte time in zeit
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

        Kommentar


        • #5
          Zitat von BlackScorp Beitrag anzeigen
          ich denke time is vorreserviert änder mal die spalte time in zeit

          Du denkst? Bitte Informationen nur dann posten wenn du es auch sicher weist. Sonst verbreitest du nur Gerüchte ...

          Hier kannst du nachschauen: MySQL :: MySQL 5.1 Reference Manual :: 8.3 Reserved Words
          Time kann also auch ohne Quotes genutzt werden!

          Kommentar


          • #6
            ok sorry mein fehler dann versuch mal folgendes:

            PHP-Code:
            mysql_query("INSERT INTO images (verzeichnis, time, event_id)
            VALUES ('"
            .$search_id."','".$datum."','".$event_id."')") or die(mysql_error()); 
            apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

            Kommentar


            • #7
              Zitat von BlackScorp Beitrag anzeigen
              ok sorry mein fehler dann versuch mal folgendes:

              PHP-Code:
              mysql_query("INSERT INTO images (verzeichnis, time, event_id)
              VALUES ('"
              .$search_id."','".$datum."','".$event_id."')") or die(mysql_error()); 
              Bringt ja auch nichts, da $event_id nicht das beinhaltet, was der TE eigentlich haben will
              Sagt mal, ignoriert ihr mich alle?:P

              Kommentar


              • #8
                Nein ragtek hat schon recht ...

                Kommentar


                • #9
                  *Eigenwerbemodus an*Ja, klein Ragtek kann zwar nicht wirklich profimässig programmieren, aber im Code Review ist er spitze *Eigenwerbemodus aus*

                  Kommentar


                  • #10
                    ahh habe das mysql_query bei event_id übersehen.... *mich schämen*
                    apt-get install npm -> npm install -g bower -> bower install <package> YOLO https://www.paypal.me/BlackScorp | Mein Youtube PHP Kanal: https://www.youtube.com/c/VitalijMik

                    Kommentar


                    • #11
                      Zitat von ragtek Beitrag anzeigen
                      1. Informier dich über SQL Injection Gefahren. Am besten du suchst hier im Board danach Man kann ohne weiteres Schadcode in deinem Skript ausführen

                      2. Lerne mal PHP & MySQL Grundlagen Du speicherst den Query in $event_id und damit wird auch versucht, dieser String in die event_id Spalte zu schreiben.
                      Selbst wenn du den Query ausgeführt hättest, hättest du nicht die ID zurückbekommen!
                      ^
                      |
                      this

                      @TE

                      Dein zweiter Query sieht so aus:

                      "INSERT INTO images (verzeichnis, time, event_id) VALUES ('34','06.06.2010 - 12:00','SELECT id FROM events WHERE timedate='06.06.2010 - 12:00'')"

                      Wenn du mysql_error() benutzen würdest dann wird der Fehler soetwas in der Art sein: You have an error in your SQL Syntax... near.. '06.06...

                      Überdenk nochmal genau deinen Select.

                      //Ergänzender Hinweis:
                      Das Feld timedate dürfte wohl ein varchar(255) sein was nicht zu empfehlen ist. MySQL bietet nicht umsonst den Feldtyp DateTime an. Spätestens wnen du das sortieren willst wirst du merken warum.
                      "Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".

                      Kommentar


                      • #12
                        ja hab das überdenkt mein SELECT nur komm ich noch immer zu keinem ergebniss wie ich die 2 vergleichen soll. Weil da bietet sich nur das time und timedate an

                        Kommentar


                        • #13
                          Zitat von Dark Guardian Beitrag anzeigen
                          ^


                          Dein zweiter Query sieht so aus:

                          "INSERT INTO images (verzeichnis, time, event_id) VALUES ('34','06.06.2010 - 12:00','SELECT id FROM events WHERE timedate='06.06.2010 - 12:00'')"
                          Das passt ja! Weil die id soll er sich von der tabelle "events" holen und nicht von
                          der Tabelle "images"

                          Kommentar


                          • #14
                            Was genau willst du den erreichen?

                            1. Du kriegst eine ID über $_GET.
                            Diese speicherst du in die events Tabelle. Soweit richtig? Falls ja => umbedingt wenigstens prüfen ob es sich nur um einen int Wert handelt, bevor du den Wert in die Db speicherst!

                            1.1 Dann willst du die ID des letzen Eintrages auslesen?! Das kannst du über insert_id (falls die Tabelle richtig aufgebaut ist auslesen)

                            2. In die Tabelle images weitere Felder speichern.
                            Query hast du ja, 1.1 sagt dir wie man zur id kommt =>
                            dann wünsche ich noch fröhliches coden

                            Kommentar


                            • #15
                              PHP-Code:
                              <?php
                              $search_id 
                              $_GET'id' ];
                              include (
                              'db_con.php');
                              $timestamp time();
                              $datum date("d.m.Y - H:i"$timestamp);
                              $connection db_connect();

                              mysql_query("INSERT INTO events (timedate, user_id)
                              VALUES ('"
                              .$datum."', '".$search_id."')");

                              $event_id mysql_fetch_rowmysql_query"SELECT LAST_INSERT_ID()"));

                              mysql_query("INSERT INTO images (verzeichnis, time, event_id)
                              VALUES ('"
                              .$search_id."','".$datum."','".$event_id."')") or die(mysql_error()); 
                              ?>
                              jetzt funktioniert es zwar, aber ich bekomm jetzt bei event_id in der Tabelle "images" immer eine 0

                              Kommentar

                              Lädt...
                              X