Ankündigung

Einklappen
Keine Ankündigung bisher.

PHP DB Einträge Alphabetisch ordnen

Einklappen

Neue Werbung 2019

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

  • #16
    PHP-Code:
    while ($line mysql_fetch_assoc($res)) { 
        
    $items[] = Array(
            
    "question" => $res['question'],
            
    "answer" => $res['answer']
        );

    Wenn du die Daten so in dein Array packst ...

    PHP-Code:
    foreach ($items['question'] as $entry) { 
    ... dann gibt es kein $items['question'].


    Newbie-Tipp zum x-ten Mal: Wenn ihr euch nicht im Klaren darüber seid, wie eure Datenstrukturen eigentlich aussehen - dann schaut sie euch mit print_r/var_dump an.

    Kommentar


    • #17
      Hey,
      das Problem ist das ich jetzt HTTP 500 erhalte und eben keine weiße Seite mehr und die Error Log schreibt er gerade nicht ....

      Meinst du wegen dem while ?

      Kommentar


      • #18
        Hey,

        es geht einfach nicht wenn ich das Array so befülle:

        PHP-Code:
            $array = Array(
                
        "question"     =>     "hallo",
                
        "answer"     =>     "wer"
            
        ); 
        Aber im FAQ Script das ich eben so erweitern möchte wird das array so befüllt:

        PHP-Code:
                    $items[] = Array(
                        
        "id" => $sql['Id'],
                        
        "question" => $sql['question'],
                        
        "answer" => $sql['answer']
                    ); 

        Kommentar


        • #19
          Zitat von sdcleitung Beitrag anzeigen
          PHP-Code:
          $array = Array( 
          PHP-Code:
          $items[] = Array( 
          Wo ist der Unterschied hier?
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #20
            Die [] ich weiß aber nicht warum es nicht klappt ....

            Kommentar


            • #21
              ChrisB hat dir schon gesagt, warum es nicht läuft, er hat dir auch die Verwendung von print_r bzw var_dump ans Herz gelegt... warum tust du es nicht?
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #22
                Hey,

                ich habe jetzt alles mögliche Versucht ....

                Mein Code jetzt:

                PHP-Code:
                <?php  

                mysql_connect
                ('localhost''****''***'); 
                mysql_select_db('******'); 
                  



                $sql "SELECT `question`, `answer` FROM `faq_question` ORDER BY question ASC";  
                $res mysql_query($sql) or die(mysql_error());  

                while (
                $line mysql_fetch_assoc($res)) {  
                    
                $items[] = Array( 
                        
                "question" => $line['question'
                    ); 
                 
                  
                foreach (
                $items as $entry) { 
                    if (
                false === isset ($ordered[$entry[0]])) { 
                        
                $ordered[$entry[0]] = array (); 
                        } 
                    
                $ordered[$entry[0]][] = $entry

                  
                print_r ($ordered);
                }
                  
                // Ausgabe nach Reihenfolge des ersten Auftretens 
                foreach ($ordered as $character => $set) { 
                    echo 
                $character '<hr />'
                    echo 
                implode (' <br /> ' $set) . '<br />'
                    echo 
                '<br />'
                }
                ?>
                Es geht immer noch nicht und aus dem print_r werde ich auch nicht schlau:

                Code:
                Array ( [] => Array ( [0] => Array ( [question] => Wie registriere ich mich richtig? ) ) ) Array ( [] => Array ( [0] => Array ( [question] => Wie registriere ich mich richtig? ) [1] => Array ( [question] => Wie registriere ich mich richtig? ) [2] => Array ( [question] => Wie schreibe ich einen Blogbeitrag? ) ) )

                Kommentar


                • #23
                  Ich denke mal, dass ist die Array-Struktur, die Du Dir vorstellst:
                  PHP-Code:
                  $sql "SELECT question, answer FROM faq_question ORDER BY question ASC";
                  $res mysql_query($sql) or die(mysql_error());
                  $chars = array();
                  while (
                  $row mysql_fetch_assoc($res)) {
                      
                  // $row['question']{0} == 1. Buchstabe
                      
                  $chars$row['question']{0} ][ $row['question'] ] = $row['answer'];

                  Die Ausgabe wäre demnach:
                  PHP-Code:
                  foreach ($chars as $char => $row) {
                      echo 
                  $char ':<br />';
                      foreach (
                  $row as $question => $answer) {
                          echo 
                  $question ':<br />' $answer '<br />';
                      }
                      echo 
                  '<hr />';

                  meine PHP Scripte

                  Kommentar


                  • #24
                    Hey,
                    nein es ist so, dass der ganze Inhalt der Datenbank Tabelle in ein Array eingelesen wird, ich möchte aber nur die Frage nicht die Antwort ausgeben .....

                    Kommentar


                    • #25
                      Macht keinen großen Unterschied. Mein Lösungsvorschlag würde sich dadurch nur geringfügig ändern. Teste einfach mal, dann kommst Du selber drauf.
                      meine PHP Scripte

                      Kommentar


                      • #26
                        Hey,
                        VIELEN DANK,
                        habe es noch angepasst und der Code wäre jetzt:

                        PHP-Code:
                        $sql "SELECT question, answer FROM faq_question ORDER BY question ASC"
                        $res mysql_query($sql) or die(mysql_error()); 
                        $chars = array(); 
                        while (
                        $row mysql_fetch_assoc($res)) { 
                            
                        // $row['question']{0} == 1. Buchstabe 
                            
                        $chars$row['question']{0} ][ $row['question'] ] = $row['answer']; 
                        }

                        foreach (
                        $chars as $char => $row) { 
                            echo 
                        $char '<hr /><br />'
                            foreach (
                        $row as $question => $answer) { 
                                echo 
                        $question '<br />'
                            }  

                        Jetzt muss ichs nur noch hinbekommen das es im anderen Script funktioniert ...


                        Könntest du mir diesen Teil des Codes bitte noch erklären da ich nicht verstehe wofür das hier ist:

                        $chars[ $row['question']{0} ][ $row['question'] ] = $row['answer'];

                        Kommentar


                        • #27
                          Da hast Du es Dir aber einfach gemacht ^^

                          Statt:
                          PHP-Code:
                          $chars$row['question']{0} ][ $row['question'] ] = $row['answer']; 
                          Hättest Du das machen können (weil du answer ja nicht brauchst wie du sagst):
                          PHP-Code:
                          $chars$row['question']{0} ][] = $row['question']; 
                          Dazu passt Du dann einfach noch die foreach Schleife an und du hast genau das was Du eigentlich willst:
                          PHP-Code:
                          foreach ($row as $question => $answer) { 
                          wird zu:
                          PHP-Code:
                          foreach ($row as $answer) { 
                          oder wenn Du eine Nummerierung haben willst:
                          PHP-Code:
                          foreach ($row as $i => $answer) { 
                          $i enthält dann den Index aus dem Array (Denk dran Indexe beginnen bei 0, bei der Ausgabe müsstest Du also noch +1 addieren).

                          Ach ja und das "answer" aus der MySQL Abfrage kann auch raus. Wozu Daten anfragen, die Du nicht verarbeitest
                          meine PHP Scripte

                          Kommentar


                          • #28
                            Da hast Du es Dir aber einfach gemacht ^^
                            Genau genommen hast Du es ihm einfach gemacht.

                            Die {0}-Syntax ist übrigens veraltet.
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #29
                              Hey,
                              jetzt habe ich alles ausprobiert aber so hatte ichs nicht -.-

                              Die Schleife habe ich schon angepasst

                              Das answer war mit Absicht drin da im Script in das ich das implentieren möchte auch mehrere Daten abgefragt werden also nur damit es hier jeder gleich sieht ....

                              Ich habe nur Probleme das in das Script rein zu bekommen ....

                              Ich habe den Code jetzt im anderen Code drin:

                              PHP-Code:
                                          $chars = array(); 

                                          
                              // $row['question']{0} == 1. Buchstabe 
                                              
                              $chars$row['question']{0} ][] = $row['question'];  
                                          

                                          foreach (
                              $chars as $char => $row) { 
                                              
                                                  foreach (
                              $row as $question => $answer) { 
                                                      
                              $questions[] = Array(
                                                          
                              "letter" => $char,
                                                                 
                              "question" => $question 
                                                      
                              );
                                                  }  
                                          } 
                              Das geht aber nicht, ist ja eigentlich auch klar. Aber verstehst du so was ich meine, er soll diese Einträge jetzt eben alle in ein array einlesen (gruppiert) also jeweils Buchstabe den ich an anderer stelle wieder ausgeben kann und die Frage ....

                              --------------------------------------------

                              So erstellt er ja dann für jeden Eintrag ein Array

                              Kommentar


                              • #30
                                Hey,
                                wenn ich das mit den chars nun in das Items Array einfügen möchte,
                                stimmt das so nicht:

                                PHP-Code:
                                "char" => ($sql['question']{0}), 
                                ???

                                Danke

                                Kommentar

                                Lädt...
                                X