Frage zur Funktion und SQL

Harmomix

Mitglied
Und wieder eine Frage von mir ,
Ich will folgendes von msql auf msqli umbauen und komme nicht weiter.
Als kleine Erklärung:
ein Spieler wirft mehrere 180er an verschieden Tagen in der Ausgabe soll dann der Name stehen dann die anzahl dann alle tage an dem er die 180er geworfen hat bzw das datum.

hier der code als msql der genau das macht was ich möchte
PHP:
<?php
<!-- Function -->
function hisc_dates($name){
    $dates = NULL;
    $sql = mysql_query("Select * From mhdl_hisc Where name = '$name'  Order by datum Desc");
    while($out = mysql_fetch_array($sql)){
        $dates .= $out['datum'].'<br>';
    }
    return $dates;   
}

<!-- SQL Abfrage-->
$sql = "SELECT name, mannschaft, sum(hiscore) AS sum_hs, datum FROM mhdl_hisc Where saison = 16 Group BY name ORDER BY sum_hs DESC, datum ASC";
  $result = mysql_query($sql) or die("Fehler: ".mysql_error());

<div class="col-md-4">
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4><i class="fa fa-fw fa-thumbs-up"></i> Hiscores</h4>
                    </div>
                    <div class="panel-body">
    echo("<center><table border=\"1\">\n");
    echo '<tr class="colorGrey"><th>Spieler</th><th>Mannschaft</th><th>180</th><th>Datum</th></tr>';

<!-- Ausgabe-->
    if(mysql_num_rows($result)) {
    while ($row = mysql_fetch_assoc($result)) {
    $dates = hisc_dates($row['name']);
    echo "<tr><td>".$row['name']."</td><td>".$row['mannschaft']."</td><td>".$row['sum_hs']."</td><td>".$dates."</td></tr>";
    }
    } else {
    echo "Noch keine Highscores vorhanden!";
    }

    echo "</table>";
?>
                    </div>
                </div>
            </div>

hier der code als msqli es wird garkein Datum angezeigt
PHP:
<!-- Function -->
function hisc_dates($name){
    $dates = NULL;
    $sql = mysqli_query("Select * From mhdl_hisc Where name = '$name'  Order by datum Desc");
    while($out = mysqli_fetch_array($sql)){
        $dates .= $out['datum'].'<br>';
    }
    return $dates;   
}
<!-- SQL Abfrage-->
$sql = "SELECT
         name,
         mannschaft,
         datum,
          sum(hiscore) AS sum_hs
      FROM
          mhdl_hisc
         WHERE
         saison = ".SAISON."
         GROUP BY
         name
      ORDER BY
        datum ASC";
 $db_erg = mysqli_query( $db_link, $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysqli_error());
}

<!-- Ausgabe -->
  echo("<center><table border=\"1\">\n");
  echo '<tr class="colorGrey"><th>Spieler</th><th>Mannschaft</th><th>HiFi</th><th>Datum</th></tr>';

while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC)){
    $dates = hisc_dates($row['name']);
  echo "<tr>";
  echo "<td>". $zeile['name'] . "</td>";
  echo "<td>". $zeile['mannschaft'] . "</td>";
  echo "<td>". $zeile['sum_hs'] . "</td>";
  echo "<td>". $dates ."</td>";
  echo "</tr>";
}
echo "</table>";

mysqli_free_result( $db_erg );
 
Hi,

wahrscheinlich weil die Funktion hisc_dates keinen Parameter erhält ;)

Zeile 35:
PHP:
$dates = hisc_dates($row['name']);
Die Variable $row existiert nicht - verwende stattdessen die Variable $zeile, dann sollte es gehen.

VG
 
Hi,

wahrscheinlich weil die Funktion hisc_dates keinen Parameter erhält ;)

Zeile 35:
PHP:
$dates = hisc_dates($row['name']);
Die Variable $row existiert nicht - verwende stattdessen die Variable $zeile, dann sollte es gehen.

VG

PHP:
$dates = hisc_dates($zeile['name']);
Hab es geändert leider auch keine Ausgabe der Daten
könnte diese Zeile noch falsch sein ?
PHP:
echo "<td>". $dates ."</td>";
 
Hi,

leider nutze ich mysqli-_Funktionen zu selten (arbeite ausschließlich mit PDO).

Laut Dokumentation (http://www.php.net/mysqli_query) fehlt Deinem mysqli-query noch ein Parameter:

PHP:
$sql = mysqli_query("Select * From mhdl_hisc Where name = '$name'  Order by datum Desc");

zu:

PHP:
$sql = mysqli_query($db_link,"Select * From mhdl_hisc Where name = '$name'  Order by datum Desc");

VG
 
Hi,

leider nutze ich mysqli-_Funktionen zu selten (arbeite ausschließlich mit PDO).

Laut Dokumentation (http://www.php.net/mysqli_query) fehlt Deinem mysqli-query noch ein Parameter:

PHP:
$sql = mysqli_query("Select * From mhdl_hisc Where name = '$name'  Order by datum Desc");

zu:

PHP:
$sql = mysqli_query($db_link,"Select * From mhdl_hisc Where name = '$name'  Order by datum Desc");

VG
Leider auch nicht den gewünschten effect
 
Deine Funktion kennt $db_link nicht. Denn die ist ausserhalb der Funktion definiert
-> http://php.net/manual/de/language.variables.scope.php

Nebenbei: Um ein <br> am Ende zu vermeiden, würde ich die Daten zuerst in ein Array schreiben
PHP:
function hisc_dates($name){
    global $db_link; 
    $dates = NULL;
    $rs = mysqli_query($db_link, "Select * From mhdl_hisc Where name = '{$name}'  Order by datum Desc");
    $dates = array()
    while($out = mysqli_fetch_array($rs)){
        $dates[] = $out['datum'];
    }
    return implode('<br>', $dates);  
}
 
Hat leider zur folge das ich nen fehler bekomme
Parse error: syntax error, unexpected 'while' (T_WHILE) in /var/www/vhosts/hobby-dartliga-muelheim.de/httpdocs/include/saisonbest.php on line 31
PHP:
 <!-- Page Content -->
    <div class="container">
    <!-- Page Heading/Breadcrumbs -->
        <div class="row">
            <div class="col-lg-12">
                <h1 class="page-header">Bestleistungen 
                    <small>Saison 2016/17</small>
                </h1>
                <ol class="breadcrumb">
                    <li><a href="./">Home</a></li>
                    <li class="active">Bestleistungen</li>
                </ol>
            </div>
        </div>
        <!-- /.row -->

        <!-- Marketing Icons Section -->
        <div class="row">
 <div class="col-md-4">
                <div class="panel panel-default">
                    <div class="panel-heading">
                        <h4><i class="fa fa-fw fa-thumbs-up"></i> Hi-Score</h4>
                    </div>
                    <div class="panel-body">
<?php
function hisc_dates($name){
    global $db_link;
    $dates = NULL;
    $rs = mysqli_query($db_link, "Select * From mhdl_hisc Where name = '{$name}'  Order by datum Desc");
    $dates = array()
    while($out = mysqli_fetch_array($rs)){
        $dates[] = $out['datum'];
    }
    return implode('<br>', $dates);  
}

$sql = "SELECT
         name,
         mannschaft,
         datum,
          sum(hiscore) AS sum_hs
      FROM
          mhdl_hisc
         WHERE
         saison = ".SAISON."
         GROUP BY
         name
      ORDER BY
        datum ASC";
 $db_erg = mysqli_query( $db_link, $sql );
if ( ! $db_erg )
{
  die('Ungültige Abfrage: ' . mysqli_error());
}
  echo("<center><table border=\"1\">\n");
  echo '<tr class="colorGrey"><th>Spieler</th><th>Mannschaft</th><th>HiFi</th><th>Datum</th></tr>';

while ($zeile = mysqli_fetch_array( $db_erg, MYSQL_ASSOC)){
    $dates = hisc_dates($zeile['name']);
  echo "<tr>";
  echo "<td>".$zeile['name']."</td>";
  echo "<td>".$zeile['mannschaft']. "</td>";
  echo "<td>".$zeile['sum_hs']."</td>";
  echo "<td>".$dates."</td>";
  echo "</tr>";
}
echo "</table>";

mysqli_free_result( $db_erg ); 


 ?>
                    </div>
                </div>
            </div>
 

Neue Beiträge

Zurück