Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Forum programmierung

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Forum programmierung

    EDIT:// Mein erster Post ging daneben, kann man das Thema ins Anfänger Forum verschieben? Danke.
    Hallo zusammen,
    erstmal: ich freue mich auf das forum gestoßen zu sein - schönes Forum

    Nun zu meiner Frage/Bitte:
    Ich habe html, css und php Kenntnisse und wollte mich mal - aus reiner neugier - an ein mini-Forum versuchen.
    Nun habe ich leider einen Hänger. Ich will nämlich mit php und mysql erstmal ein System erstellen, dass so aussieht
    Kategorie
    Forum1
    Forum2
    Forum3
    Kategorie2
    Forum1
    Forum2
    Also ich habe in MySQL eine Datenbank angelegt und dort 2 Tabellen erstellt: 'Kategorien' und 'Foren'.
    Dann soll das index.php Script erkennen: Kategorie1: dazu gehört Forum1 und 2 und zu der 2. Kategorie soll Das und das Forum gehören (zB. phpbb)
    Hier der index.php code:
    PHP-Code:
    <?php
    include("include.php");
    $result mysql_query("SELECT id, name
                          FROM kategorien"
    );
    $menge mysql_num_rows($result);
    while(
    $row mysql_fetch_row($result))
    {
    ?>
    <h3><?php echo $row[1]; ?></h3>
    <?php
    }
    $kategorie $_GET["kategorie"];
    $results mysql_query("SELECT id, name, kategorie
    FROM foren WHERE kategorie = mysql_escape_string(
    $kategorie)");
    $menge mysql_num_rows($results);
    while(
    $row mysql_fetch_row($results))
    {
    echo 
    $row[1];
    }
    ?>
    Nun das Ergebnis:
    HTML-Code:
    <h3>test</h3>
    
    <h3>ddd</h3>
    (Die beiden Kategorien)

    Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\forum\index.php on line 15

    Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\forum\index.php on line 16
    (Hier sollte eigendlich das Forum 'testa' stehen)
    Leider kommen bei mir immer nur zuerst die Kategorien, dann erst das forum, aber ich will zb.
    test
    testa
    ddd
    Weiß jemand einen kleinen Tipp, wie ich im PHP-Code so etwas realisiere (Muss nicht gleich ein Code sein, kann auch ein Tipp sein, in welche Richtung man es Programmieren muss)
    Vielen dank im Vorraus

  • #2
    Willkommen im Forum!

    Damit Du hier nicht mit dem falschen Fuß einsteigst beherzige bitte diesen Thread.
    Wichtige Punkte:
    • Wir helfen gern, wenn Du Initiative zeigst. Macht mal ist nicht.
    • Bitte benutze die Code-Box-Buttons und poste relevanten Code.
    • Bitte stelle verständliche Fragen in ordentlicher Sprache. Sei prägnant!
    • Bitte verwende für spätere Leser einen Threadtitel, der das Problem kurz beschreibt
    • Bitte drängle nicht.
    • Bitte markiere abgeschlossene Themen über den "Erledigt"-Link oben links.
    [COLOR="#F5F5FF"]--[/COLOR]
    [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
    [COLOR="#F5F5FF"]
    --[/COLOR]

    Kommentar


    • #3
      Dankeschön für die Tipps. Ich habe jetzt meinen Beitrag versucht danach zu gestalten.

      Kommentar


      • #4
        PHP-Code:
        $results mysql_query("SELECT id, name, kategorie
        FROM foren WHERE kategorie = mysql_escape_string(
        $kategorie)"); 
        Wär mir neu, daß das so funktioniert...
        PHP-Code:
        while($row = mysql_fetch_row($result))
        {
        ?>
        <h3><?php echo $row[1]; ?></h3>
        <?php
        }
        ich schreib auch gern html ausserhalb der PHP-Tags, aber da macht'n echo schon Sinn...
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Zitat von Arne Drews Beitrag anzeigen
          Wär mir neu, daß das so funktioniert...
          ich schreib auch gern html ausserhalb der PHP-Tags, aber da macht'n echo schon Sinn...
          PHP-Code:
          PHP-Code:
          $results mysql_query("SELECT id, name, kategorie 
          FROM foren WHERE kategorie = mysql_escape_string(
          $kategorie)"); 
          Meinst du damit mysql_escape_string()? (Komischerweise steht genau dieser Code in meinem PHP Buch) Falls ja: Deshalb kommt da ja auch
          Code:
          Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\forum\index.php on line 15
          
          Warning: mysql_fetch_row() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\forum\index.php on line 16
          zustande. Habe eigentlich im 1. Beitrag dazu geschrieben, dass ich dann bei $kategorie = $_GET["kategorie"] statt "kategorie" "1" schreiben muss, ist wohl aber irgendwie nicht gespeichert worden.
          -----------------------------------------------------
          PHP-Code:
          while($row = mysql_fetch_row($result)) 

          ?> 
          <h3><?php echo $row[1]; ?></h3> 
          <?php 
          }
          Danke für den Tipp, aber ich schreibe lieber erstmal grob und verbessere dann die Schönheitsfehler.
          MfG.

          Kommentar


          • #6
            nein mysql_real_escape_string musste an den variablen anwenden und nciht in der mysql query

            also
            PHP-Code:
            $kategorie mysql_escape_string($kategorie);
            $results mysql_query("SELECT id, name, kategorie 
            FROM foren WHERE kategorie ="
            .$kategorie); 
            apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

            Kommentar


            • #7
              Je länger man sich das Skript anschaut, hat man das Gefühl,
              Dir irgendwie von dem Vorhaben abraten zu wollen...
              Code:
              01 <?php
              02 include("include.php");
              03 $result = mysql_query("SELECT id, name FROM kategorien");
              04 $menge = mysql_num_rows($result);
              05 while($row = mysql_fetch_row($result)) {
              06 ?>
              07 <h3><?php echo $row[1]; ?></h3>
              08 <?php
              09 }
              10 $kategorie = $_GET["kategorie"];
              11 $results = mysql_query("SELECT id, name, kategorie FROM foren WHERE kategorie = mysql_escape_string($kategorie)");
              12 $menge = mysql_num_rows($results);
              13 while($row = mysql_fetch_row($results))
              14 {
              15 echo $row[1];
              16 }
              17 ?>
              Zeile 6 bis 8: Mit einem echo zu einer Zeile reduzierbar.
              Zeile 10: GET-Parameter ungefilter anzunehmen, gerade bei DB-Handlings => "Aua"
              Zeile 11: Wie bereits im Post davor angedeutet: Syntaxfehler! (ein blick aufs codehighlightning sollte Aufschluß geben)

              Was nicht unbedingt ein Fehler sein muß: Ich verwende immer mysql_fetch_object() bzw. mysql_fetch_assoc().

              Zu Deinen Fehlermeldungen:
              Da Zeile 11 nichts sinnvolles zurückgibt, kann mysql_num_rows() nix dem angeblichen $result anfangen.

              Zu Deiner Wunschausgabe:
              Kurz und knapp: Wird nix, da die Schleifen nacheinander laufen!
              Die Foren müssen innerhalb der ersten Schleife geholt werden.
              Vielleicht kommst da auch mit ner cleveren JOIN-Taktik besser weg,
              aber das hab ich mir so genau jetzt nicht angesehen.


              Öhm... Wo ich gerade Deinen letzten Post gelesen habe:
              Meinst du damit mysql_escape_string()? (Komischerweise steht genau dieser Code in meinem PHP Buch)
              Sch...ß Buch, wa? M&T oder Data Becker?

              Danke für den Tipp, aber ich schreibe lieber erstmal grob und verbessere dann die Schönheitsfehler.
              Wenn Du bei einem umfangreichen Code, wie es ein Forum am Ende ergibt,
              "später" die "Schönheitsfehler" ausmerzen willst, bin ich raus...
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                so in etwa könnte das ganze funktionieren:

                PHP-Code:
                include("include.php");
                $anzahlmysql_query("SELECT count(id) as anzahl
                                      FROM kategorien"
                );

                while(
                $row mysql_fetch_object($anzahl))
                {
                echo 
                '<h3>'.$row->anzahl.'</h3>';
                }
                $kategorie mysql_escape_string($_GET["kategorie"]);
                $results mysql_query(sprintf("SELECT id, name, kategorie
                FROM foren WHERE kategorie = '%s'"
                ,$kategorie);
                $i 0;
                while(
                $row mysql_fetch_object($results))
                {
                echo 
                $i;
                $i++;

                so in etwa...
                apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                Kommentar


                • #9
                  Das Große Buch: PHP5 & MySQL, Databecker.
                  Deiner Frage nach zu Urteilen sollte ich mir besser ein anderes Buch holen
                  Und ich werde versuchen in Zukunft gleich alle Fehler zu beseitigen.
                  Naja ich werde mal versuchen mit anderen Methoden Gästebücher usw. zu programmieren bevor ich mich wieder da dran mache. (Wenn mir schon ein Erfahrener sagt, dass das nichts wird...)
                  Ich muss aber kurz etwas nachfragen: Was meinst du mit JOIN-Taktik und wie WÜRDE ein solcher Code als Beispiel aussehen?

                  PHP-Code:
                  include("include.php"); 
                  $anzahlmysql_query("SELECT count(id) as anzahl 
                                        FROM kategorien"
                  ); 

                  while(
                  $row mysql_fetch_object($anzahl)) 

                  echo 
                  '<h3>'.$row->anzahl.'</h3>'

                  $kategorie mysql_escape_string($_GET["kategorie"]); 
                  $results mysql_query(sprintf("SELECT id, name, kategorie 
                  FROM foren WHERE kategorie = '%s'"
                  ,$kategorie); 
                  $i 0
                  while(
                  $row mysql_fetch_object($results)) 

                  echo 
                  $i
                  $i++; 

                  Zeigt mir das nicht eher die Anzahl von den Kategorien?

                  Kommentar


                  • #10
                    Deiner Frage nach zu Urteilen sollte ich mir besser ein anderes Buch holen
                    Ich bin hier glaube ich nicht der einzige, der die Bücher für einen Satz mit X hält...
                    Und ich werde versuchen in Zukunft gleich alle Fehler zu beseitigen.
                    Fehler machen wir doch alle mal, aber man sollte schon von Anfang an auf Richtigkeit achten.
                    Hat ein wenig mit Verantwortung zu tun.
                    Naja ich werde mal versuchen mit anderen Methoden Gästebücher usw. zu programmieren bevor ich mich wieder da dran mache.
                    Ja, nicht böse sein, aber ein Forum ist ne harte Nuß. Steckt viel drin, was einem von außen nicht direkt auffällt.
                    Aber mit Gästebüchern anzufangen, finde ich persönlich ne akzeptable Wahl.
                    Ich muss aber kurz etwas nachfragen: Was meinst du mit JOIN-Taktik und wie WÜRDE ein solcher Code als Beispiel aussehen?
                    MySQL -> JOIN

                    @BlackScorp:
                    Und wie bekommt man damit eine Ausgabe, wie
                    Kategorie1
                    -Forum1
                    -Forum2
                    ...

                    Kategorie2
                    -Forum1
                    ...

                    usw...
                    Das ergibt doch alles nur
                    Kategorie1
                    Kategorie2
                    ...

                    Forum1
                    Forum2
                    ...
                    Und bitte mysql_real_escape_string() verwenden!
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      Zitat von Unlimited Beitrag anzeigen
                      D
                      Ich muss aber kurz etwas nachfragen: Was meinst du mit JOIN-Taktik und wie WÜRDE ein solcher Code als Beispiel aussehen?
                      mit JOIN verbindet man 2 tabellen miteinander bei müssen einen gemeinsamen datensatz haben. angenommen in deinem forum haste

                      Kathegorie1
                      Unterkathegorie1
                      Unterkathegorie2
                      Kathegorie2
                      Unterkathegorie1

                      somit müsste 2 tabellen haben , hauptkathegorie, unterkathegorie mit folgenden spalten:

                      hauptkathegorien
                      id | name | beschreibung

                      unterkathegorien
                      id | name | beschreibung | haupt_kath_id

                      und die SQL query würde dann so aussehen:

                      SELECT * FROM hauptkathegorien as h,unterkathegorien as u
                      WHERE h.id = u.haupt_kath_id

                      mit der WHERE anweisung haste beide Tabellen mit einem Gemeinsamen wert verbunden und somit kannste durch folgende erweiterung:


                      SELECT * FROM hauptkathegorien as h,unterkathegorien as u
                      WHERE h.id = u.haupt_kath_id AND h.id = $_GET['id'];

                      alle unterkathegorien aus der tabelle holen welche NUR zu der hauptkathegorie xy gehören
                      apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                      Kommentar


                      • #12
                        Ich komm garnicht hinterher mit dem Schreiben
                        Ich habe genau genommen schon einmal ein Gästebuch programmiert, nur eben auf Databecker basis
                        Okay, Das mit dem JOIN habe ich halbwegs verstanden.
                        (Liegt das 'scheitern' vielleicht auch teilweise an meinem Alter? 14 jahre)
                        Man schreibt Kategorie ohne h

                        Wieso sollte ich 'böse' sein, wenn man mir Tipps gibt und mir dann besser vorerst davon abrät ?

                        Kommentar


                        • #13
                          Zitat von Arne Drews Beitrag anzeigen
                          @BlackScorp:
                          Und wie bekommt man damit eine Ausgabe, wie
                          ich würde das ganze eh anders angehen:

                          PHP-Code:
                          $query "SELECT * FROM kathegorien as k,foren as f WHERE k.id = f.kategorie AND f.id = '%s'"
                          $sql mysql_query(sprintf($query,mysql_real_escape_string($_GET["kategorie"])));

                          while(
                          $row mysql_fetch_object($sql))
                          {
                          echo 
                          $row->f.id.' '.$row->f.name.'<br>';
                          echo 
                          '-'.$row->k.id.' '.$row->k.name;

                          apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

                          Kommentar


                          • #14
                            Ihr Seit auf dem falschen Weg. Für ein Forum benötig man eines von den 2 Schemen:
                            .) nested sets (Nested Sets – Wikipedia)
                            .) Adjazenzmatrix (Repräsentation von Graphen im Computer – Wikipedia)


                            Dann funktioniert das auch mit der Ausgabe!

                            Mfg Splasch

                            Kommentar


                            • #15
                              Zitat von BlackScorp
                              ich würde das ganze eh anders angehen
                              Bingo
                              Wobei ich allerdings auch eher zu die Varianten von splasch neige...
                              Competence-Center -> Enjoy the Informatrix
                              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                              Kommentar

                              Lädt...
                              X