zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden SQL Abfrage

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 22.04.2011, 13:50
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard SQL Abfrage

in meiner SQL Abfrage scheint ein Fehler zu sein.
$Heutige Einsätze werden nicht angezeigt, wenn sie in der Datenbank nach den $Naechster Einsatz eingetragen werden. Ist mir leider erst Heute nach einem Test aufgefallen und müsste es so schnell wie möglich beheben.


PHP-Code:
// SQL Abfrage
        
$er_edit  mysql_query('SELECT * FROM `einsatz` WHERE `monat` AND `tag` AND `anzeigen` = "x" ORDER BY `monat`,`tag`;') or die(mysql_error());
        while(
$row=@mysql_fetch_array($er_edit)){
          
$Tag $row['tag'];
          
$Monat $row['monat'];
          
$Jahr =$row['jahr'];

         .......

        
$Heutige  '<span class="rot_b12">Heute </span>';
          
$Naechster '<div class="dmarquee myclass">nächster Einsatz</div>';

                    if (
$row['tag'] == date("j")){

                    if (
$row['monat'] == date("n")){
                    echo 
$Heutige ;
                     }
                  } elseif (
$row['tag'] > date("j") and $row['monat'] == date("n") ){
                    echo 
$Naechster;
                  break;
                 } else{
                    echo 
$Naechster;
                  break;
                }
        } 
MfG. gabischatz und allen ein schönes Osterfest.
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 22.04.2011, 20:16
ofHouse
XHTMLforum-Mitglied
 
Registriert seit: 20.04.2011
Beiträge: 128
Borsti befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von gabischatz Beitrag anzeigen
in meiner SQL Abfrage scheint ein Fehler zu sein.
Gibt er dir einen SQL-Fehler aus, oder ist in dem Script der Fehler?
Zitat:
Zitat von gabischatz Beitrag anzeigen
$Heutige Einsätze werden nicht angezeigt, wenn sie in der Datenbank nach den $Naechster Einsatz eingetragen werden.
Wo sie in der Tabelle stehen, ist MySQL da ziemlich egal, da du ja mit
PHP-Code:
ORDER BY `monat`,`tag`; 
festlegst, in welcher Reihenfolge die Datensätze von MySQL ausgegeben werden.

Die Reihenfolge hängt also erstmal davon ab, wie du deine Datensätze aus MySQL ausließt, und nicht wie du sie eingibst

Was ich nicht verstehe, ist, warum du Fehler unterbindest, wenn du ein Problem hast?
PHP-Code:
$row=@mysql_fetch_array($er_edit
das @ gehört da eigentlich nicht hin, das vertuscht nur eventuelle Fehler, wenn dann solltest du den Error-Report Global ein/ausschalten.

zudem kann man das script auch deutlich staffen:

PHP-Code:
    .......
while(
$row mysql_fetch_array($er_edit)) {
    
$Tag     $row['tag'];
    
$Monat     $row['monat'];
    
$Jahr     $row['jahr'];

    .......

    
$Heutige  '<span class="rot_b12">Heute </span>';
    
$Naechster '<div class="dmarquee myclass">nächster Einsatz</div>';

    if (
$row['tag'] == date("j") and $row['monat'] == date("n")){
        echo 
$Heutige;
    } else {
        echo 
$Naechster;
    }

das verbessert schon mal die Übersichtlichkeit.

Hast du vielleicht mal eine Beispielseite parat, wenn du sagst, es funktioniert nicht, wo man das mal Live ansehen kann?

Zum Fehlersuchen kann man auch die Funktion print_r(); gut für MySQL verwenden.
In die While-Schleife kannst du die Funktion mal packen, damit man sehen kann, was überhaupt verarbeitet wird.
PHP-Code:
    .......
while(
$row mysql_fetch_array($er_edit)) {
    
print_r($row);
    echo 
"<br>"// Erzeugt einen Zeilenumbruch
    
....... 
schreiben und hier reinschreiben, was er dir ausgibt.

Dann kann man vielleicht besser erkennen, was dein Script mit den Datensätzen macht
__________________
LG f

@ofhouse
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 22.04.2011, 21:32
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Standard

Danke das Du dir Zeit genommen hast. Eine Fehlermeldung bekomme ich nicht.
Werde auf jeden Fall mal den Code ändern und dann durchtesten.
Die Hp. Spielmannszug und ein Testeintrag ist auch Eingetragen, ändere ich nun einen Eintrag vor den $Naechster Einsatz so wird der Testeintrag korrekt angezeigt. Werde mal den Testeintrag aktivieren.
Nachtrag:Code geändert, gleiches Ergebnis. Der Testeintrag wird immer noch nicht angezeigt.
PHP-Code:
if (!$er_edit) {
    echo 
'Abfrage konnte nicht ausgeführt werden: ' mysql_error();
    exit;
}

if (
$row['tag'] == date("j") and $row['monat'] == date("n")){
    echo 
$Heutige;
  } else {
       echo 
$Naechster;
    break;
  } 
gabischatz

Geändert von gabischatz (22.04.2011 um 22:52 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 22.04.2011, 23:13
ofHouse
XHTMLforum-Mitglied
 
Registriert seit: 20.04.2011
Beiträge: 128
Borsti befindet sich auf einem aufstrebenden Ast
Standard

Hm, also so ganz blicke ich noch nicht durch, wo genau das Problem liegt.

Nochmal gerade schritt für Schritt.


1. Du legst in deinem CMS einen Eintrag für einen Einsatz an. (Für Morgen)
2. Dann legst du einen weiteren Eintrag an für Heute
3. Dann wird der Eintrag für Heute nicht mehr angezeigt.
4. Änderst du den Eintrag für Heute wird er wieder angezeigt?

Sorry, aber was für dich vielleicht klar erscheint, ist für einen Außenstehenden ohne Wissen über die Datenbank nicht so einfach zu erkennen.

PHP-Code:
if (!$er_edit) {
    echo 
'Abfrage konnte nicht ausgeführt werden: ' mysql_error();
    exit;

Das ist völliger Blödsinn, weil du den Fall ja schon mit
PHP-Code:
or die(mysql_error()); 
weiter oben abfängst, kannst du also löschen.

Ich würde den Code, den ich dir vorgeschlagen habe, nochmal in den hier ändern
PHP-Code:
if ($row['tag'] == date("j") and $row['monat'] == date("n")){
    echo 
$Heutige;
  } elseif(
$row['tag'] > date("j") and $row['monat'] == date("n")) {
       echo 
$Naechster;
    break;
  } 
weil du sonst abgelaufene Einträge in den nächsten Einträgen hättest.

Aber beschreib bitte nochmal genau, was du für Schritte machst, wenn das Problem auftritt
__________________
LG f

@ofhouse
Mit Zitat antworten
  #5 (permalink)  
Alt 23.04.2011, 12:05
Erfahrener Benutzer
XHTMLforum-Mitglied
Thread-Ersteller
 
Registriert seit: 12.11.2010
Ort: Bad Langensalza
Beiträge: 733
gabischatz ist in Verruf geraten
Daumen hoch

Borsti du bist ein Schatz es lag an dem Script.
PHP-Code:
if ($row['tag'] == date("j") and $row['monat'] == date("n")){ 
    echo 
$Heutige
  } elseif(
$row['tag'] > date("j") and $row['monat'] == date("n")) { 
       echo 
$Naechster
    break; 
  } 
jetzt wird auch der Testeintrag angezeigt, Super.
Ich weiß zwar nicht warum, muss mal das alte Script mit dem neuen vergleichen.
Danke für deine Bemühungen den Fehler zu finden, ich wünsche dir noch ein schönes Osterfest.
gabischatz
Mit Zitat antworten
Antwort

Themen-Optionen
Ansicht

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 aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
SQL Abfrage rs-web Serveradministration und serverseitige Scripte 6 23.06.2010 07:53
SQL Abfrage, Logfile auswerten Scheppertreiber Offtopic 0 22.02.2010 10:11
SQl Abfrage :S erxx Serveradministration und serverseitige Scripte 5 05.08.2008 19:35
SQL Abfrage erxx Serveradministration und serverseitige Scripte 10 24.07.2008 18:02
if/else in *einer* SQL abfrage Pablo Serveradministration und serverseitige Scripte 4 14.06.2008 20:12


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:59 Uhr.