php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 03.06.2005, 04:03  
Gast
 
Beiträge: n/a
Standard [Erledigt] Select+while

Hallo ich habe folgende Frage, ich mache folgende Abfrage:

PHP-Code:
<?php
$result
=mysql_query("Select ps.*, p.* FROM project_spec ps, project p WHERE ps.country='$country' and ps.icd_id='$icd_id' and ps.speciality_id='$speciality_id' and ps.project_id=p.project_id");

  while (
$inhalt=mysql_fetch_array($result)){

      
$project_spec_id htmlspecialchars($inhalt[project_spec_id]);
      
$project_name htmlspecialchars($inhalt[project_name]);
      
$project_leaderhtmlspecialchars($inhalt[project_leader]);
      
$country htmlspecialchars($inhalt[country]);
      
$base htmlspecialchars($inhalt[base]);
      
$brand_name htmlspecialchars($inhalt[brand_name]);
      
$create_time htmlspecialchars($inhalt[create_time]);
      
$brand_id htmlspecialchars($inhalt[brand_id]);
      
$index2 htmlspecialchars($inhalt[$index]);

?>
Jetzt kommen hier die ganten Ausgaben,

$project_spec_id etc. . . . . .

Jetzt bekomme ich beispielsweise 10DS angezeigt und überall steht jetzt drüber der Projektname, Projektleiter, und dann Land, Base und so weiter.

Jetzt möchte ich aber wenn z.B. 5DS denn gleichen Projektnamen, Projekleiter haben, das die einzelnen DS nicht immer der gleiche PRojektname, Projektleiter drüber steht, sondern das einmal das Projektdrüber steht und dann die DS wo der Projektname dazugehört.

Muß ich dann den Projektnamen aus der while Schleife und den Projektleiter oder Group By oder wie
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 03.06.2005, 05:19  
Gast
 
Beiträge: n/a
Standard Re: Select+while

Zitat:
Zitat von entw23
Hallo ich habe folgende Frage,
...
Muß ich dann den Projektnamen aus der while Schleife und den Projektleiter oder Group By oder wie
Wohlwollend habe ich ausnahmsweise mal den letzten Satz als Frage angesehen. Allerdings habe ich damit ein Problem:
könntest Du das, was Du erreichen willst, noch mal in einer Sprache wiederholen, die ich auch verstehe? Ich wohne in DE und verstehe nur Deutsch...
 
Alt 03.06.2005, 08:56  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

Wie auch schon in deinem letzen Thread, wirfst du hier um dich, mit Sachen die man wohl nicht einfach so versteht, oder nur wenn man das Script selbst geschrieben hat. Was ist DS ?, erläutere es doch mal so, dass es auch ein Aussenstehender versteht und verzichte auf eigene Abkürzungen etc.

mfg
robo47
robo47 ist offline  
Alt 03.06.2005, 09:10  
Gast
 
Beiträge: n/a
Standard

würde mal raten dass er mit ds datensätze meint.
 
Alt 03.06.2005, 10:12  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

Bis der OP das mal in deutsche Sprache mit existierenden Worten übersetzt hat, kommt hier erst mal wieder eine Standard-Hinweis:

Oben in das Script einfach mal error_reporting(E_ALL); einbauen und dann staunen, wie oft "undefined constant..." ausgegeben wird...

Noch so als kleinen Hinweis an den OP:
Wenn Du Dir nicht mal die Zeit nimmst, irgendwelche Abkürzungen in Worte zu verwandeln und dann nochmal drüber zu gucken, ob das auch lesbar ist, warum soll sich dann jemand die Zeit nehmen, das Problem genauer anzugucken.

Bei Bedarf lassen sich sicher 100 Bedeutungen finden, wofür DS stehen könnte. Selbst wenn DS für Datensatz steht, was ist dann ein Zehndatensatz oder ein Fünfdatensatz?
Die Leertaste ist gar nicht so weit weg wie Du scheinbar meinst.
__________________
**********************************
Nein, ich bin nicht die Signatur.
Ich putze hier nur.
**********************************
Der_Gerhard ist offline  
Alt 03.06.2005, 14:16  
Gast
 
Beiträge: n/a
Standard

Entschuldigung !

Also ich bekomme bei meiner Abfrage oben 10 Datensätze. Jeder Datensatz gehört zu einem Projekt, es kann also auch sein das mehrere Datensätze zu ein und dem gleichen Projekt gehören.

Bis jetzt sieht es so aus (grob dargestellt)

Projektname: Projekt 1 Projektleiter: Max M.
DS 1
Projektname: Projekt 1 Projektleiter: Max M.
DS 2
Projektname: Projekt 1 Projektleiter: Max M.
DS3
Projektname: Projekt 2 Projektleiter: Max S.
DS4
Projektname: Projekt 2 Projektleiter: Max S.
DS5

DS = Datensatz

Jetzt haben Datensatz 1-3 die gleiche Projektnummer und Datensatz 4-5 auch die gleiche Projektnummer. Ich möchte das es so aussieht.

Projektname: Projekt 1 Projektleiter: Max M.
DS1
DS2
DS3
Projektname: Projekt 2 Projektleiter: Max S.
DS4
DS5

Was muss ich an meiner Abfrage oben ändern oder muß ich Projektname & Projektleiter aus der While-Schleife nehmen ?
 
Alt 03.06.2005, 14:18  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

schau dir mal DISTINCT an

http://dev.mysql.com/doc/mysql/en/select.html
robo47 ist offline  
Alt 03.06.2005, 14:27  
Erfahrener Benutzer
 
Registriert seit: 08.11.2004
Beiträge: 2.079
Der_Gerhard ist zur Zeit noch ein unbeschriebenes Blatt
Der_Gerhard eine Nachricht über ICQ schicken
Standard

@robo:
Etwas mehr könntest Du schon dazu schreiben.

@entw23:
1. Bei Deinem Design könnte es theoretisch passieren, dass Du bei einem Projekt mal unterschiedliche Projektleiter drinstehen hast. Vielleicht solltest Du die Zuordnung Projekt <-> Projektleiter in einer anderen Tabelle machen.

2. Du könntest einfach mal alle Projekte suchen (a) und dann zu jedem Projekt noch mal mit einer Abfrage alle Zeilen abfragen (b).
Bei (a) hilft Dir DISTINCT, siehe Link von robo; bei (b) brauchst Du nur noch eine WHERE-Bedingung in Deiner Abfrage.

3. Du könntest alternativ die Abfrage der Datenbank nach Projekt sortieren lassen. (ORDER BY...) und dann einfach die Projekt-ID des gerade ausgelesenen Datensatzes mit der zuletzt bearbeiteten Projekt-ID vergleichen und bei einem Unterschied eine entsprechende Kopfzeile für das Projekt ausgeben.

Edit:
Ich nehme mal an, dass es in Deinem Beispiel reiner Zufall ist, dass alle Datensätze eines Projektes schon unmittelbar aufeinander folgen.
Der_Gerhard ist offline  
Alt 03.06.2005, 14:28  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

ist heute freitag!! :P
robo47 ist offline  
Alt 03.06.2005, 16:13  
Erfahrener Benutzer
 
Registriert seit: 01.06.2004
Beiträge: 721
suendesizer
Standard

Bevor du die Zauberformel suchst:

Benutze doch in deiner while-Schleife eine temporäre Variable, in diese speicherst du z.B. Projekt und Projektleiter. In der darauffolgenden Wiederholung vergleichst du dann quasi den Wert der aktuellen Ausgabe mit dem der vorherigen, und wenn hier eine Übereinstimmung vorliegt einfach die redundanten Daten weglassen.

Beispiel:
PHP-Code:
<?php
$result 
mysql_query($anyQueryString);
$temp_member "";
$temp_project "";
while (
$dataset mysql_fetch_assoc($result)) {
    
$member $dataset['member'];
    
$project $dataset['project'];
    
$data $dataset['DS'];
    if(
$member != $temp_member) echo $member;
    if(
$project != $temp_project) echo $project;
    
$temp_member $member;
    
$temp_project $project
}
?>
So ungefähr...
__________________
If you read this message backward, Satan will force you to smoke marijuana.
Gute Tutorials
suendesizer ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] Kein Ergebnis bei SELECT (MySQL 4.1.9) dr.e. Datenbanken 4 15.06.2008 19:54
[Erledigt] Mysql Insert Select + Concat Hu5eL Datenbanken 14 10.06.2008 10:39
mysql_query verschmelzen zweier abfragen (while schleife) Buschdieb PHP Tipps 2006 10 15.07.2006 17:11
SELECT AS geht bei AVG net cyberholic Datenbanken 0 04.05.2006 09:43
[JavaScript] Event Handler in form select - Syntax? winfo_cologne HTML, Usability und Barrierefreiheit 5 29.03.2006 16:47
SELECT Liste aus MySQL verarbeiten jensK PHP Tipps 2006 9 09.02.2006 16:08
while Schleife gibt nicht alle Daten aus PHP Tipps 2006 2 12.01.2006 19:24
Probleme mit Inner Select Datenbanken 0 19.10.2005 15:22
selbst gelöst! Select <option> kleines Problem Dropdow 24bits PHP Tipps 2005-2 0 15.10.2005 19:19
while schleife in einer while schleife beim tmpl-sys PHP Tipps 2005-2 0 27.07.2005 15:07
2 verschachtelte while Schleifen. Großes Performanceproblem Datenbanken 3 30.05.2005 12:52
[Erledigt] SELECT in SELECT PHP Tipps 2005 5 06.04.2005 22:30
resultausgabe mit while schleife in pdf dokument PHP Tipps 2004 2 23.09.2004 14:56
[Erledigt] 2 mal select 1 form PHP-Fortgeschrittene 1 01.09.2004 20:13
Prob mit While schleife JEGO PHP Tipps 2004 2 04.06.2004 12:01

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
select while

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:03 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.