php.de

Zurück   php.de > Webentwicklung > Datenbanken

Datenbanken SQL und Co

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 29.04.2005, 19:50  
Erfahrener Benutzer
 
Registriert seit: 29.04.2005
Beiträge: 323
Dragon26mFR
Standard Hilfe brauche doppelabfrage und es geht nicht

Ich habe eine (Mysql)Datenbank mit folgendem inhalt:

hauptgruppen:
hauptgruppen_id, titel

kurse:
kurse_id, kurstitel, hauptgruppen_id

In Hauptgruppen sind die ober kategorien:
1 , Office
2 , Internet
.....

In Kurse sind die kurse:
1 , Word , 1
2 , Ecxel , 1
3 , Suchen und Finden , 2
4 , Sicherheit im Netz , 2
........


Ich habe für die auswahl ein javascript und brauche die einträge im zusammenhang.

javascript:
........
<?
$ab1 = mysql_query("SELECT * FROM hauptgruppen");
while($sub1 = mysql_fetch_object($ab1))
{
$su= "".$sub1->hauptgruppen_id."";
echo "else if (kategorieAuswahl.options[kategorieAuswahl.selectedIndex].value == \"".$sub1->titel."\")";
echo "{";
$coun=0;

$ab2 = mysql_query("SELECT * FROM kurse WHERE hauptgruppen_id='$su' & anzeigen=1 ");
while($sub2 = mysql_fetch_object($ab2))
{
echo "subkategorieAuswahl.options[".$coun."] = new Option(\"".$sub2->kurstitel."\");";
echo "subkategorieAuswahl.options[".$coun."].value = (\"".$sub2->kurstitel."\");";
$coun++;
}

echo "}";
}
?>
..........


Die erste hauptgruppe wird korekt angezeigt aber die 2te ist leer.
Ich finde dehn fehler leider nicht.
Wäre echt klasse wenn ihr mir da helfen könnt.
Hoffe mein problehm ist klar. *g*
Dragon26mFR ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 29.04.2005, 20:50  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

was hat denn das mit javascript zu tun ?

benutze mysql_error(), vielleicht geht da was schief...

kann man & anstelle von AND benutzen ?
__________________
Was ist validität?
fantast ist offline   Mit Zitat antworten
Alt 29.04.2005, 21:36  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

übrigens ist es keine gute idee, SELECTs innerhalb von while-schleifen zu setzen.

hauptgruppen:
hauptgruppen_id, titel

kurse:
kurse_id, kurstitel, hauptgruppen_id

Code:
   SELECT 
      h.hauptgruppen_id as hid, h.titel as htitel,
      k.kurse_id as kid, k.kurstitel as kurstitel 
     FROM hauptgruppen as h
     LEFT JOIN kurse as k ON k.hauptgruppen_id = h.hauptgruppen_id
gibt dir das ganze als ein resultset zurück.
axo ist offline   Mit Zitat antworten
Alt 30.04.2005, 19:10  
Erfahrener Benutzer
 
Registriert seit: 29.04.2005
Beiträge: 323
Dragon26mFR
Standard

Also "resultset" sagt mir leider nichts. *g*

Ich kenne mich leider nicht mit arrays aus aber es ist doch wohl ein 3.Dimensionales Array.

Office,
---------Word
---------Ecxel

Internet,
-----------Suchen und Finden
-----------Sicherheit im Netz

........

Die frage ist wie ich das aus der Datenbank abfragen kann und sauber ausgeben.

Das javascript braucht erst 1mal die Hauptgruppe und dann Xmal die kurse die zur Hauptgruppe gehören.
Dann Die nächste hauptgruppe und wieder Xmal die kurse die zur Hauptgruppe gehören.

Währe echt klasse wenn ihr mir da helfen könnt ich blicks einfach nicht.
So wie ich es versucht habe klappts ja leider eh nicht.

Achja Fehler wird keiner angezeigt.
Dragon26mFR ist offline   Mit Zitat antworten
Alt 30.04.2005, 20:45  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von axo
übrigens ist es keine gute idee, SELECTs innerhalb von while-schleifen zu setzen.
warum?

Zitat:
Zitat von axo
Code:
   SELECT 
      h.hauptgruppen_id as hid, h.titel as htitel,
      k.kurse_id as kid, k.kurstitel as kurstitel 
     FROM hauptgruppen as h
     LEFT JOIN kurse as k ON k.hauptgruppen_id = h.hauptgruppen_id
gibt dir das ganze als ein resultset zurück.
und? was bringt das? Wenn er das so machen würde hätte er die Daten über die Hauptgruppen in jeder Zeile, was erstens bedeutet, dass er alles doppelt hat und zweitens, dass nun die Kurse auch noch sortiert werden müssen...
aber evtl. bin ich ja auch nur einfach blind...
  Mit Zitat antworten
Alt 01.05.2005, 00:30  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Zitat von laprican
warum?
überleg mal, wie viele abfragen du an die datenbank stellen musst, wenn du zwei queries machst (die eine innerhalb der while-schleife) ...
genau (anzahlDerHauptgruppen) +1 queries.

mit meiner abfrage stellst du nur eine abfrage an die datenbank, und zwar egal wie viele hauptgruppen es gibt.

der performancegewinn ist im vergleich zu den produzierten 'mehr-daten' höher zu bewerten, außerdem kann man trotzdem noch in der abfrage sortieren, und man _kann_ eine datenbank unnötig in die knie zwingen, _muss_ aber nicht, ne?
axo ist offline   Mit Zitat antworten
Alt 01.05.2005, 08:25  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Und die entsprechende Ausgabe machst du mit PHP (von JavaScript sehe ich in dem Code gar nichts) im folgenden Stil:
PHP-Code:
<?php
$sql 
// axo's Query;
$res mysql_query($sql) or die("Fehler: 
mysql_error . . "
$sql"
);
$gruppe '';
while(
$sub1 mysql_fetch_object($ab1)) {
    if (
$gruppe != $sub1->htitel){
           
$gruppe $sub1->htitel;
           echo 
"$sub1->htitel
"
;
    }
    echo 
"-------- $sub1->kurstitel
"
;
}
?>
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 01.05.2005, 10:30  
Erfahrener Benutzer
 
Registriert seit: 29.04.2005
Beiträge: 323
Dragon26mFR
Standard

Vielen Dank Jetzt geht es ich habe aber ein INNER JOIN draus gemacht da ich ja nur Hauptgruppen brauche wo es auch untergruppen gibt aber das war ja nicht die problehmstellung *g*.
Es geht jetzt jedenfalls.

*Mich vor euch verneige*


<?php
$res = mysql_query("SELECT
h.hauptgruppen_id as hid, h.titel as htitel,
k.kurse_id as kid, k.kurstitel as kurstitel
FROM hauptgruppen as h
INNER JOIN kurse as k ON k.hauptgruppen_id = h.hauptgruppen_id");
$gruppe = ' ';
while($sub1 = mysql_fetch_object($res)) {
if ($gruppe != $sub1->htitel){
$gruppe = $sub1->htitel;
echo "$sub1->htitel
";
}
echo "-------- $sub1->kurstitel
";
}
?>
Dragon26mFR ist offline   Mit Zitat antworten
Alt 01.05.2005, 11:01  
axo
Erfahrener Benutzer
 
Registriert seit: 24.12.2004
Beiträge: 1.814
axo ist zur Zeit noch ein unbeschriebenes Blatt
Standard

alles klar. um die arbeit beim nächsten mal zu erleichtern, beachte bitte folgendes:

- code in [ php ] - tags packen, dann wird's besser lesbar.

- gewöhn dir bitte an, statt
PHP-Code:
<?php
 
echo "-------- $sub1->kurstitel
"

?>
so zu arbeiten:

PHP-Code:
<?php
 
echo "-------- ".$sub1->kurstitel ."
\n"

?>
d.h. variablen nicht zusätzlich in anführungszeichen einbetten, weil sonst u.U. fehlermeldungen unterdrückt werden.
zusätzlich ein \n hinter die zeile, dann bleibt auch der html-quelltext lesbar.

viel glück noch
axo
axo ist offline   Mit Zitat antworten
Alt 01.05.2005, 11:53  
Erfahrener Benutzer
 
Registriert seit: 29.04.2005
Beiträge: 323
Dragon26mFR
Standard

Jo sorry hast ja recht *g*
Habs nur so copiert wie es oben steht. *g*
Denke in meinem code ist es jetzt richtig. *g*
\n verwende ich eigentlich nie um den code unüberschaubarer zu machen *sfg*
Aber das ist ein anderes thema.
Dragon26mFR ist offline   Mit Zitat antworten
Antwort


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
Brauche hilfe mik08 PHP Tipps 2008 10 27.07.2008 16:17
Datenbanktabelle erstellen - brauche Hilfe Raccoon PHP Tipps 2008 1 14.06.2008 11:03
Ich brauche eure Hilfe beim rechnen... GELight PHP Tipps 2006 6 07.04.2006 14:20
Ich brauche eure Hilfe PHP Tipps 2006 22 19.02.2006 19:57
PHP <--> MySQL | Brauche Hilfe ahnungsloser Datenbanken 18 16.02.2006 21:49
brauche eben hilfe PHP Tipps 2007 2 26.11.2005 08:36
brauche sehr schnell und dringend hilfe Beitragsarchiv 13 24.10.2005 13:11
HILFE ! Brauche ganz dringend hilfe! PHP Tipps 2005-2 2 10.10.2005 23:08
brauche hilfe!!! marcelglaeser HTML, Usability und Barrierefreiheit 0 03.10.2005 20:01
Hilfe, Ich brauche hilfe! Kevin PHP Tipps 2005-2 2 27.09.2005 19:31
BRAUCHE DRINGENDE HILFE !!! PHP Tipps 2005-2 2 06.08.2005 19:45
Brauche Hilfe bei preg_match() PHP Tipps 2005-2 2 23.07.2005 22:44
[Erledigt] Brauche dringend Hilfe PHP Tipps 2005 19 01.02.2005 20:21
Brauche Hilfe PHP Tipps 2005 5 11.01.2005 15:30
Brauche Hilfe - kenne mich nicht aus - zahlen auch dafür Beitragsarchiv 1 09.08.2004 16:10

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
sql doppelabfrage, mysql doppelabfrage, mysql doppelabfragen, mysql doppelabrage, php if doppelabfrage, php mysql doppelabfrage, doppelabfrage php, where doppelabfrage, java if doppelabfrage, doppelabfragen mysql, mysql where doppelabfrage, mysql doppelabfragen ausgeben, doppelabfrage sql, while doppelabfrage, sql doppelabfragen, mysql doppelabfage, doppelabfrage mysql, http://www.php.de/datenbanken/22214-hilfe-brauche-doppelabfrage-und-es-geht-nicht.html, php javascript doppelabfrage, java resultset 2 \while schleifen\

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:01 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.