php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 27-01-2010, 14:52
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard Variable in switch-Anweisung

Hallo Community!

Habe gerade ein kleines Problem it meiner switch Anweisung.

Es soll sich so verhalten, dass aus der DB der Wert Ort in switch
eingebunden wird und die Case Anweisung den jeweiligen Link liefert.

Leider komme ich so recht nicht weiter und bitte um etwas Unterstützung.

Das echo liefert den Wert "Array" und sollte doch eigentlich den Ort anzeigen.
Der Link auf den DB Einträgen bleibt auf default.

PHP-Code:
$sql "SELECT ort FROM event";
 
$result mysqli_query($verbindung$sql);
 
    
$or mysqli_fetch_row($result); 
 
 echo  
$or;
 
 switch (
$or) {
 
 case 
'al-Dente':
        
$link 'al-dente-highlights.php';
        break;
    case 
'Medleys':
        
$link 'medleys-events.php';
        break;
    case 
'Club-Lounge':
        
$link 'club-lounge-events.php';
        break;
 case 
'Sport-Center':
        
$link 'sport-center-events.php';
        break;
 
    default:
       
$link 'index.php'
Danke fürn Tipp.

Gruß
Hauser
Mit Zitat antworten
  #2 (permalink)  
Alt 27-01-2010, 14:55
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Hallo,

$or ist eine komplette Row, der Ort steht dann erst in $or["ort"] drin.

Edit: Hausaufgabe: Finde zwei Gründe, warum var_dump für Kontrollausgaben von Variablen besser geeignet ist als echo.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (27-01-2010 um 15:05 Uhr)
Mit Zitat antworten
  #3 (permalink)  
Alt 27-01-2010, 16:29
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard

Hallo AmicaNoctis !

Danke mal wieder für deine Unterstützung:

Ich habe das Script mal wie folgt geändert:

PHP-Code:
require_once 'inc/login.inc.php';
 
     
$verbindung = @mysqli_connect($server$benutzer$passwort);
 
     if (
$verbindung){
     
mysqli_select_db($verbindung$datenbank);
 
     if(
mysqli_error($verbindung)){
     echo 
'Fehler: ' mysqli_error($verbindung);
 
  } else {
 
 
$sql "SELECT ort FROM event";
 
$result mysqli_query($verbindung$sql);
 
    while(
$event mysqli_fetch_assoc($result)) {
 
 
$or $event['ort']; 
 
 
var_dump ($or);
 
 switch (
$or) {
 
 case 
'al-Dente':
        
$link 'al-dente-highlights.php';
        break;
    case 
'Medleys':
        
$link 'medleys-events.php';
        break;
    case 
'Club-Lounge':
        
$link 'club-lounge-events.php';
        break;
 case 
'Sport-Center':
        
$link 'sport-center-events.php';
        break;
 
    default:
       
$link 'index.php'
}
 } 
var_dump gibt folgende Einträge:
string(8) "al-Dente"
string(7) "Medleys"
string(11) "Club-Lounge"
Sehr schöne Auflistung und Strucktur, womit eine Frage der
Hausaufgabe ja beantowtet sein müsste.

Der Link funktioniert, doch leider nur auf dem Eintrag
"Club-Lounge" und das bei allen anderen auch.

Gruß
Hauser
Mit Zitat antworten
  #4 (permalink)  
Alt 27-01-2010, 16:44
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Wenn du die Datensätze mit while durchgehst und $link dabei immer wieder überschreibst, gewinnt der letzte Datensatz das Rennen und dort wird vermutlich "Club-Lounge" drinstehen und damit auch in dem Link.

Bitte beachte den Code-Style und rücke deinen Code ein, sonst ist er schwer leserlich.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #5 (permalink)  
Alt 27-01-2010, 17:24
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard

Ja, aber wenn ich die Schleife nicht durchlaufe gibt er mir nur
einen Wert aus, undzwar den Ersten.
Mit Zitat antworten
  #6 (permalink)  
Alt 27-01-2010, 17:27
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Ich sage ja auch nicht, dass du die Schleife nicht benutzen sollst - im Gegenteil! Nur musst du innerhalb der Schleife alles mit jedem Datensatz machen, was du brauchst und darfst nicht immer in dieselbe Variable schreiben.

Konkret heißt das: Mach was mit $link und zwar innerhalb der Schleife, sonst ist es beim nächsten Durchlauf weg.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #7 (permalink)  
Alt 27-01-2010, 18:17
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard

Ja, ich habe so eine Ahnung was du meinst, kann es momentan nicht umsetzen.

Ich gehe jetzt erstmal zum Sport, vielleicht ist mein Kopf danach etwas
freier und der Funke sprinkt über.

Danke erstmal soweit.

Bis denne,
Hauser
Mit Zitat antworten
  #8 (permalink)  
Alt 28-01-2010, 15:36
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard

Hm..alles mit jedem hieße für mich so:

PHP-Code:
switch ($or) {
    
 case 
'al-Dente':
 
$link 'al-dente-highlights.php';
 
$link 'medleys-events.php';
 
$link 'club-lounge-events.php';
 
$link 'sport-center-events.php';
 break;
 case 
'Medleys':
 
$link 'al-dente-highlights.php';
 
$link 'medleys-events.php';
 
$link 'club-lounge-events.php';
 
$link 'sport-center-events.php';
 break;
 case 
'Club-Lounge':
 
$link 'al-dente-highlights.php';
 
$link 'medleys-events.php';
 
$link 'club-lounge-events.php';
 
$link 'sport-center-events.php';
 break;
 case 
'Sport-Center':
 
$link 'al-dente-highlights.php';
 
$link 'medleys-events.php';
 
$link 'club-lounge-events.php';
 
$link 'sport-center-events.php';
 break;
  
    default:
    
$link 'index.php'
Er bleibt aber aus sport-center-events.php hängen. Ein break zwischen
jedem $link nützt auch nix. Vermutlich ist es auch das nicht, was du
meinst.

Gruß
Hauser
Mit Zitat antworten
  #9 (permalink)  
Alt 28-01-2010, 15:44
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Überleg doch mal, was mit $link passiert. Das wird jedemal überschrieben. Mit "mach was mit $link" meinte ich keinesfalls, dass du noch mehr Zuweisungen durchführen sollst, sondern den Wert weiterverarbeiten. Wie du das tun musst, kann ich dir auch nicht sagen, weil ich nur diesen kleinen Teil deines Skripts kenne.

Stell dir vor, du wärst PHP, nimm dir einen Zettel und mach eine Tabelle (Name und Wert). Dann gehst du deinen Code durch und "speicherst" die Variableninhalte auf dem Zettel, so wie deine Befehle es dir auftragen. Bei Änderungen streichst du die alte Zeile durch und fügst eine neue mit dem neuen Wert ein. Vielleicht verstehst du dann, warum das totaler Blödsinn ist und was dein Code eigentlich macht.

Edit: Nimm einfach den Code von vorher (den solltest du übrigens einrücken) und füge vor die letzte } ein echo($link) ein. Vielleicht verstehst du dann, dass dein Code zwar grundlegend funktioniert, aber bisher keinen Effekt hatte, weil alles innnerhalb der Schleife bleibt.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!

Geändert von AmicaNoctis (28-01-2010 um 15:57 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 28-01-2010, 16:16
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard

Ja, vielleicht sollte ich mal kurz erklähren was da eigentlich mit bezweckt
werden soll. Auf einer Seite wird ein Bereich angezeigt, der verschiedene
Events enthält, die den jeweiligen Orten zugeordnet werden sollen. D.h.
wenn der Besucher sich die verschiedenen Events anschaut und auf einen
bestimmten klickt, soll er auf die Eventseite des jeweiligen Ortes weiter-
geleitet werden.

Vorher hatte ich ein anderes Script geschieben was einwandfrei funktionierte:

PHP-Code:
require_once 'inc/connect.inc.php';
 
 
$res mysql_db_query("treffpunkt","select * from event ORDER BY ID");
$num mysql_num_rows($res);
 
 
// Tabellenbeginn
echo "<table border='0', width='140px'>";
 
for (
$i=0$i<$num$i++)
{
$id mysql_result($res$i"ID");
$or mysql_result($res$i"ort");
$na mysql_result($res$i"name");
$da mysql_result($res$i"datum");
$be mysql_result($res$i"beschreibung");
$htmlCode '<img src="event/img_get.php?id='.$id.'" width="50" 
height="50" border="0" alt="" align="right"/>'
;
 
switch (
$or){
case 
'al-Dente':
$link 'al-dente-highlights.php';
break;
case 
'Medleys':
$link 'medleys-events.php';
break;
 
default:
$link 'index.php';
}  
echo 
nl2br ("<td><hr style border='1px dotted #FC6053 width:
15px'><b>Datum: $da\n</b> <b>Ort: <a href='$link'><font
color='#98c9ec'>$or\n</b> <b>$na\n</b></a><br>
<a href='$link'>$htmlCode\n</a><br> </td></tr>"
); 
Aufgrund der veralterten Befehle habe ich das wie bereits gezeigt
geändert.

$link soll ja insofern flexibel bleiben, dass er sich je nach Ort den
dementsprechenden Hyperlink auf den Event zuweist.

So, dass nur kurz zu der Erklärung.

Ich werde mich aber deinen Vorschlägen annehmen und an
der Lösung arbeiten.
Mit Zitat antworten
  #11 (permalink)  
Alt 29-01-2010, 02:18
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
...aber bisher keinen Effekt hatte, weil alles innnerhalb der Schleife bleibt.
Nun pobiere ich schon seit einiger Zeit herum, leider drehe ich mich, wie der Code in der Schleife .

Wie kann ich denn aus dieser Schleife heraus kommen, wenn ein Treffer gelandet ist, und dann wieder
die Suche nach dem nächsten Wert (Varialbel aus dem Array) aufnehmen, usw.

Irgendwie fehlt mir da eine exit und return Strategie in php gesprochen...

Gruß und danke
Hauser
Mit Zitat antworten
  #12 (permalink)  
Alt 29-01-2010, 02:30
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Aktuellen Schleifendurchlauf abbrechen und mit dem nächsten weitermachen geht mit break.
PHP: break - Manual
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #13 (permalink)  
Alt 29-01-2010, 08:58
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Zitat:
Zitat von wahsaga Beitrag anzeigen
Aktuellen Schleifendurchlauf abbrechen und mit dem nächsten weitermachen geht mit break.
PHP: break - Manual
Die Erklärung klingt eher nach continue, break bricht die ganze Schleife endgültig ab.

@Hauser: Wie sieht denn dein Code jetzt aus? Warum solltest du die Schleife abbrechen wollen? Wenn das Result Set abgearbeitet ist, hört sie alleine auf, genau wie vorher deine for-Schleife bei num_rows aufgehört hat.

Gruß,

Amica
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
  #14 (permalink)  
Alt 29-01-2010, 13:02
Benutzerbild von Hauser Hauser
 Registrierter Benutzer
Links : Onlinestatus : Hauser ist offline
Registriert seit: Dec 2009
Ort: Ahnsbeck
Beiträge: 110
Hauser befindet sich auf einem aufstrebenden Ast
Standard

Hallo und danke auch an wahsaga für die Beteiligung.

Der Code hat sich bis dato noch nicht verändert, ich habe einiges
Versucht, habe es dann immer wieder über den Haufen geschmissen
und bin zum Ursprung zurückgekehrt.

Also was macht PHP und warum landen alle auf club-lounge.

Ich habe mir das mal so gedacht, weil du(Amica) ja davon sprachst.

Ich nehme mal die Variablen 1,2,3 und als zuordnung A,B,C,D.

Das Script nimmt sich den ersten Wert, also 1 und sucht nach der
Übereinstimmung Case und trifft A. Dann sieht es ja, huch ich hab
ja noch 2, und findet B. Dann das Gleiche noch mal mit 3 auf C.

So gut so schön, doch leider gibt es dabei ein Problem, und zwar folgendes:

Er trifft 1 auf A und fängt wieder von vorne an, sieht er hat noch ein
zweites und läuft wieder von vorne los. Aber anstatt 1 festzuhalten,
löscht er die Zuordnung und trifft 2 auf B, das ganze wieder von vorn und
alle landen zum Schluß auf dem letzten Wert und der ist 3 und C.

Ich muss es also mit dem Script schaffen, dass wenn er 1 und A zu-
geordnet hat, er nur noch mit 2 und 3 weitermacht und wenn er 2 und B
zugeordnet hat nur noch die Schleife mit 3 durchläuft.

Ich hoffe ich habe das so richtig erklährt, denn das ist für mich der Grund,
warum am Ende alle auf dem letzten Wert landen.

Langsam muss der Groschen aber fallen, wahrscheinlich lachen sich alle
über mich schon kapput.

Kann if und ifelse mir vielleicht weiterhelfen?

Gruß
Hauser
Mit Zitat antworten
  #15 (permalink)  
Alt 29-01-2010, 13:07
AmicaNoctis
  Moderatorin
Links : Onlinestatus : AmicaNoctis ist offline
Registriert seit: Jul 2009
Beiträge: 5.709
Blog-Einträge: 9
AmicaNoctis sorgt für eine eindrucksvolle AtmosphäreAmicaNoctis sorgt für eine eindrucksvolle Atmosphäre
Standard

Kannst du bitte deinen aktuellen Code als Anhang hinzufügen? Der "Ausgangszustand" kann alles mögliche sein. Nur damit wir wissen, wovon du sprichst.
__________________
Hast du die Grundlagen zur Fehlersuche gelesen? Hast du Code-Tags benutzt?
Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
Super, danke!
Mit Zitat antworten
Antwort

Lesezeichen


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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Problem mit smarty und switch anweisung Victorious PHP Developer Forum 16 26-11-2005 18:13
größer als in einer Switch anweisung? yakuzza PHP Developer Forum 3 29-07-2005 16:05
parse error in switch-Anweisung manuelakersten PHP Developer Forum 10 17-12-2004 15:19
im Array eine if oder switch Anweisung ausführen phpali PHP Developer Forum 3 13-02-2004 17:57
Switch-Anweisung Sumsl PHP Developer Forum 14 20-01-2002 13:14

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 19:15 Uhr.