Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
php mysql Abfrge geteilt ausgeben
Gehe zu Seite 1, 2  Weiter
zurück: Wert / Name von Checkboxen ausgeben weiter: Auswertung Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
10. Okt 2012, 08:29
Rufname:

php mysql Abfrge geteilt ausgeben - php mysql Abfrge geteilt ausgeben

Nach oben
       

Hallo,
ich stehe mal wieder vor einem kleinen Problem. Ich habe eine Datenbank mit unterschiedlichen Personen. Je nach Zugehörigkeit haben diese eine Kenneung also L, K oder J
So nun habe ich mir eine Abfrage gebaut die wie folgt aussieht:
Code:
SELECT * FROM Tabelle ORDER BY Kennung
Jetzt werden mir die Personen geordnet unter einander ausgegeben.
Person1 J
Person2 J
Person3 K
Person4 K
Person5 L
Person6 L
Person7 L

Ich möchte aber gern eine Überschrift darüber setzten also so:
Überschrift 1
Person1 J
Person2 J

Überschrift 2
Person3 K
Person4 K

Überschrift 3
Person5 L
Person6 L
Person7 L

eine Einfache Lösung währe die SQL Abfrage 3 mal mit der jeweiligen Where bedingung durchzuführen, jedoch ist jetzt meine Frage ob jemand eine idee hat wie ich dies auch mit einer Abfrage machen kann und wenn ja wie.

Mir ist bis jetzt noch keine Lösung eingefallen und ich habe auch bei google nicht gewusst nach was ich in diesem Zusammenhang suchen soll.
Ich hoffe von euch weiß jemand eine Lösung Smile
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
10. Okt 2012, 10:14
Rufname:
Wohnort: Goslar


AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Die Überschriften kannst Du mit einer SQL-Abfrage nicht erzeugen.

Du kannst per PHP überprüfen, ob sich die Kennung von einem Datensatz zum nächsten geändert hat und dann eine Überschrift einfügen.

_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Gast



Verfasst am:
10. Okt 2012, 11:54
Rufname:

AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Ja das ich die überschrift nicht mit SQL erzeugen kann wusste ich.

Die Kennung überprüfen hört sich gut an Smile Kannst du mir auch noch kurz sagen wie ich soetwas mache?
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
10. Okt 2012, 16:23
Rufname:
Wohnort: Goslar

AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Du musst nur die alte Kennung in einer Variablen zwischenspeichern und mit der aktuellen Kennung vergleichen.
Sind alte und aktuelle Kennung unterschiedlich, gibst Du die Überschrift aus und setzt die Variable auf den Wert der aktuellen Kennung.

Das alles natürlich, bevor Du den eigentlichen Datensatz ausgibst...

_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Gast



Verfasst am:
10. Okt 2012, 21:44
Rufname:


AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Danke für deine Antwort.
Ich werde leider erst nächste Woche dazu kommen diese lösung zu testen.

Für mein Verständnis:
Ich müss den Wert dern ich aus der Datenbank bekomme also:
$einzelnerdatensatz['kennung']

vergleichen also: if $einzelnerdatensatz['kennung']==kennung1
Wenn ja gebe überschrift 1 aus.
Wenn nein gehe in die nächste If anweisung usw.

Das heißt ich habe 3 verschachtelte if Anweisungen?

Habe ich das so richtig verstanden?
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
11. Okt 2012, 09:52
Rufname:
Wohnort: Goslar

Re: AW: php mysql Abfrge geteielt ausgeben - Re: AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Nicht ganz...nur ein if:
Code:
$kennung="";
...
'Abfrage...
...
'Schleifenbeginn
...
if $einzelnerdatensatz['kennung']!=$kennung {
    'gebe überschrift zu $einzelnerdatensatz['kennung'] aus
    $kennung=$einzelnerdatensatz['kennung']
}
...
'Datensatz ausgeben
...
'Schleifenende
Damit ist es dann auch egal, wie viele unterschiedliche Kennungen vorkommen...
_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Gast



Verfasst am:
15. Okt 2012, 21:05
Rufname:

AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Danke für deine Antwort. Ich habe das jetzt getestet und bei mir kommt folgender Fehler:
Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in ... on line 39
das entspricht diese Zeile: if
Code:
$einzelnerdatensatz['kennung']!=$kennung
Der PHP Code sieht so aus:
Code:
<?php
$kennung="A";
$abfrage="SELECT * FROM mitglieder Order by kennung;";
$zeiger=mysql_query($abfrage);
if(!$zeiger)
{
   echo "Fehler: ".mysql_error();
}

while($einzelnerdatensatz=mysql_fetch_assoc($zeiger))
      {
         $geb = new datetime($einzelnerdatensatz['geburtsdatum']."");
         
         if $einzelnerdatensatz['kennung']!=$kennung
         {
         Ausgabe der Kennung $einzelnerdatensatz['kennung']
         $kennung=$einzelnerdatensatz['kennung']
         }
?>
Was ist da falsch?
Ich habe es auch mit $kennung1="A"; versucht, weil ich dachte das er durcheinander kommt wenn er 2 mal die Variable kennung hat also in der DB Abfrage und dann beim vergleichen aber daran lag es nicht Sad.
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
16. Okt 2012, 10:23
Rufname:
Wohnort: Goslar

Re: AW: php mysql Abfrge geteielt ausgeben - Re: AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Die Bedingung muss in Klammern gesetzt werden:

if ($einzelnerdatensatz['kennung']!=$kennung)

Mein Fehler...hab länger nicht mehr aktiv mit PHP gearbeitet - wobei Dir das eigentlich auch hätte auffallen müssen ;)

Ausserdem schliesst Du die While-Schleife nicht ab, da fehlt noch ein "}", und "Ausgabe der Kennung" steht nicht wirklich im Code, oder?.

_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Gast



Verfasst am:
16. Okt 2012, 22:05
Rufname:

AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Danke es waren wirklich die Klammern daran schuld :-/ die } Klammer hatte ich nur da noch etwas zwischen dem Code stand habe ich diese nicht mit herauskopiert und vergessen zu setzen Sad

"Ausgabe der Kennung" hatte ich nur für mich zum Testen hineingeschrieben Wink.

Also die bisher gemeldeten Fehler sind somit behoben.

Wenn ich das Script jetzt ausführe bekomme ich die Daten folgendermaßen angezeigt.

Kennung1 Kennung2
Datensätze für Kennung 1
Kennung 3
Datensatz für kennung 2
Datensatz für Kennung 3

Warum schreibt er mir die Kennung1 und 2 hintereinander? Ist das schonwieder ein kleiner fehler mit einer großen Auswirkung Sad
Code:
<?php
      while($einzelnerdatensatz=mysql_fetch_assoc($zeiger))
      {
         $geb = new datetime($einzelnerdatensatz['geburtsdatum']."");
         
         if ($einzelnerdatensatz['kamerad_art']!=$kennung)
         {
            echo $einzelnerdatensatz['kamerad_art'];
            ?><table align="center" border="0" cellpadding="0" cellspacing="0">
            <tr>
               <td><br></td>
            </tr>
            <tr>
               <td>Name</td>
               <td>Vorname</td>
               <td>Geburtsdatum</td>

            </tr><?php
         }

         if ($einzelnerdatensatz['kamerad_art']==$kennung)
         {   
?>
            <tr>
               <td><?php echo $einzelnerdatensatz['name']; ?></td>
               <td><?php echo $einzelnerdatensatz['vorname']; ?></td>
               <td><?php echo $geb->format('d.m.'); ?></td>
            </tr>
            <?php
         }
                  $kennung=$einzelnerdatensatz['kamerad_art'];
      }
?>

</table>
Die 2. If Anweisung musste ich setzen, ansonsten hatte er mir immer nur einen Datensatz pro Kennung ausgegeben.
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
17. Okt 2012, 13:09
Rufname:
Wohnort: Goslar

Re: AW: php mysql Abfrge geteielt ausgeben - Re: AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Anonymous - 16. Okt 2012, 22:05 hat folgendes geschrieben:
Die 2. If Anweisung musste ich setzen, ansonsten hatte er mir immer nur einen Datensatz pro Kennung ausgegeben.
Dann hast Du was falsch gemacht - die Ausgabe des eigentlichen Datensatzes muss bei jedem Schleifendurchlauf erfolgen, unabhängig von der If-Anweisung (also auch nicht im else-Zweig oder so...).
_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Gast



Verfasst am:
17. Okt 2012, 13:22
Rufname:

AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Ja aber was habe ich da falsch gemacht? Ich konnte leider nichts finden Sad Warum gibt er mir die Kennung 1 und 2 hintereinander aus? Das ist das was ich nicht verstehe :-/.
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
17. Okt 2012, 17:19
Rufname:
Wohnort: Goslar

AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Wie sieht denn der erzeugte HTML-Quelltext aus? Das wirkt in dem Skript ziemlich verworren - Du solltest Dir angewöhnen, nicht ständig zwischen HTML und PHP hin- und herzuspringen, sondern alles per echo auszugeben, was im dynamisch erzeugten Bereich liegt.

Du startest z.B. bei jeder Überschrift eine neue Tabelle (<table>), machst sie aber nur einmal wieder zu (</table>)...

_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Gast



Verfasst am:
17. Okt 2012, 19:26
Rufname:

AW: php mysql Abfrge geteielt ausgeben - AW: php mysql Abfrge geteielt ausgeben

Nach oben
       

Danke für deine Antwort.

Mein Code sieht wie folgt aus:
Code:
<?php
verbindungherstellen("open");

$kennung="";
$abfrage="SELECT * FROM mitglieder ORDER BY kamerad_art;";

$zeiger=mysql_query($abfrage);
if(!$zeiger)
{
   echo "Fehler: ".mysql_error();
}
?>
<table align="center" border="0" cellpadding="0" cellspacing="0">

<?php
      while($einzelnerdatensatz=mysql_fetch_assoc($zeiger))
      {
         $geb = new datetime($einzelnerdatensatz['geburtsdatum']."");
         
         if ($einzelnerdatensatz['kamerad_art']!=$kennung)
         {
            echo $einzelnerdatensatz['kamerad_art'];
            ?>
            <tr>
               <td><br></td>
            </tr>
            <tr>
               <td>Name</td>
               <td>Vorname</td>
               <td>Geburtsdatum</td>
            </tr><?php

         }

         if ($einzelnerdatensatz['kamerad_art']==$kennung)
         {   
?>
            <tr>
               <td><?php echo $einzelnerdatensatz['name']; ?></td>
               <td><?php echo $einzelnerdatensatz['vorname']; ?></td>
               <td><?php echo $geb->format('d.m.'); ?></td>

            </tr>
            
            <?php
         }
                  $kennung=$einzelnerdatensatz['kamerad_art'];
      }
?>

</table>
 <?php
verbindungherstellen("close");
?>
Das <table> habe ich wieder aus der schleife entfernt, jetzt zeigt er mir die überschriften hintereinander an (als überschrift zeigt er mir das jeweilige kürzel)
und darunter die Tabelle mit den Personen.

So sieht es jetzt aus:
Kennung1 Kennung 2 Kennung3

Person1 J
Person2 J

Person3 K
Person4 K

Person5 L
Person6 L
Person7 L

Er schreibt mir die Kennung noch nicht über die Personen :-/
Marsupilami72
Office-VBA-Programmierer


Verfasst am:
18. Okt 2012, 11:33
Rufname:
Wohnort: Goslar

AW: php mysql Abfrge geteilt ausgeben - AW: php mysql Abfrge geteilt ausgeben

Nach oben
       

Schau Dir doch mal den erzeugten HTML-Text an, wo Du die Kennung hinschreibst!

Noch mal: hör auf, dauernd zwischen HTML und PHP zu wechseln!

_________________
Gruß,
Martin

Bitte keine Fragen per PN - dafür ist das Forum da!
Gast



Verfasst am:
18. Okt 2012, 16:02
Rufname:


AW: php mysql Abfrge geteilt ausgeben - AW: php mysql Abfrge geteilt ausgeben

Nach oben
       

Danke für deine Antwort. Aber wie soll ich es schaffen eine Ordentliche Tabelle auszugeben wenn ich in meinem PHP code kein html verwenden soll? :-/

Ich gebe die Überschriften noch vor meinem ersten <tr> aus ja das habe ich gesehen aber ich nicht wie ich es anders machen soll, damit er mir für jede Kennung eine neue Tabelle ausgibt, damit es einheitlich aussieht.

Weißt du wie ich das meine?
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Gehe zu Seite 1, 2  Weiter
Diese Seite Freunden empfehlen

Seite 1 von 2
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge HTML Editoren Forum: php Variable in html ausgeben 2 Veritas1989 437 06. Jun 2013, 09:21
Veritas1989 php Variable in html ausgeben
Keine neuen Beiträge PHP & JavaScript Forum: Countdown Php variable übergeben 0 Php-Franz 527 01. Mai 2013, 16:20
Php-Franz Countdown Php variable übergeben
Keine neuen Beiträge PHP & JavaScript Forum: php Update sql 3 Haselmaus 722 11. Sep 2012, 10:16
Marsupilami72 php Update sql
Keine neuen Beiträge PHP & JavaScript Forum: mit php in Datenbank schreiben 4 Minimi 844 07. Sep 2012, 17:01
maninweb mit php in Datenbank schreiben
Keine neuen Beiträge PHP & JavaScript Forum: Inhalt aus txt-file lesen und ordentlich ausgeben 0 Natina 937 09. März 2012, 15:17
Natina Inhalt aus txt-file lesen und ordentlich ausgeben
Keine neuen Beiträge PHP & JavaScript Forum: tabelle formatiert ausgeben 5 falks 829 27. Jan 2012, 20:28
maninweb tabelle formatiert ausgeben
Keine neuen Beiträge PHP & JavaScript Forum: Daten ausgeben 3 Tom2002 1705 13. Okt 2010, 13:28
waldwuffel Daten ausgeben
Keine neuen Beiträge PHP & JavaScript Forum: Dateiname wird nicht in Mysql eingetragen 4 Hippolytus 1012 09. März 2010, 18:01
Hippolytus Dateiname wird nicht in Mysql eingetragen
Keine neuen Beiträge PHP & JavaScript Forum: Rette MySQL 0 chris47803 1096 01. Jan 2010, 22:32
chris47803 Rette MySQL
Keine neuen Beiträge HTML & CSS Forum: php / XML Datei von einer Internetseite abrufen und bearbeit 0 Elotec 3338 24. Okt 2009, 13:05
Elotec php / XML Datei von einer Internetseite abrufen und bearbeit
Keine neuen Beiträge PHP & JavaScript Forum: PHP/SQL eintragen 3 OASIS 4267 08. Okt 2009, 08:24
waldwuffel PHP/SQL eintragen
Keine neuen Beiträge PHP & JavaScript Forum: php und mysql 7 SpecialFighter 1623 04. Okt 2009, 21:48
waldwuffel php und mysql
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS