Content Management mit MySQL und PHP

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Content Management mit MySQL und PHP

    Content Management mit MySQL und PHP

    Dieses Tutorial richtet sich an alle, die ihre Homepage oder auch Projekte dynamischer und interaktiver gestalten möchten. Sicherlich lohnt es sich nicht für eine Homepage, welche aus fünf Seiten besteht diese mit einem Verwaltungssystem zu versehen, wie wir es hier vorhaben zu erstellen. Diese Seiten können weiter dem Motto folgen: "Offline Inhalt kreieren/erstellen - abspeichern und danach hochladen". Aber für Seiten mit viel Inhalt wird es sich sicher lohnen dieses Tutorial durchzuarbeiten und eventuell auch die daraus resultierenden Lösungen für Probleme anzuwenden und gegebenenfalls noch zu erweitern und auszubauen.

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

  • #2
    Hi

    Also zuerstmal find ich das Tutorial echt super, da es verständlich geschrieben ist und jeder Schritt super erklärt wird.
    Nur leider hab ich am Anfang schon ein kleines Problem.
    Also mit php kenn ich mich schon etwas aus auch mit phpmyadmin, nur halt nicht mit dem auslesen einer mysql

    also ich hab mal die datenbank erstellt ging ohne problem
    leider als ich jetzt die index.php anlegen wollte kam dieses Problem

    Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\php1\index.php on line 5

    Hier der quellcode dazu

    PHP Code:
    <?
    include("sql_config.php");
    $abfrage = "SELECT wort FROM woerterbuch";
    $ergebnis = mysql_query($abfrage);
    while(list($wort) = mysql_fetch_row($ergebnis)){
    echo"
    - $wort<br>
    ";
    }
    ?>
    tja jetzt bin ich ratlos den normal müsste es doch gehn?
    hoffe ihr könnt mir weiterhelfen

    thx im vorraus!!

    Comment


    • #3
      Wurde mit mysql_select_db("mydb"); // Datenbank auswählen eine Datenbank ausgewählt?
      Gibt es die Tabelle "woerterbuch" (schreibweise bitte beachten) darin?
      Gibt es das Feld "wort" in dieser Tabelle (schreibweise bitte beachten)?

      ansonsten
      PHP Code:
      <?
      include("sql_config.php");
      $abfrage = "SELECT wort FROM woerterbuch";
      $ergebnis = mysql_query($abfrage);
      while($row = mysql_fetch_array($ergebnis)){
      echo"
      - $row[$wort]<br>
      ";
      }
      ?>

      Comment


      • #4
        also wie meinst du das jetzt mit mysql_select_db("mydb");

        Also ich hab ne neue Datenbank erstellt die auch woerterbuch heißt.
        Dann hab ich die Tabelle erstellt und die Daten eingegeben.

        die Datenbank in der die Tabelle woerterbuch liegt hab ich so in der sql_config.php bestimmt

        <?
        $database = "woerterbuch"; //Datenbankname
        $sqlhost = "localhost"; //mySQL Hostname
        $sqluser = "*****"; //mySQL Username
        $sqlpass = "*****"; //mySQL Passwort
        ?>

        das is doch richtig oder?

        Nachtrag:
        hab das Script jetzt mal probiert auf meinem Server zum laufen zu bekommen. leider immer noch die fehlermeldung

        Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in /www/htdocs/v028637/tip/index.php on line 5

        wäre wirklich super wenn mir jemand weiterhelfen könnte

        thx
        Last edited by johnny; 03-08-2002, 17:26.

        Comment


        • #5
          Datenbankname lautet "woerterbuch"
          Wie lautet der Tabellenname?
          Gibt es in der Tabelle ein Datenfeld, daß "wort" heißt?

          Der SELECT: $abfrage = "SELECT wort FROM woerterbuch";
          möchte von allen Sätzen das Datenfeld "wort" aus der Tabelle "woerterbuch".

          EIne Datenbank kann mehrere Tabellen beinhalten ...

          Comment


          • #6
            also der tabellenname lautet auch "woerterbuch"
            hab aber schonmal mit datenbankname "gamelist" versucht da ich dachte es gibt probleme wenn datenbank und tabelle gleich heißen.

            ja in der Tabelle gibt es ein Datenfeld das "wort" heißt
            da ich es ja 1 zu 1 aus dem Tutorial übernommen habe

            CREATE TABLE woerterbuch (id TINYINT not null AUTO_INCREMENT, art TEXT not null , wort TEXT not null , text TEXT not null , PRIMARY KEY (id))

            also ich hab mal das Tutorial 1zu1 bis zum ersten auslesen der Datenbank bzw dieser Tabelle genommen

            doch wie gesagt kommt immer diese fehlermeldung.

            und die sql_config.php stimmt doch so wenn die Datenbank woerterbuch heiß oder?

            PHP Code:
            <?
            $database = "woerterbuch"; //Datenbankname
            $sqlhost = "localhost"; //mySQL Hostname 
            $sqluser = "*****"; //mySQL Username
            $sqlpass = "*****"; //mySQL Passwort
            ?>

            Comment


            • #7
              ok ich hab jetzt den fehler

              nach include gehören noch diese zwei zeilen eingefügt

              PHP Code:
              $conn = @mysql_connect($sqlhost$sqluser$sqlpass) or die("Verbindungsfehler!"); 
              $db mysql_select_db($database$conn); 
              damit überhaupt ne verbindung erstellt wird^^

              Comment


              • #8
                Ich bin ratlos ...
                Ich habe die Tabelle, so wie Du sie gepostet hast bei mir in der Datenbank "test" angelegt, mit Testdaten befüllt und das Skript aufgerufen und ich bekomme keine Fehlermeldung!
                PHP Code:
                <?php
                mysql_connect
                ("localhost""""") or die("could not connect"); // Connect zur DB
                mysql_select_db("test"); // Datenbank auswählen

                $abfrage "SELECT wort FROM woerterbuch";
                $ergebnis mysql_query($abfrage);
                while(
                $row mysql_fetch_array($ergebnis)){
                echo
                "
                $row[wort]<br>
                "
                ;
                }
                ?>
                Was klar ist, ist der Name der Tabelle: "woerterbuch"
                Wie bei Dir die Datenbank heißt weiß ich nicht mit Sicherheit - und ich denke da liegt der Hund begraben, schau mal bitte nach, ob es die Datenbank und die Tabelle tatsächlich gibt.

                Mach mal ein DOS Fenster auf (DOS-Eingabeaufforderung) und gib ein:
                Code:
                C:\WAMP\Apache\htdocs\test>mysql
                Welcome to the MySQL monitor.  Commands end with ; or \g.
                Your MySQL connection id is 20 to server version: 3.23.49-nt
                
                Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
                
                mysql> show databases;
                +----------+
                | Database |
                +----------+
                | hand     |
                | mydb     |
                | mysql    |
                | test     |     <-- hier ist die Datenbank in der ich die Tabelle angelegt habe
                +----------+
                4 rows in set (0.00 sec)
                
                mysql> use test;     <-- ich wechsle in diese DB
                Database changed
                mysql> show tables;
                +----------------+
                | Tables_in_test |
                +----------------+
                | woerterbuch    |    <-- hier ist die Tabelle
                +----------------+
                5 rows in set (0.00 sec)
                
                mysql> describe woerterbuch;   <-- jetzt die Struktur der Tabelle
                +-------+------------+------+-----+---------+----------------+
                | Field | Type       | Null | Key | Default | Extra          |
                +-------+------------+------+-----+---------+----------------+
                | id    | tinyint(4) |      | PRI | NULL    | auto_increment |
                | art   | text       |      |     |         |                |
                | wort  | text       |      |     |         |                |
                | text  | text       |      |     |         |                |
                +-------+------------+------+-----+---------+----------------+
                4 rows in set (0.00 sec)
                mysql>
                Sind Userid/Passwort korrekt? (Ich hoffe die "*" sind nur um die ID und das PWD zu verschleieren - oder?

                Comment


                • #9
                  ok

                  Comment


                  • #10
                    also danke für die hilfe
                    auch wenn sie etwas zu spät kam ^^

                    naja jetzt werd ich mal weiter das tutorial durchgehen und nochmal danke für die hilfe

                    Comment


                    • #11
                      ich woll nur nochmal schnell fragen ob jemand dieses tutorial schon ausprobiert hat und ob es bei ihm geht?

                      den bei mir geht gar nix
                      ok auslesen aus der db geht aber der nächste punkt "per link zu infos über das wort" geht schon wieder garnet

                      link wird erstellt
                      wenn man draufklickt kommt garnix.

                      naja ich wollt auch gleich mal fragen ob jemand vielleicht so ein ähnliches Tutorial kennt wo einem das erstellen einer datenbank erklärt wird mit ein paar Abfragen.

                      nachtragt:
                      so ich hab jetzt alles bis auf das Eingabeformular hinbekommen.
                      Vielleicht kann mir hier ja einer von euch helfen.

                      PHP Code:
                      <?
                      include("sql_config.php");
                      $insert=("INSERT INTO woerterbuch (art,wort,text) VALUES ('$art',$wort','$text')"):
                      mysql_query("$insert,$verb);
                      ?>
                      Wegen den anderen Sachen:
                      was nicht stimmt is der Link der auf die show.php verweißt.

                      also in der index.php und in der seek.php müsst ihr den link in folgt ändern
                      PHP Code:
                      - <a href=\"show.php?id=$id&art=$art\">$wort</a><br> 
                      ich hoffe ich konnte so benutzern dieses tutorials helfen
                      Last edited by johnny; 04-08-2002, 02:11.

                      Comment


                      • #12
                        Content Management mit MySQL und PHP

                        Hallo,
                        ich bin gerade dein Tut durchgegangen, und einige dinge verstehe ich nicht so richtig:
                        z.B.:
                        <a href=\"show.php?id?$id$art=$art\">$wort</a>
                        Was soll ...?id?$id$art=$art bedeuten??
                        Du willst doch Parameter übergeben, muß das dann nicht so aussehen:
                        <a href=\"show.php?id=$id&art=$art\">$wort</a>
                        also : id=$id&art=$art ????
                        Mich würde wirklich interessieren warum du das so gemacht hast?

                        Deine insert-Anweisungen haben für das auto_increment-Feld (id)
                        einträge 1,2,3 usw.
                        Warum nimmst du dann auto_increment ?

                        Warum definierst du z.B. für art ein feld mit datentyp text???

                        Warum verwendest du LIKE '%$string% um zu suchen in der seek.php?
                        Ist doch die Totalbremse.

                        Comment


                        • #13
                          Re: Content Management mit MySQL und PHP

                          Original geschrieben von taikonaut
                          Du willst doch Parameter übergeben, muß das dann nicht so aussehen:
                          <a href=\"show.php?id=$id&art=$art\">$wort</a>
                          also : id=$id&art=$art ????
                          hast recht.
                          Deine insert-Anweisungen haben für das auto_increment-Feld (id) einträge 1,2,3 usw.
                          Warum nimmst du dann auto_increment ?
                          Das ist ein Dump vom phpMyAdmin. Die IDs dürfen, müssen aber nicht angegeben werden.
                          Ein Skript zum Insert sollte natürlich die ID nicht angeben.
                          (siehe auch ganz unten in Abschnitt 2.1)

                          Warum definierst du z.B. für art ein feld mit datentyp text???
                          Da hat der Autor wohl nicht überlegt. varchar(xx) wäre natürlich passender.

                          Warum verwendest du LIKE '%$string% um zu suchen in der seek.php?
                          Ist doch die Totalbremse.
                          Natürlich kann man mit LOCATE suchen, das ist aber auch nicht schneller als LIKE. Außerdem wird bei LIKE nicht zwischen Groß-und Kleinschreibung unterschieden.

                          Ich werde dem Autor mal eine Mitteilung über den Post hier schicken.
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Comment


                          • #14
                            Hihi @ all

                            ich bin der autor des tutorials.
                            Das Tutorials ist schon etwas älter und viele Dinge würde ich heute anders machen als damals

                            -> zb würde ich nimmer list(); sondern mysql_fetch_array verwenden und und und *g*

                            Ich hab jetzt auch nimmer 100%ig alles im Kopf was ich damals geschrieben hab.

                            Das Tutorial zu überarbeiten - bugs entfernen - wäre wohl eine schlechte idee weil es da ziehmlich viel zu ändern gäbe *g*

                            Mein vorschlag: Berni nimmt das Tutorial offline und ich schreib diese woche ein neues.

                            sorry @ all
                            __________________________
                            __________________________

                            Comment


                            • #15
                              Volltextsuche

                              Hallo,
                              erstmal danke, dass mein Posting so schnell beantwortet wurde.
                              Seit der Version 3.23.23. bietet Mysql die Unterstützung von Volltextindizierung und Volltextsuche.
                              Dabei verwendet man einen Fulltext-Index.
                              Ein Suche sieht dann so aus:

                              SELECT * FROM woerterbuch WHERE MATCH (wort,text) AGAINST ('Suchbegriff');

                              Sowas meinte ich mit "Totalbremse". Vielleicht hier als kleiner Tipp zur Optimierung von Suchanfragen.

                              Ciao

                              Comment

                              Working...
                              X