php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Bewertung: Bewertung: 2 Stimmen, 5,00 durchschnittlich.
  #1 (permalink)  
Alt 05-06-2007, 14:04
pjodl
 Newbie
Links : Onlinestatus : pjodl ist offline
Registriert seit: Jun 2007
Ort: Frankfurt am Main
Beiträge: 10
pjodl ist zur Zeit noch ein unbeschriebenes Blatt
pjodl eine Nachricht über ICQ schicken
Standard [SQL allgemein] Fotos laden nach dropdown auswahl

Hallo zusammen,

unser Schulprojekt :

Automarke auswählen => Automodell auswählen

danach sollen zu dem ausgewählten auto felgenbilder angezeigt werden.

die dropdownmenus haben wir hingekriegt, d.h. wir wählen die automarke aus (z.B. BMW)...danach das Automodell (z.B. 5er). Es soll nun das Auto angezeigt werden.

Fragen : wie lautet der select befehl, der mir nach auswahl des automodells das entsprechende fahrzeugbild anzeigt ?
wir würden gerne die bilder der autos von festplatte/webserver laden lassen.

sind blutige anfänger :-) hoffe ihr könnt uns weiterhelfen...

danke vorab schon einmal
Mit Zitat antworten
  #2 (permalink)  
Alt 05-06-2007, 14:44
jahlives
 Master
Links : Onlinestatus : jahlives ist offline
Registriert seit: Jun 2004
Ort: Hooker in Kernel
Beiträge: 8.279
jahlives ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
$sql "SELECT bildURL FROM auto WHERE model='".$_POST['automodell']."' LIMIT 1"
so ganz ohne Eure Struktur in der DB zu kennen.

Gruss

tobi
__________________
Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."
Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)
Mit Zitat antworten
  #3 (permalink)  
Alt 07-06-2007, 09:16
pjodl
 Newbie
Links : Onlinestatus : pjodl ist offline
Registriert seit: Jun 2007
Ort: Frankfurt am Main
Beiträge: 10
pjodl ist zur Zeit noch ein unbeschriebenes Blatt
pjodl eine Nachricht über ICQ schicken
Standard

Hallo, danke für die schnelle Antwort.

leider hat uns der Befehl nicht weitergeholfen. :-(

ich poste mal das sql script welches wir die anlegung der tabellen in der datenbank haben :

CREATE TABLE tbl_ah (
index_ah INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name_ah CHAR(30) NOT NULL,
PRIMARY KEY(index_ah)
);

CREATE TABLE tbl_am (
index_am INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tbl_ah_index_ah INTEGER UNSIGNED NOT NULL,
name_am CHAR(30) NOT NULL,
pfad_am CHAR(30) NULL,
PRIMARY KEY(index_am),
INDEX tbl_am_FKIndex1(tbl_ah_index_ah)
);

CREATE TABLE tbl_bez_am_fh (
tbl_am_index_am INTEGER UNSIGNED NOT NULL,
tbl_fh_index_fm INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(tbl_am_index_am, tbl_fh_index_fm),
INDEX tbl_am_has_tbl_fh_FKIndex1(tbl_am_index_am),
INDEX tbl_am_has_tbl_fh_FKIndex2(tbl_fh_index_fm)
);

CREATE TABLE tbl_fh (
index_fm INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
fh_name CHAR(30) NULL,
PRIMARY KEY(index_fm)
);

CREATE TABLE tbl_fm (
index_fm INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tbl_fh_index_fm INTEGER UNSIGNED NOT NULL,
name_fm CHAR(30) NULL,
beschreibung_fm LONGTEXT NULL,
pfad_fm CHAR(30) NULL,
PRIMARY KEY(index_fm),
INDEX tbl_fm_FKIndex1(tbl_fh_index_fm)
);

ah = autohersteller
am = automodell
fh = felgenhersteller
fm = felgenmodell


So...das war das script. Alle Tabellen werden sauber angelegt ohne Fehler.

Auf http://pjodl.dyndns.org/konfigurator ist die Webseite die bisher läuft.
Wie man sehen kann nicht gerade viel.

Ich poste auch mal den code der seite :
PHP-Code:
<?php
include 'dbconfig.php';

$ahersteller = ($_POST["ahersteller"]);
$amodell = ($_POST["amodell"]);

function 
gen_ahersteller_dropdown(){
$ahersteller = ($_POST['ahersteller']);
if(!empty(
$ahersteller)){

$sql "SELECT * FROM tbl_ah WHERE index_ah = '$ahersteller';";
  
$result mysql_query($sql);
    while(
$row mysql_fetch_assoc($result)) { 
    echo 
'<option selected=selected value="'.$row['index_ah'].
    
'">'.$row['name_ah'].'</option>';
    }       
}

$sql "SELECT * FROM tbl_ah";
  
$result mysql_query($sql);
    while(
$row mysql_fetch_assoc($result)) { 
    echo 
'<option value="'.$row['index_ah'].
    
'">'.$row['name_ah'].'</option>';
    }       
}

function 
gen_amodell_dropdown(){
$ahersteller = ($_POST["ahersteller"]);

$result mysql_query("SELECT name_am, pfad_am FROM tbl_am 
WHERE tbl_ah_index_ah = '" 
$_POST['ahersteller'] . "'");

$sql "SELECT index_am,tbl_am.name_am FROM tbl_am 
WHERE tbl_am.tbl_ah_index_ah = "
.$ahersteller.";";
//$sql = "SELECT name_am FROM tbl_am";
  
$result mysql_query($sql);
    while(
$row mysql_fetch_assoc($result)) { 
    echo 
'<option value="'.$row['index_am'].
    
'">'.$row['name_am'].'</option>';
    }       
}
?>
<form name="insert" method="post" action="index.php">
<table width="300" border="1">
  <tr>
      <th colspan="2">Insert</th>
  </tr>
  <tr>
    <td>Autohersteller</td>
    <td>
    <select onchange="this.form.submit()" name="ahersteller" 
    value="<?php if(!empty($ahersteller)) 
    echo 
$ahersteller?>"><?php gen_ahersteller_dropdown(); ?></select>    </td>
  </tr>
  <tr>
    <td>Automodell</td>
    <td>
    <select name="amodell"><?php gen_amodell_dropdown(); ?></select>    </td>
  </tr>
  <tr>
    <td colspan="2"><input type="submit" name="Submit" value="Senden" /></td>
  </tr>
</table>
<?php echo "Hersteller : " $ahersteller "<br>" $sql;?>
</form>
<?php

$result 
mysql_query("SELECT * FROM tbl_ah");
while(
$row mysql_fetch_array($result)) {
  echo 
$row["name_ah"];
}
?>
<br />
<?php

$result 
mysql_query("SELECT * FROM tbl_am");
while(
$row mysql_fetch_array($result)) {
  echo 
$row["name_am"];
}
?>
So...jetzt ist vielleicht für euch mehr zu sehen.
Also was noch nicht läuft und wo ich einfach den Fehler nicht sehe ist :

nachdem ich die automarke auswähle soll das automodell auszuwählen sein. Jedoch nach der Auswahl der Automarke steht nichts bei Automodell drin *mist*... Also wenn da jemand ein Tipp hat wäre cool...

Tobi hat ja schon den select befehl geschrieben um die bild-url aus der datenbank zu bekommen. Hab nen ganzen tag gesessen aber irgendwie wollte nichts so recht funzen.

Also nachdem ich nun die Automarke folglich das Automodell auswähle, soll dann der Bild-Pfad (aus tbl_am => pfad_am) geholt werden. Und mit dem Pfad den ich dort heraushole soll nun die Webseite auf der Festplatte nach dem Bild suchen und das Bild holen und folglich anzeigen.

Vielleicht kann uns jemand weiterhelfen ... Wir wären sehr dankbar!

Geändert von pjodl (07-06-2007 um 16:00 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 07-06-2007, 10:41
ArSeN
 Registrierter Benutzer
Links : Onlinestatus : ArSeN ist offline
Registriert seit: Feb 2006
Ort: Berlin
Beiträge: 1.052
ArSeN ist zur Zeit noch ein unbeschriebenes Blatt
ArSeN eine Nachricht über ICQ schicken ArSeN eine Nachricht über AIM schicken ArSeN eine Nachricht über Yahoo! schicken
Standard

Ich bin nicht willens deinen HTML(und PHP)-Quelltext durchzulesen da du offenbar nicht in der Lage bist den entsprechenden PHP-Tag zu benutzen.

PHP-Code:
$result mysql_query("SELECT name_am, pfad_am FROM tbl_am 
                       WHERE tbl_ah_index_ah = '" 
$_POST['ahersteller'] . "'"); 
ungetestet... btw. is eure Struktur übrigens ganzschön komisch .

EDIT:
Sorry.. doofe große auflösung
__________________
Nur wenige wissen, wieviel man wissen muss, um zu wissen, wie wenig man weiß.

Geändert von ArSeN (07-06-2007 um 22:28 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 07-06-2007, 12:47
pjodl
 Newbie
Links : Onlinestatus : pjodl ist offline
Registriert seit: Jun 2007
Ort: Frankfurt am Main
Beiträge: 10
pjodl ist zur Zeit noch ein unbeschriebenes Blatt
pjodl eine Nachricht über ICQ schicken
Standard

Hallo zurück.

Vielen Dank für deine Hilfe, werds später mal testen und gucken ob ich das hinbekommen.
Deine Kritik ist vollkommen berechtigt. Nun ist der Code in PHP Tags (sorry).
Wir sind leider Anfänger, deshalb ist die Struktur des ganzen vielleicht ein wenig wirr...

Bis später!
Mit Zitat antworten
  #6 (permalink)  
Alt 07-06-2007, 13:22
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Bitte den Code auch so umbrechen, dass man auf 1024x768 Pixeln nicht horizontal scrollen muss!
Mit Zitat antworten
  #7 (permalink)  
Alt 07-06-2007, 20:17
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sooo ich hab mal geschaut wegen eurer datenbank...

die struktur die ihr vorseht, impliziert, dass alle felgen eines herstellers zu einem automodell passen, wegen der beziehung

automodell -> felgenhersteller -> felgenmodell....

es gibt keine direkte beziehung zwischen automodell und felgenmodell...

ich denke, die beziehung andersherum aufzubauen wäre sinnvoller, weil realer...

automodell -> autohersteller
felgenmodell -> felgenhersteller

aber automodell -> felgenMODELL (hier nicht hersteller)...


greetz high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #8 (permalink)  
Alt 07-06-2007, 20:39
pjodl
 Newbie
Links : Onlinestatus : pjodl ist offline
Registriert seit: Jun 2007
Ort: Frankfurt am Main
Beiträge: 10
pjodl ist zur Zeit noch ein unbeschriebenes Blatt
pjodl eine Nachricht über ICQ schicken
Standard

Hallo high...

ich habe nun nochmals die Datenbank entworfen...

ist sie denn so richtig ?

CREATE TABLE tbl_ah (
index_ah INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
name_ah CHAR(30) NOT NULL,
PRIMARY KEY(index_ah)
);

CREATE TABLE tbl_am (
index_am INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tbl_ah_index_ah INTEGER UNSIGNED NOT NULL,
name_am CHAR(30) NOT NULL,
pfad_am CHAR(30) NULL,
PRIMARY KEY(index_am),
INDEX tbl_am_FKIndex1(tbl_ah_index_ah)
);

CREATE TABLE tbl_am_has_tbl_fm (
tbl_am_index_am INTEGER UNSIGNED NOT NULL,
tbl_fm_index_fm INTEGER UNSIGNED NOT NULL,
PRIMARY KEY(tbl_am_index_am, tbl_fm_index_fm),
INDEX tbl_am_has_tbl_fm_FKIndex1(tbl_am_index_am),
INDEX tbl_am_has_tbl_fm_FKIndex2(tbl_fm_index_fm)
);

CREATE TABLE tbl_fh (
index_fm INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
fh_name CHAR(30) NULL,
PRIMARY KEY(index_fm)
);

CREATE TABLE tbl_fm (
index_fm INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
tbl_fh_index_fm INTEGER UNSIGNED NOT NULL,
name_fm CHAR(30) NULL,
beschreibung_fm LONGTEXT NULL,
pfad_fm CHAR(30) NULL,
PRIMARY KEY(index_fm),
INDEX tbl_fm_FKIndex1(tbl_fh_index_fm)
);

ah = autohersteller
am = automodell

Also so müsste das stimmen.
Großen Dank an dich high, das war ja ein ganz schön großer Patzer in der Datenbank !!!

So nun komm ich aber immer noch nicht mit dem PHP Programmieren weiter.
Das was richtig funktioniert ist der Datenbank Verbindung.
Danach kann ich immer hin schon mal mir jeweils die Autohersteller und Aotimodell per Dropdown auswählen...

Aber soll ja eine Abhängigkeit bestehen.
Nachdem ich Autohersteller auswähle, soll Automodell angezeigt werden...
Hab auch schon gegoogelt...aber leider hat alles noch nciht hingehauen !


fh = felgenhersteller
fm = felgenhersteller
Mit Zitat antworten
  #9 (permalink)  
Alt 08-06-2007, 01:55
highrise
 Member
Links : Onlinestatus : highrise ist offline
Registriert seit: Apr 2006
Ort: zu Hause *g*
Beiträge: 257
highrise ist zur Zeit noch ein unbeschriebenes Blatt
Standard

die tabellen sehen jetzt gut aus...
damit kann man was anfangen, normalisierung passt so weit, die daten werden dort gespeichert, wo sie dazugehören, redundanz gibt es keine, beziehungen können so aufgebaut werden, wie benötigt...

ohne jetzt das erzeugte HTML durchgesehen zu haben sehen auch die anderen Sachen ganz okay aus...

die auswahl muss muss in zwei schritten erfolgen.

PHP weiß ja nicht, was der besucher ausgewählt hat, bevor ihm das mitgeteilt wird...

das bedeutet, dass du mehrere möglichkeiten hast:

entweder formular aufteilen und erst den hersteller wählen lassen -> abschicken...
nun steht php die information zur verfügung. danach kannst du dann die möglichen modelle wählen.

eine zweite möglichkeit wäre, alle möglichen kombinationen auszulesen, und bei auswahl des herstellers die modell-auswahl per javascript anzupassen. Das ist für den Benutzer komfortabler, aber es müssen deutlich mehr informationen an den browser geschickt werden (eben nicht nur alle hersteller, und dann alle passenden modelle, sondern tatsächlich alle hersteller mit ALLEN modellen)

eine dritte möglichkeit wäre, die passenden modelle nachzuladen (Stickwort AJAX / xmlHTTPRequest). Das bringt dann wenig Traffic (wie bei möglichkeit 1) und weiterhin größten Komfort (wie bei Möglichkeit 2). Allerdings ist diese Lösung Programmiertechnisch die anspruchsvollste.

Am einfachsten umzusetzen wäre Möglichkeit 1 (ist eben stur geradeaus...) aber ich weiß ja nicht, ob das eurer Aufgabenstellung genügt.

Im Grunde musst du dir als erstes mal eines klar machen:
Jede Nutzer-Interaktion passiert im Browser (JavaScript / Formularauswahl etc.)
PHP läuft auf dem Server
Bevor einer der beiden auf eine Aktion reagieren kann, muss erst ein Datenaustausch stattfinden (auf welchem weg auch immer)
Bedeutet, PHP erzeugt eine webseite, aber der browser weiß nichts davon... Der webserver muss die Seite erst an den Browser ausliefern, bevor dieser die Darstellen kann. Andersherum genauso... im Browser passiert eine Auswahl, aber der Server weiß nichts davon, bis die Daten wieder an diesen zurückgeschickt werden.

greetz, high
__________________
Good programming is 40% experience, 20% skill, 20% RTFM, 15% caffeine, and 5% attention to detail.
When everything else fails, manipulate the data...
Beschriftungen / Großformatdruck / Werbemittel
Mit Zitat antworten
  #10 (permalink)  
Alt 11-06-2007, 16:36
pjodl
 Newbie
Links : Onlinestatus : pjodl ist offline
Registriert seit: Jun 2007
Ort: Frankfurt am Main
Beiträge: 10
pjodl ist zur Zeit noch ein unbeschriebenes Blatt
pjodl eine Nachricht über ICQ schicken
Standard

So bin nun weitergekommen....habe zumindest die dropdownmenus hinbekommen ohne abhängigkeiten... folgender code ist nun existent und kann unter http://pjodl.dyndns.org/konfigurator/ angesehen werden.

PHP-Code:
<? 
include 'dbconfig.php';
$sql="SELECT name_autohersteller FROM tbl_autohersteller"
$result=mysql_query($sql); 

$options=""

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

    
$id=$row["id"]; 
    
$name_autohersteller=$row["name_autohersteller"]; 
    
$options.="<OPTION VALUE=\"$id\">".$name_autohersteller

?> 
<p>
  <SELECT NAME=name_autohersteller> 
    <OPTION VALUE=0>Wähle deine Automarke
    <?=$options?> 
  </SELECT> 
  <? 
$sql
="SELECT name_automodell FROM tbl_automodell"
$result=mysql_query($sql); 

$options=""

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

    
$id=$row["id"]; 
    
$name_automodell=$row["name_automodell"]; 
    
$options.="<OPTION VALUE=\"$id\">".$name_automodell

?>
</p>
<p> 
  <SELECT NAME=name_automodell> 
    <OPTION VALUE=0>Wähle dein Automodell
    <?=$options?> 
  </SELECT> 
  <? 
$sql
="SELECT pfad_automodell FROM tbl_automodell"
$result=mysql_query($sql); 

$options=""

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

    
$id=$row["id"]; 
    
$pfad_automodell=$row["pfad_automodell"]; 
    
$options.="<OPTION VALUE=\"$id\">".$pfad_automodell

?> 
</p>
<p>
  <SELECT NAME=name_autohersteller> 
    <OPTION VALUE=0>Bildpfad 
    <?=$options?> 
  </SELECT>
</p>
Als nächstes wäre da nun die Abhängigkeit...also das Sprungmenu was ich nicht hinbekomme...bzw. hinbekommen werde ich es irgendwann...aber das Projekt muss in 10 Tagen fertig werden. Also wenn jemand weiss wie ich die Abhängigkeit hinbekomme zwischen den Dropdownmenus wäre ich sehr dankbar... (nach Auswahl BWM soll im Folge Dropdownmenu nur noch 3er und 5er stehen).
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:07 Uhr.