Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten aus Datenbank lesen

Einklappen

Neue Werbung 2019

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

  • Daten aus Datenbank lesen

    Einen Schönen Adventssonntag!!

    Seit über 2 Wochen treibe ich mich im Internet rum, suche nach einer Lösung.
    Bin schon am resignieren
    Ich habe folgendes script als index.php auf dem webserver per Filezilla hochgeladen:
    PHP-Code:
    <?php
        $_db_host 
    "db-host";
        
    $_db_username "username";
        
    $_db_passwort "passwort";
        
    $_db_datenbank "datenbank";

        
    # Verbindung zur Datenbank herstellen
        
    $_link mysql_connect($_db_host$_db_username$_db_passwort);

        
    # Prüfen ob die Verbindung geklappt hat
        
    if (!$_link)
            {
            
    # Nein, also das ganze Skript abbrechen !
            
    die("Keine Verbindung zur Datenbank möglich: " .
                
    mysql_error());
            }

        
    # Verbindung hat geklappt, weiter ...
        
    echo "Verbindung zur Datenbank erfolgreich.<br>";

        
    # Datenbank auswählen
        
    mysql_select_db($_db_datenbank$_link);

    $abfrage "Select * adressen";
    $resultat mysql_query($cxn$abfrage) or die
     (
    "Konnte die Abfrage nicht ausführen!");
    ?>
    Nach Aufruf der Seite erscheint folgende Meldung:

    Verbindung zur Datenbank erfolgreich.
    Warning: mysql_query() expects parameter 2 to be resource, string given in /customers/2/4/3/sfmedie.de/httpd.www/index.php on line 25 Konnte die Abfrage nicht ausführen!


    Zuvor habe ich per scipt eine Tabelle ""adressen" erstellt.

    Die Zugangsdaten vom Provider klappen ja, denn
    immerhin wird die Verbindung zur Datenbank hergestellt!
    Ich habe ein paar Bücher über php/mysql gekauft in welchem ähnliche scripts drin stehen, aber nix klappt! Ich versuche es inzwischen mit scripts aus dem web, aber auch hier klappt nix! Generell habe ich Programmiererfahrung, in Assembler, Pascal und Delphi-Pascal, hilft mir hier aber leider nicht!

    Ich möchte wenigstens die Fehlermeldung verstehen können!

    Über einen hilfreichen Tip würde ich mich total freuen!!!
    Gruß Uli


  • #2
    Die Fehlermeldung sagt doch schon alles was du wissen musst, ein Blick in die Doku und du siehst auch wie es richtig sein sollte.

    PS: Ließ auch den großen roten Kasten ganz oben auf der verlinkten Seite.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Hallo, willkommen im Forum.

      Gleich mal das wichtigste:
      Die mysql_* Erweiterung ist veraltet und wird in der nächsten PHP-Version entfernt.
      Durch einen Wechsel auf mysqli_* oder PDO greifst du auf die modernere API zu und hast die Möglichkeiten Prepared Statements zu benutzen die gegen Injections schützen.
      Ich persönlich bevorzuge PDO, schönes Tutorial: http://www.peterkropff.de/site/php/pdo.htm

      Du kannt dir auch die anderen Tutorials auf der Seite ansehen, ich fand die am Anfang sehr hilfreich.

      Zur Fehlermeldung an sich, der erste Parameter von mysql_query(); müsste in deinem Fall $abfrage sein. $cxn sehe ich bei deinem Script nirgendwo anders, meintest du da vielleicht $_link? Das wäre dann der zweite Parameter.

      Deine Abfrage:
      - Es fehlt das Wort "FROM" vor dem Tabellennamen
      - SELECT * wird nicht gerne gesehen, http://php-de.github.io/jumpto/code-smells/#select- ... du kannst dich da ja selbst noch informieren und entscheiden, ob es für deinen Fall vielleicht doch akzeptabel ist, aber sieh dir zumindest mal die eventuellen Nachteile an.
      Relax, you're doing fine.
      RTFM | php.de Wissenssammlung | Datenbankindizes | Dateien in der DB?

      Kommentar


      • #4
        VIELEN DANK für die Hinweise!

        Die Fehlermeldung sagt doch schon alles was du wissen musst
        Nun ja, das ist es eben, die Fehlermeldung sagt wohl alles- eben dem, der damit umzugehen weiß.

        Ich versuche mal, das script entspr. zu ändern(obwohl ich noch unsicher bin).
        Ich bin noch Einsteiger und befinde mich auf Neuland.
        Gruß Uli

        Kommentar


        • #5
          Ich habe mal folgende Änderung vorgenommen:

          $abfrage = "Select From adressen";
          $resultat = mysql_query($abfrage) or die
          ("Konnte die Abfrage nicht ausführen!");

          Nun erscheint die Meldung:
          Verbindung zur Datenbank erfolgreich.
          Konnte die Abfrage nicht ausführen!


          Immerhin, die Fehlermeldung ist schon wesentlich kürzer,
          nur wo steckt der Fehler im Detail?

          Ooouuuh, ich tappe sooo im Dunkeln..

          Kommentar


          • #6
            Jetzt hast du zwar das FROM drin aber hast die Felder die du abrufen willst weggelassen...
            Zitat von nikosch
            Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

            Kommentar


            • #7
              Habe sie eben nachgetragen, aber es klappt nicht.
              Inzwischen hab ich einen code von einem link genommen, den mir VPh gepostet hat.

              PHP-Code:
              $mysqli mysqli_connect('localhost''user''password''database');

              $ress mysqli_query($mysqli"SELECT `Id` , `Name` FROM Personen");
              $cnt 0;
              while (
              $data mysqli_fetch_assoc($ress)) {
                  if (
              $cnt 3) {
                      break;
                  }
                  echo 
              $data['Id'] , ', ' $data['Name'] , '<br />';
                  
              $cnt++;

              Hierbei erhalte ich nur den code als Ausgabe!

              Kommentar


              • #8
                Zitat von tempuss Beitrag anzeigen
                PHP-Code:
                    if ($cnt 3) {
                        break;
                    } 
                Quatsch. Limit'e gleich in der Query.

                Zitat von tempuss Beitrag anzeigen
                Hierbei erhalte ich nur den code als Ausgabe!
                PHP-Open-Tags vergessen?
                Zitat von nikosch
                Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                Kommentar


                • #9
                  Hab's so übernommen, ist sicher was umständlich, so zu limiten, aber das ist doch jetzt nicht wichtig. Wichtig wäre mal eine Erfolgsmeldung.

                  Kommentar


                  • #10
                    Du hast doch schon die die Frage noch den PHP-Tags bekommen.
                    Dazu hast du in deinem Beispiel ja nicht mal die Query angepasst.

                    Auch noch einmal von der Seite, die VPh erwähnt hat:
                    Wo immer möglich ist ein LIMIT für die Querymenge anzugeben. Die Datenbank kann dann die Anfrage entsprechend optimieren, liefert auch immer gleich die passende Menge und erspart damit auch PHP-seitige Handstände.
                    Wenn man schon anfangen möchte, dann bitte auch gleich richtig und kein gebastel.

                    Kommentar

                    Lädt...
                    X