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

  • sdcleitung
    antwortet
    Hey,
    ich versteh zwar deinen Post nicht aber egal ...

    Habe den Fehler 500 jetzt weg bekommen allerdings kommt sobald ich print_r drin habe Content Encoding-Fehler (Firefox) bzw. Website kann nicht angezeigt werden (IE)

    und das ; ruft den Fehler 500 hervor (wenn ich das Array so befülle wie ich es im Post mehrfach geschrieben habe) ...

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Zitat von sdcleitung Beitrag anzeigen
    Meinst du mit Füße etwa das: ; ???

    Und was soll mir print_r denn bitte sagen? Wenn der Browser 500 ausgibt seh ich von print_r nichts ....
    Aha - ist das "geht nicht"? Du erzählst ja nix...

    Einen Kommentar schreiben:


  • sdcleitung
    antwortet
    Meinst du mit Füße etwa das: ; ???

    Und was soll mir print_r denn bitte sagen? Wenn der Browser 500 ausgibt seh ich von print_r nichts ....

    Einen Kommentar schreiben:


  • lstegelitz
    antwortet
    Zitat von sdcleitung Beitrag anzeigen
    Hey,
    doch sql gibt es ....
    ich habe es auch schon mit eckigen probiert und ohne () aber das ging alles nicht ...
    Hast vergessen die Füsse dran zu programmieren...

    "geht nicht" gibbet nich.

    Und benutz endlich print_r() und var_dump() wenn du nicht weißt, wie dein Array aufgebaut ist.

    Einen Kommentar schreiben:


  • sdcleitung
    antwortet
    Hey,
    doch sql gibt es ....
    ich habe es auch schon mit eckigen probiert und ohne () aber das ging alles nicht ...

    Einen Kommentar schreiben:


  • hondatuner
    antwortet
    Zitat von nikosch Beitrag anzeigen
    Genau genommen hast Du es ihm einfach gemacht.

    Die {0}-Syntax ist übrigens veraltet.
    Eckige Klammern machen den Code stellenweise unlesbar, weshalb ich bei geschweiften Klammern bleibe.

    Zitat von sdcleitung Beitrag anzeigen
    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
    Liegt vielleicht daran, dass es kein Array $sql gibt?!

    Einen Kommentar schreiben:


  • sdcleitung
    antwortet
    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

    Einen Kommentar schreiben:


  • sdcleitung
    antwortet
    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

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Da hast Du es Dir aber einfach gemacht ^^
    Genau genommen hast Du es ihm einfach gemacht.

    Die {0}-Syntax ist übrigens veraltet.

    Einen Kommentar schreiben:


  • hondatuner
    antwortet
    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

    Einen Kommentar schreiben:


  • sdcleitung
    antwortet
    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'];

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • sdcleitung
    antwortet
    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 .....

    Einen Kommentar schreiben:


  • hondatuner
    antwortet
    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 />';

    Einen Kommentar schreiben:


  • sdcleitung
    antwortet
    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? ) ) )

    Einen Kommentar schreiben:

Lädt...
X