Ankündigung

Einklappen
Keine Ankündigung bisher.

problem mit function

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • problem mit function

    Ich habe folgendes Script:
    PHP-Code:
    <?php
    function return_month($date_day$date_month$date_year$kind$place){
            if(
    $date_day!="" AND $date_month!="" AND $date_year){
            
    $event_month=mysql_query("SELECT month, date_month, date_year, date FROM event_month WHERE free='yes' AND date_month='$date_month' AND date_year='$date_year'");}
            else if(
    $kind!=""){
            }
            else if(
    $place!=""){
            }
            else{
                
    $event_month=mysql_query("SELECT month, date_month, date_year, date FROM event_month WHERE free='yes'");}
            return 
    $event_month;}
         
             
           
             echo 
    "<table width='100%' cellspacing='0' cellpadding='0'>"
             echo 
    "<tr bgcolor=".toggleBG("#CCCCCC","#FFFFFF").">";
             echo 
    "<td width='20%' align='left'> Name </td>";
            echo 
    "<td width='20%' align='left'> Datum </td>";
             echo 
    "<td width='20%' align='left'> Ort </td>";
            echo 
    "<td width='20%' align='left'> Art </td>";
             echo 
    "<td width='20%' align='left'> Eintritt </td>";
             echo 
    "</tr>";
             
             while(list(
    $em_month$em_date_month$em_date_year$em_date)=mysql_fetch_row(return_month($date_day$date_month$date_year$kind$place))){ 
                echo 
    "<tr bgcolor=".toggleBG("#CCCCCC","#FFFFFF").">";
                echo 
    "<td align='left' colspan='5' style='color:#FF6600'>[b]".$em_month."[/b]</td>";
                echo 
    "</tr>";}
            
                
          echo 
    "</table>";
    ?>
    wenn aber aus der Tabelle für $event_month mehr als ein Wert ausgelesen wird, wird aber nur einer ausgegeben bzw aus der Funktion übergeben. Woran liegt das und wie kann man das ändern?

  • #2
    probier mal zum schluss eine rückgabewert einzubinden! also was die funktion zurückgeben soll mit return $data zum beispiel

    Kommentar


    • #3
      hab ich ja schon
      return $event_month;}

      Kommentar


      • #4
        sorry, hab ich nicht gesehn! Aber, der wert wird ja nicht immer übergeben,
        da manchmal ja die if-abfrage zugreift und das script gar nicht zum rückgabewert durchkommt

        else if($kind!=""){
        }
        else if($place!=""){
        }

        was meinst du mit der passage?!

        Kommentar


        • #5
          bist du dir den sicher, dass überhaupt mehrere ergebnisse gefunden werden?

          versuch mal mit mysql_num_rows nachzuschauen.

          Kommentar


          • #6
            da müssen später noch andere bedingungen für das auslesen aus der tabelle rein.

            Kommentar


            • #7
              Ja und?
              Übersichtlich programmieren. Potentielle Fehlerquellen nicht in eine Zeile/Anweisung zusammenstopfen, sondern voneinander trennen. Fehlerbehandlung einbauen.
              Notfalls Debugausgaben benutzen.
              Sonst dauert das Raten ewig.

              PHP-Code:
              <?php
              function return_month($date_day$date_month$date_year$kind$place) {

                  if(
              $date_day!="" AND $date_month!="" AND $date_year) {
                      
              $sql "SELECT month, date_month, date_year, date FROM event_month WHERE free='yes' AND date_month='$date_month' AND date_year='$date_year'";
                      
              /* Debugausgabe */ echo '<tr><td>Debug:</td><td colspan="4">'$sql'</td></tr>';
                      
              $event_month=mysql_query($sql);
                  }
                  else if(
              $kind!="") {
                      
              // nichts?
                      
              $event_month false;
                  }
                  else if(
              $place!=""){
                      
              // nichts?
                      
              $event_month false;
                  }
                  else {
                      
              $sql "SELECT month, date_month, date_year, date FROM event_month WHERE free='yes'";
                      
              /* Debugausgabe */ echo '<tr><td>Debug:</td><td colspan="4">'$sql'</td></tr>';
                      
              $event_month=mysql_query($sql);
                  }
                  return 
              $event_month;
              }

              echo 
              '<table width="100%" cellspacing="0" cellpadding="0">
                              <tr bgcolor="'
              toggleBG("#CCCCCC","#FFFFFF"), '">
                                  <td width="20%" align="left">Name</td>
                                  <td width="20%" align="left">Datum</td>
                                  <td width="20%" align="left">Ort</td>
                                  <td width="20%" align="left">Art</td>
                                  <td width="20%" align="left">Eintritt</td>
                              </tr>'
              ;

              $result return_month($date_day$date_month$date_year$kind$place);
              if (!
              $result) {
                  die(
              "return_month($date_day$date_month$date_year$kind$place) liefert false. "mysql_error());
              }
              /* Debugausgabe */ echo '<tr><td>Debug:</td><td colspan="4">'mysql_num_rows($result), ' Ergebnisse</td></tr>';
              while(
              $row=mysql_fetch_array($result)) {
                  echo 
              '
                              <tr bgcolor="'
              toggleBG("#CCCCCC","#FFFFFF"), '">
                                  <td align="left" colspan="5" style="color:#FF6600; font-weight:bold;">'
              htmlentities($row['month']), '</td>
                              </tr>'
              ;
              }
              echo 
              '</table>';
              ?>

              Kommentar

              Lädt...
              X