Einzelnen Beitrag anzeigen
  #8  
Alt 11.07.2017, 10:40:46
swissape swissape ist offline
Anfänger
 
Registriert seit: Jul 2017
Alter: 58
Beiträge: 10
AW: Abfrage unter mysql_* und mysqli_* liefert unterschiedliches Verhalten

Zitat:
Zitat von vt1816 Beitrag anzeigen
versus


Aber nicht durch den oben geposteten Code.

ist aber der der durch drüken des Buttons ausgeführt wird, zumindest wie ich es sehe

Das Teil wird m.E. aus diesem Script heraus aufgerufen wenn ich den Button "akt." drücke

PHP-Code:
<?php

function isChecked$spielt )
{
    if ( 
$spielt == ) {
        return 
' checked="checked"';
    } else {
        return 
'';
    }
}

function 
tippsCountColor$cnt$l )
{
    if ( 
$cnt == && $l == 'h' ) {
        return 
'#00ff00';
    } else if ( 
$cnt == && $l == 'a' ) {
        return 
'#00ff00';
    } else {
        return 
'#ff0000';
    }
}

function 
output_hauptfeld()
{
    require (
"variablen.php");

    
########
    ## einlesen der edit_variablen:
    ## $saison_id ->
    ## $woche_id ->
    ## $live_status ->
    ########

    
$query "SELECT *
              FROM tm_nm_saisons
              WHERE aktuell_edit='1'"
;
    
$saison_to_edit mysqli_query($db_connection$query);
    
$data mysqli_fetch_array$saison_to_edit );
    
$saison_id $data['saison_id'];
    
$woche_id $data['aktuelle_woche_edit'];
    
$live_status $data['live_status'];

    
########
    ## abfrage der ansetzungsdatenbank nach den
    ## 50 spielen des wochenendes
    ########

?>
<script type="text/javascript">
     function updateVisibility( id, st )
     {
         var tbl = document.getElementById( id );
         var currDisplay = tbl.style.display;
         if ( currDisplay == st ) {
             tbl.style.display = 'none';
         } else if ( currDisplay == 'none' ) {
             tbl.style.display = st;
         } else {
             tbl.style.display = 'none';
         }
         return true;
     }

     function toggleVisibility( id )
     {
         updateVisibility( id + '-h', 'table' );
         updateVisibility( id + '-hhr', 'block' );
         updateVisibility( id + '-a', 'table' );
         updateVisibility( id + '-ahr', 'block' );
         return true;
     }
</script>
<form method="post" action="admin.php">
    <input type="hidden" name="what" value="26">
    <?php

    $spieltage 
= array( $woche_id 1$woche_id );
    foreach ( 
$spieltage as $spieltag ) {
        
$query "SELECT hometeam_id as teama, awayteam_id as teamb,
                         t1.old_names as teama_name, t2.old_names as teamb_name
                  FROM tm_nm_ansetzungen
                  LEFT JOIN tm_nm_teams t1
                    ON (hometeam_id = t1.team_id)
                  LEFT JOIN tm_nm_teams t2
                    ON (awayteam_id = t2.team_id)
                  WHERE saison = '$saison_id'
                    AND spieltag = '$spieltag'"
;
        
$ansetzungen mysqli_query$db_connection$query );
        
//$anz_ansetzungen = mysqli_numrows( $ansetzungen );
        
$anz_ansetzungen $ansetzungen->num_rows;
        for ( 
$spiel 0$spiel $anz_ansetzungen; ++$spiel) {
            
$checked_count1 0;
            
$checked_count2 0;
            
$partie mysqli_fetch_array$ansetzungen );
            
$teama $partie['teama'];
            
$teamb $partie['teamb'];

            
$query2 "SELECT id, saison, woche, t.player_id,
                              p.player_name as name, team_id, vsteam_id,
                              spiel_get, tip, pos, spielt
                       FROM tm_nm_tips t
                       LEFT JOIN tm_nm_players p
                         USING (player_id)
                       WHERE t.team_id='$teama'
                         AND t.vsteam_id='$teamb'
                         AND t.woche='$woche_id'
                         AND t.saison='$saison_id'"
;
            
$tips mysqli_query$db_connection,$query2 );
            
//$anz_tips = mysqli_numrows( $tips );
            
$anz_tips $tips->num_rows;

            
$heimtipps = array();
            
$checked_heimtipps 0;
            for ( 
$i 0$i $anz_tips; ++$i ) {
                
$tmpTip mysqli_fetch_array$tips );
                if ( 
$tmpTip['spielt'] == ) {
                    
$checked_heimtipps++;
                }
                
$heimtipps[] = $tmpTip;
            }

            
$query3 "SELECT id, saison, woche, t.player_id,
                              p.player_name as name, team_id, vsteam_id,
                              spiel_get, tip, pos, spielt
                       FROM tm_nm_tips t
                       LEFT JOIN tm_nm_players p
                         USING (player_id)
                       WHERE t.team_id='$teamb'
                         AND t.vsteam_id='$teama'
                         AND t.woche='$woche_id'
                         AND t.saison='$saison_id'"
;
            
$tips3 mysqli_query$db_connection$query3 );
            
//$anz_tips3 = mysqli_numrows( $tips3 );
            
$anz_tips3 $tips3->num_rows;

            
$auswtipps = array();
            
$checked_auswtipps 0;
            for ( 
$i 0$i $anz_tips3; ++$i ) {
                
$tmpTip mysqli_fetch_array$tips3 );
                if ( 
$tmpTip['spielt'] == ) {
                    
$checked_auswtipps++;
                }
                
$auswtipps[] = $tmpTip;
            }

    
?>
    <div style="font-family: Verdana; font-size: 1.2em; color: blue; font-weight: bold">
        #<?=$spieltag?>, <?=($spiel+1)?> |
        <?=$partie['teama_name']?> - <?=$partie['teamb_name']?>
        <span style="background-color: #8f8f8f;" colspan="2" align="center">
            [
            <span style="background-color: <?=tippsCountColor($checked_heimtipps, 'h')?>;">&nbsp;<?=$checked_heimtipps?>&nbsp;</span>
            -
            <span style="background-color: <?=tippsCountColor($checked_auswtipps, 'a')?>;">&nbsp;<?=$checked_auswtipps?>&nbsp;</span>
            ]
        </span>
        &nbsp;&nbsp;&nbsp;
        <span onclick="toggleVisibility('<?=$spieltag?>-<?=($spiel+1)?>');">&gt;&gt;</span>
    </div>
    <br />
    <table id="<?=$spieltag?>-<?=($spiel+1)?>-h" style="display: <?=$checked_heimtipps==5?'none':'table'?>">
    <?php

            
foreach ( $heimtipps as $tip ) {

        
?>
        <tr>
            <td style="font-family: Verdana; font-size: 1em; color: black;"><?=$tip['name']?></td>
            <td style="font-family: Verdana; font-size: 1em; color: black;"><?=$tip['spiel_get']?></td>
            <td style="background-color: #ff0000; font-family: Verdana; font-size: 1em; color: black; font-weight: bold"><?=$tip['pos']?></td>
            <td><input type="checkbox" name="gest[<?=$tip[id]?>]"<?=isChecked($tip['spielt'])?> value="1"></td>
        </tr>
        <?php

            
}

    
?>
    </table>
    <hr id="<?=$spieltag?>-<?=($spiel+1)?>-hhr" style="display: <?=$checked_heimtipps==5?'none':'block'?>" />
    <table id="<?=$spieltag?>-<?=($spiel+1)?>-a" style="display: <?=$checked_auswtipps==4?'none':'table'?>">
    <?php

          
foreach ( $auswtipps as $tip ) {

        
?>
        <tr>
            <td style="font-family: Verdana; font-size: 1em; color: black;"><?=$tip['name']?></td>
            <td style="font-family: Verdana; font-size: 1em; color: black;"><?=$tip['spiel_get']?></td>
            <td style="background-color: #ff0000; font-family: Verdana; font-size: 1em; color: black; font-weight: bold;"><?=$tip['pos']?></td>
            <td><input type="checkbox" name="gest[<?=$tip['id']?>]"<?=isChecked($tip['spielt'])?> value="1"></td>
        </tr>
        <?php

            
}

    
?>
    </table>
    <hr id="<?=$spieltag?>-<?=($spiel+1)?>-ahr" style="display: <?=$checked_auswtipps==4?'none':'block'?>" />
    <?php

        
}
    }

    
?>
    <input type="submit" name="Go" value="Akt.">
</form>
<?php

}

?>
Es kann natürlich sein dass dieser die Daten dann einträgt und der Fehler hier passiert ....
das mixing procedural - OO ist wieder mein Fehler, hab mir rausgesucht wie ich es in mysqli machen soll aber die beiden Styles nicht beachtet. Das setze ich ntürlich als ersten um auf procedural

Und wie beschrieben, wenn ich das script zum ersten mal laufen lasse bekomme ich 347 (ist normal, dass nicht alle 652 Zeilen kommen) aus eine Datei eingelesen und angezeigt
Erst wenn ich den Button "Akt." am Ende drücke fallen die Tipps für "h" weg - die für "a" bleiben drin. Wenn ich dann noch einmal aufrufe sehe ich dass alle H-Tipps weg sind, also leere Zeilen und in der DB mit Werten für Dummy-Tipp

Greetz
swissape
Mit Zitat antworten