Ankündigung

Einklappen
Keine Ankündigung bisher.

Mysql_fetch_array Fehler

Einklappen

Neue Werbung 2019

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

  • Mysql_fetch_array Fehler

    Hallo erstmal,

    bin dabei ein Medienportal zu machen, wo man auf eine Musikkategorie z.B. Dubstep draufgehen kann, dann verschiedene Interpreten angezeigt werden und man dann bei diesen auf ein Button klickt um weitere Informationen zu erhalten.

    Nun bekomme ich es nicht hin diese weitere Informationen auszugeben. Erst bekam ich diese Fehlermeldung: Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\medienportal\interpret.inc.php on line 7

    Habe dann mysql_error genutzt und bekomme diese Meldung: 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 'db_id' in C:\xampp\htdocs\medienportal\kategorie1.inc.php on line 12


    index.php:
    PHP-Code:
    <?php

    include("anmeldung.inc.php");
    IF(!isset(
    $_GET['introseite']))
        {
            
    $link "intro.inc.php";
        }
    IF(isset(
    $_GET['introseite']))
        {
            
    $link $_GET['introseite'];
        }
    IF(isset(
    $_GET['kategorie1']))
        {
            
    $link $_GET['kategorie1'];
        }
    IF(isset(
    $_GET['id']))
        {
            
    $link 'interpret.inc.php';
        }
        
        
    ?>
    <!DOCTYPE html>
    <html lang="en">
    <head>
            <title>MedienPortal</title>
            <meta charset="utf-8">
            <link href="css/screen.css" type="text/css" rel="stylesheet" />
    </head>        

    <body>
            <header> 
                <h1>MedienPortal</h1>
                <h2>Drop the Bassline</h2>
            <nav>
            <ul id="navmenu">
                <a href = "index.php?introseite=intro.inc.php">
                <li> Start </li></a>
                <a href = "index.php?kategorie1=kategorie1.inc.php">
                <li> Dubstep </li></a>
                <a href = "index.php?kategorie2=kategorie2.inc.php">
                <li> Trap </li></a>
            </ul>
            </nav>
            </header>
            
            <section>
    <?php
    include("$link");
    ?>
            </section>
            <footer>
                <p>&copy, 2014</p>
            </footer>
    </body>
    </html>
    interpret.inc.php:
    PHP-Code:
    <?php

    $id 
    $_GET['id'];

    $query "SELECT * FROM interpret WHERE db_id = '$id'";
        
    $result=mysql_query($query) or die (mysql_error());
        
    $datensatz mysql_fetch_array($result);
        echo 
    "<h1>Weitere Informationen:</h1><br></br>";
        echo 
    "Name: ".$datensatz['db_vorname'] . " " $datensatz['db_nachname'] . "<br></br>";
        echo 
    "Geburtsdatum: ".$datensatz['db_geburt']."<br></br>";
        echo 
    "Informationen: ".$datensatz['db_info']."<br></br>";
    ?>
    kategorie1.inc.php:
    PHP-Code:
    <?php
        $lesen
    ="SELECT * FROM interpret WHERE db_kategorie = 'Dubstep'";
        
    $result mysql_query($lesen);
        
        while(
    $datensatz mysql_fetch_array($result))
        {
        echo 
    $datensatz['db_vorname'] . " " $datensatz['db_nachname'] . "<br></br>";
        
    //BILD
        
    echo "<img src='img/" $datensatz['db_bild'] . "' />";
    ?>
        <form action="index.php" method="get">
        <input type="hidden" name='id' value="<?php echo $datensatz[db_id];?>">
        <input type='submit' value='Auswahl'/>
        </form>
        <br/><hr/><br />
    <?php
        
    }
    ?>
    Hoffe ihr könnt mir weiterhelfen
    Gruß


  • #2
    wie kommt man nur auf die idee code als bild hochzuladen?

    außerdem steht in der fehlermeldung doch deutlich was das problem ist
    You have an error in your SQL syntax
    wozu gleich 3 dateien php-code vorzeigen?
    liebe Grüße
    Fräulein Dingsda

    Kommentar


    • #3
      Ja sry bin neu hier. Kenne hier die ganzen Funktionen noch nicht genau.

      Wenn es ein Fehler in der SQL Syntax ist wieso kommt dann in der Fehlermeldung das hier: near 'db_id' in C:\xampp\htdocs\medienportal\kategorie1.inc.php on line 12 ?

      und wie genau behebt man den Fehler in der SQL Syntax?

      Kommentar


      • #4
        das soll dir helfen das problem noch genauer einzugrenzen
        near 'db_id'
        hier in der nähe ist der syntax fehler

        in C:\xampp\htdocs\medienportal\kategorie1.inc.php
        in dieser datei wurde der query an die datenbank geschickt
        und zwar genau in zeile 12
        on line 12
        sowas soll halt helfen, weil man ja in nem projekt schon mal mehr als einen query an die datenbank schickt

        und wenn dort einfach nur stünde "sql syntax fehler" würde man sich dumm und dämlich suchen

        und wie genau behebt man den Fehler in der SQL Syntax?
        in dem du die richtige syntax nutzt
        lass dir den query mit echo ausgeben und prüfe mit dem manual was du falsch machst.

        edit:
        hilfreich ist noch das hier http://php-de.github.io/jumpto/sql/

        und die mysql_* funktionen sind veraltet.
        nutzt stattdessen besser mysqli oder PDO
        liebe Grüße
        Fräulein Dingsda

        Kommentar


        • #5
          Und wenn du schon dabei bist schaust du dir am Besten auch gleich mal mysqli_* oder PDO an und stellst deinen Code entsprechend um.

          mysql_* ist nämlich veraltet
          - Laravel

          Kommentar


          • #6
            Lösung war eigentlich ganz simpel

            PHP-Code:
            <?php
                $lesen
            ="SELECT * FROM interpret WHERE db_kategorie = 'Dubstep'";
                
            $result mysql_query($lesen);
                
                while(
            $datensatz mysql_fetch_array($result))
                {
                echo 
            $datensatz['db_vorname'] . " " $datensatz['db_nachname'] . "<br></br>";
                
            //BILD
                
            echo "<img src='img/" $datensatz['db_bild'] . "' />";

            ?>
                <form action="index.php" method="get">
                <input type="hidden" name='id' value="<?php echo $datensatz['db_id'];?>">
                <input type='submit' value='Auswahl'/>
                </form>
                <br/><hr/><br />
            <?php
                
            }
            ?>
            da value="<?php echo $datensatz['db_id'];?>"> musste bei db_id einfach ' ' hin

            Kommentar


            • #7
              PHP-Code:
              $datensatz[db_id
              das ist natürlich keine korrekte php-syntax, stimmt. aber das hatte nichts mit deinem sql-syntax-fehler zu tun sondern hatte wohl noch zusätzlich die meldung
              NOTICE: undefined constant db_id. assuming 'db_id'
              oder ähnlich ausgespuckt.
              vielleicht hattest du den sql fehler schon behoben aber nicht drauf geachtet, dass die meldung sich geändert hat
              liebe Grüße
              Fräulein Dingsda

              Kommentar


              • #8
                Außerdem würde ich Bilder nie in einer DB speichern. Du solltest dir im klaren sein, dass die Datenbank eine Art Flaschenhals für die PHP Anwendung ist. Ein Bild ist eine Datei und gehört daher in das Dateisystem und außerdem entlastet das die Datenbank.
                Du könntest also einen Zielordner im Dateisystem festlegen und dort dann das Bild abspeichern und in die Datenbank höchstens den Namen des Bildes einspeichern, sodass nur nach dem Bild im davor definiertem Zielordner gesucht werden muss.

                LG
                https://github.com/Ma27
                Javascript Logic is funny:
                [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

                Kommentar


                • #9
                  16.14. Warum soll ich nicht SELECT * schreiben?
                  http://www.dclp-faq.de/q/q-sql-select.html
                  Die Deutsche Rechtschreibung ist Freeware! Du darfst sie kostenlos nutzen, allerdings ist sie nicht Open Source, d.h. Du darfst sie nicht verändern oder in veränderter Form veröffentlichen.

                  Kommentar


                  • #10
                    http://www.dclp-faq.de/q/q-sql-select.html
                    ich lande hier bei werbeexplosion.de und werde dann von einer komischen seite zur nächsten weitergeleitet
                    liebe Grüße
                    Fräulein Dingsda

                    Kommentar


                    • #11
                      16.14. Warum soll ich nicht SELECT * schreiben?
                      http://stackoverflow.com/questions/3...idered-harmful
                      https://github.com/Ma27
                      Javascript Logic is funny:
                      [] + [] => "", [] + {} => object, {} + [] => 0, {} + {} => NaN

                      Kommentar

                      Lädt...
                      X