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

  • Gast-Avatar
    Ein Gast erstellte das Thema problem mit function.

    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?

  • Gast-Avatar
    Ein Gast antwortete
    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>';
    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    da müssen später noch andere bedingungen für das auslesen aus der tabelle rein.

    Einen Kommentar schreiben:


  • Buhmann
    antwortet
    bist du dir den sicher, dass überhaupt mehrere ergebnisse gefunden werden?

    versuch mal mit mysql_num_rows nachzuschauen.

    Einen Kommentar schreiben:


  • JohnRambo
    antwortet
    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?!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    hab ich ja schon
    return $event_month;}

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:

Lädt...
X