tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
439
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Lofwyr
    Lofwyr Lofwyr ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    19
    hoi

    ich hab folgendes problem

    in meiner Datenbank habe ich unteranderem 2 Tabellen 'datum' und 'termine'

    in der Tabelle 'datum' gibt es : 'datum' typ date und 'datumID' typ int
    Tabelle 'termine' : 'terminID' und 'datumID' typ int sowie
    'info' typ text

    auf der Startseite wird(soll) aus diesen beiden Tabellen die drei nächsten Termine angezeigt werden
    was eigentlich bisher auch klappte
    leider werden Termine die ich nun über phpmyadmin eintrage nicht beachtet, sondern nur Termine die bei Erstellung der Datenbank schon drin waren

    ich hab überhaupt keine Ahnung wo ich anfangen soll bzw wo das Problem liegen soll, da mit der Funktion die alle Termine anzeigen soll, auch die neuen angezeigt werden

    vielen dank schon mal

    hier der code


    PHP-Code:
    function termine()
    {
    $i=0;
    $sql "SELECT terminID  FROM termine, datum WHERE datum.datum >= CURDATE() AND termine.datumID = datum.datumID  LIMIT 3";
    $termine mysql_query($sql);
    if(
    $termine){
     while(
    $termine_row mysql_fetch_array($termine)) {
     
    $termine_erg[$i] = $termine_row[0];
     
    $termin_info mysql_query("SELECT info FROM termine WHERE terminID = $termine_erg[$i] ");
     
    $datum mysql_query("SELECT datum FROM datum, termine WHERE terminID = $termine_erg[$i] AND termine.datumID = datum.datumID");
      if(
    $termin_info && $datum){
          while(
    $termin_row mysql_fetch_array($termin_info)) {
           
    $lang strlen($termin_row[0]);
             if(
    $lang>=30){
                   
    $leer strpos($termin_row[0]," ",30);
                   
    $termin_row[0] = substr($termin_row[0],0,$leer);}
                   
    $datum_row mysql_fetch_array($datum);
                   
    $timestamp strtotime($datum_row[0]);
                   
    $datum date("d.m.Y",$timestamp);
                   echo 
    "<li><a href=\"termine.php?IDtermin=$termine_erg[$i]\">$datum<br>$termin_row[0]</a></li>";
                   
    //echo "<br>";
             
    }
          }
      }
     
    $i++;
     }


     
    mfg

    Lofwyr

  2. #2
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    Kann es vielleicht sein, das die Tabelle nicht richtig konfiguriert ist
    Da ja als erstes die IDs ausgelesen werden, könnte es doch sein, das gar keine IDs über PHPMyAdmin übergeben wurden (AUTO_INCREMENT oder PRIMARY KEY nicht gesetzt). Oder das Datum wird nicht mit übergeben.
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  3. #3
    boelkstoff boelkstoff ist offline Mitglied Gold
    Registriert seit
    Aug 2003
    Beiträge
    175
    3 Select abfragen ist auch etwas zu viel.
    versuch mal auf eine zu beschränken
     

  4. #4
    Avatar von Lofwyr
    Lofwyr Lofwyr ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    19
    hoi

    also in der Tabelle 'termine' sind 'terminID' und 'datumID' zusammen der Schlüssel, das es vorkommt das mehere Termine an einem Tag sind
    'terminID' ist AUTO_INCREMENT

    wenn die Tabelle aber nicht richtig konfigurierst ist, müßten doch auch bei der Ausgabe aller Termine Probleme auftreten, oder!?

    Oder das Datum wird nicht mit übergeben.
    wie genau meinst du das?
    das Datum trage ich ja manuell ein
     
    mfg

    Lofwyr

  5. #5
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    -also in der Tabelle 'termine' sind 'terminID' und 'datumID' zusammen der
    -Schlüssel, das es vorkommt das mehere Termine an einem Tag sind
    -'terminID' ist AUTO_INCREMENT

    ist die ID bei 'datum' denn auch auto_increment? Ich meine, es könnte ja sein, dass beim anlegen der tabelle die IDs noch im Script mit übergeben wurden. Und wenn ID bei Datum dann nicht auto_increment ist, wird ja immer 0 eingetragen.



    -wie genau meinst du das?
    -das Datum trage ich ja manuell ein

    dachte, das datum wird automatisch übergeben.
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  6. #6
    Avatar von Lofwyr
    Lofwyr Lofwyr ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    19
    Original geschrieben von boelkstoff
    3 Select abfragen ist auch etwas zu viel.
    versuch mal auf eine zu beschränken
    das der quellcode nicht optimal ist, war mir schon klar
    bin ja auch nen anfänger

    aber denkst du das wird das problem lösen?

    @rootssw

    die id bei 'datum' ist auch auto_inc
     
    mfg

    Lofwyr

  7. #7
    rootssw rootssw ist offline Mitglied Platin
    Registriert seit
    Aug 2003
    Beiträge
    593
    gib die sql-abfragen doch mal in phpmyadmin ein. dann kannst du ja sehen, welche nicht funktioniert. und welche fehler passieren.
    Vielleicht solltest du auch mal zu den if-abfragen else-teile schreiben. z. b. sowas wie
    echo "Die Abfrage $sql war nicht erfolgreich";
    Dann solltest du wenigstens schon einmal sehen, wo der fehler liegt.
     
    <?php if ($sein || !$sein) echo "Das ist hier die Frage."; ?>

  8. #8
    Avatar von Lofwyr
    Lofwyr Lofwyr ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    19
    hoi

    hab den code jetzt vereinfacht und auch nur noch eine sql-abfrage - ist auch gleich übersichtlicher
    nur leider immer noch nicht funktionstüchtig so wie ich es will
    also wenn einer einen ansatz hat, wo das problem liegen könnte

    @ rootssw
    in phpmyadmin gibt es keine Fehlermeldung
    hier brauche ich keine else-Anweisung, weil wenn ich nicht in die erste if komme habe ich kein Ergebnis bei der Abfrage und bei der zweiten if gibt es keine Ausgabe


    PHP-Code:
    function termine()
    {

    $sql "SELECT info, datum, terminID  FROM termine, datum WHERE datum.datum >= CURDATE() AND termine.datumID = datum.datumID  LIMIT 3";
    $termine mysql_query($sql);

     if(
    $termine){

         while(
    $termine_row mysql_fetch_array($termine)) {
                
    $lang strlen($termine_row['info']);

                        if(
    $lang>=30){  //if-schleife  um den string auf ~30 zeichen zu kürzen
                           
    $leer strpos($termine_row['info']," ",30); // erste leerzeichen nach 30 zeichen
                           
    $termine_row['info'] = substr($termine_row['info'],0,$leer); // wird an der stelle $leer geschnitten
                        
    }//if($lang)

                           
    $timestamp strtotime($termine_row['datum']); //datum in timestamp wandeln
                           
    $datum date("d.m.Y",$timestamp); // timestamp in europ. datum
                           
    $id $termine_row['terminID'];
                           echo 
    "<li><a href=\"termine.php?IDtermin=$id\">";
                           echo 
    $datum;
                           echo 
    "<br>";
                           echo 
    $termine_row['info'];
                           echo 
    "</a></li>";
         }
    //while($termine_row)

         
    }//if($termine)
     
    }//function 
    edit:

    ich denke mal da läuft was bei der manuellen eingabe falsch oder!? kann ich mir nicht anders erklären
    Geändert von Lofwyr (16.09.03 um 09:50 Uhr)
     
    mfg

    Lofwyr

  9. #9
    Avatar von Lofwyr
    Lofwyr Lofwyr ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    19
    hoi

    habs puh
    mußte noch ORDER BY datum einfügen, weil die Termine in der Tabelle nicht nach Datum sotiert sind

    PHP-Code:
    $sql "SELECT info, datum, terminID  FROM termine, datum WHERE datum.datum >= CURDATE() AND termine.datumID = datum.datumID ORDER BY datum LIMIT 3"
     
    mfg

    Lofwyr

Ähnliche Themen

  1. Musik im Film verwenden - Was muss beachtet werden?
    Von YannikTold im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 4
    Letzter Beitrag: 25.05.10, 09:33
  2. Film in PAL - Widescreen drehen, was muss beachtet werden
    Von Marius Heil im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 1
    Letzter Beitrag: 31.07.06, 22:42
  3. MySql Erweiterung konnte nicht geladen werden - phpMyAdmin -->
    Von Maximilius im Forum Relationale Datenbanksysteme
    Antworten: 8
    Letzter Beitrag: 05.10.04, 16:51
  4. DB-Einträge werden nicht angezeigt
    Von hans_schmid im Forum PHP
    Antworten: 2
    Letzter Beitrag: 03.09.04, 16:00
  5. Einträge werden nicht übernommen
    Von pirate man im Forum PHP
    Antworten: 4
    Letzter Beitrag: 08.09.02, 20:04