php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-05-2007, 17:11
starr112
 Newbie
Links : Onlinestatus : starr112 ist offline
Registriert seit: Mar 2006
Beiträge: 7
starr112 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Verschachtelte while-Schleifen, Alternative ?

Huhu ;-)!

Steh grad irgendwie aufm Schlauch.

Bin grad dabei 'n kleines Browsergame zu basteln um in PHP nicht einzurosten.

Folgendes...

Ich hab 2 Tabellen, user_buildings und buildings.

user_buildings
user_id | b_id | lvl
9 | 1 | 1
9 | 3 | 1

buildings
id | b_name | b_descr
1 | Erzmine | Die Erzmine....
2 | Sägewerk | Das Sägewerk....
3 | Ölförderpumpe | Die Ölförderpumpe....

(b_id entspricht den Gebäude-ID's)

Bei der Gebäudeübersicht will ich jetzt alle Gebäude (aus Tabelle buildings) ausgeben, ist ja kein Problem. Dazu will ich dann aber auch noch einen Link zum weiteren Gebäudeausbau generieren, wenn das Gebäude mind. schon eine Stufe ausgebaut wurde (erst dann wird nämlich ein Eintrag in die user_buildings gemacht), und da liegt mein Problem.

Ich habe momentan 2 Queries. Eine liest die Tabelle buildings aus, die andere die Daten aus user_buildings.
Mit mysql_num_rows überprüfe ich dann, ob ein Datensatz aus user-Buildings ausgelesen wurde, wenn nicht, wurde nie was gebaut und ich kann alleGebäude und Links, zum bauen auf Stufe 1, ausgeben.
Wenn etwas aus user_buildings ausgelesen wurde, erstelle in der while-Schleife, eine weiter, die die Ergebnisse in ein Array packt und dann überprüft, ob b_id mit der id des Gebäudes übereinstimmt, wenn ja, dann wird der Link zum Ausbau ausgegeben. Da liegt dann mein Problem...

PHP-Code:
<?php
while($building mysql_fetch_assoc($buildRes)) {

//unwichtig...
        
        
while($userBuilding mysql_fetch_assoc($userBuildingRes)) {
                if(
$building['id'] == $userBuilding['b_id']) {
                    echo 
"Stufe " . ($userBuilding['lvl'] + 1) . " Bauen";
                } else {
                    echo 
"Bauen";
                } 
            
        }
//unwichtig...

}
?>
Kann ja nicht funktionieren
Hab es auch mit break; in der "inneren" while-Schleife versucht...

Dachte erst an JOIN, aber da hab ich ja nur die Möglichkeit mir die Datensätze ausgeben zu lassen, die mit b_id übereinstimmen ... oder alle die mit b_id nicht übereinstimmen. Richtig ?

Bei Google und Co bin ich auch gescheiert, finde keine passenden Keywords :-/

Mach ich es mit kompliziert ? oder ist meine DB-Struktur einfach für 'n A.... Hintern ?

Danke schonmal!

MfG
starr
Mit Zitat antworten
  #2 (permalink)  
Alt 30-05-2007, 17:16
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

LEFT JOIN?
Hab jetzt den Post nicht ganz gelesen (weil mein Essen wartet und der ist definitiv zu lang um ihn vorher noch zu lesen), aber hört sich nach der richtigen Lösung an ^^, (oder zumindest in die Richtung)
Mit Zitat antworten
  #3 (permalink)  
Alt 30-05-2007, 17:43
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du kannst
- in einer Schleife alle Gebäude in ein Array einlesen mit der GebäudeId als Key
- dann in einer weiteren Schleife (die nicht innerhalb der ersten ist), alle user-Building-Level auslesen, und die in ein weiteres Array tun, wieder mit der GebäudeID als key
- Schließlich mit foreach alle Buildings abklappern und überprüfen, ob der user_building_level für das Gebäude gesetzt wurde. (pseudocode: )
PHP-Code:
foreach($buildings as $k=>$b) {
   if (isset(
$user_building_level[$k])){
      echo(
$b->name " hast du auf Stufe " $user_building_level[$k] . " ausgebaut.");
   } else {
       echo(
" du kannst " $b->name " jetzt bauen ");
   }

(so würde ich das machen - Beispiel ungetestet)
__________________
ich glaube
Mit Zitat antworten
  #4 (permalink)  
Alt 30-05-2007, 18:38
starr112
 Newbie
Links : Onlinestatus : starr112 ist offline
Registriert seit: Mar 2006
Beiträge: 7
starr112 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von ghostgambler
LEFT JOIN?
Hab jetzt den Post nicht ganz gelesen (weil mein Essen wartet und der ist definitiv zu lang um ihn vorher noch zu lesen), aber hört sich nach der richtigen Lösung an ^^, (oder zumindest in die Richtung)
Hrhr, gudden ... *gg*

Danke, aber die Lösung von ministry klappt wunderbar ...

@ministry:

Wohoo ... es funktioniert, vielen Dank

MfG
starr
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 21:09 Uhr.