local geht es - aber online nicht?!

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

  • local geht es - aber online nicht?!

    ich habe eine sql abfrage. diese funktioniert auf meinem rechner einwandfrei (mysql 3.23.xx). online steht mir ebenfalls eine version 3.23.xx zur verfügung, aber mein script funktioniert nicht. bin jetzt ein wenig geschockt!
    folgende fehlermeldung:
    You have an error in your SQL syntax near 'INNER JOIN spiele h ON (h.id_heimverein = v.id OR h.id_gastverein = v.id) WHER' at line 34

    woran kann das liegen? - auf meinem rechner geht es ja auch!

    noch etwas ist seltsam: diese sql zeile befindet sich nicht auf 34 im quellcode sondern auf 125?!
    Zuletzt geändert von steve-x; 28.08.2004, 11:43.

  • #2
    Re: local geht es - aber online nicht?!

    Original geschrieben von steve-x
    You have an error in your SQL syntax near 'INNER JOIN spiele h ON (h.id_heimverein = v.id OR h.id_gastverein = v.id) WHER' at line 34

    woran kann das liegen?
    an dem, was vor "INNER JOIN ..." steht.
    lass dir mal das sql-statement zur kontrolle ausgeben.

    noch etwas ist seltsam: diese sql zeile befindet sich nicht auf 34 im quellcode sondern auf 125?!
    die zeilennummer bezieht sich selbstverständlich auf die nummer im sql-statement, nicht auf die zeilennummer eines PHP-befehls. woher sollte die DB denn auch wissen, in welcher PHP-zeile dein statement abgesetzt wird ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      PHP-Code:
      $tabelle mysql_query("
      SELECT  v.name, 
      SUM(IF(h.id_heimverein = v.id, h.heimtore, h.gasttore)) AS Tore, 
      SUM(IF(h.id_heimverein = v.id, h.gasttore, h.heimtore)) AS Gegentore, 
      SUM(
             IF(h.id_heimverein = v.id, 
              IF(h.heimtore > h.gasttore, 3, IF(h.heimtore = h.gasttore, 1, 0)), 
               IF(h.heimtore < h.gasttore, 3, IF(h.heimtore = h.gasttore, 1, 0)) 
             )
             ) AS Punkte, 
      SUM((h.id_heimverein = v.id OR h.id_gastverein = v.id) 
      AND h.heimtore IS NOT NULL) AS Spiele, 
      SUM(
              IF(h.id_heimverein = v.id, 
               IF(h.heimtore > h.gasttore, 1, 0), 
               IF(h.heimtore < h.gasttore, 1, 0)
              )
              ) AS Siege, 
      SUM(
              IF(h.id_heimverein = v.id OR h.id_gastverein = v.id, 
              IF(h.heimtore = h.gasttore, 1, 0), 
               0)
              ) AS Unentschieden, 
      SUM(
             IF(h.id_heimverein = v.id, 
              IF(h.heimtore < h.gasttore, 1, 0), 
              IF(h.heimtore > h.gasttore, 1, 0)
              )
              ) AS Niederlagen, 
      SUM(
              (IF(h.id_heimverein = v.id, h.heimtore, h.gasttore)) - 
              (IF(h.id_heimverein = v.id, h.gasttore, h.heimtore))
              ) AS Tordifferenz 
      FROM verein v 
      INNER JOIN spiele h ON (h.id_heimverein = v.id OR h.id_gastverein = v.id) 
      WHERE spieltag <= "
      .$runde.
      GROUP BY v.name 
      ORDER BY Punkte DESC, Tordifferenz DESC, Tore DESC, v.name ASC"

      or die(
      mysql_error()); 
      wie gesagt, auf meinem rechner funktioniert es ohne probleme.
      echo $tabelle => Resource id #23

      Kommentar


      • #4
        check mal die version von mysql auf dem webserver

        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
        sondern mit den Augen das Manual zu lesen.

        Kommentar


        • #5
          Re: Re: local geht es - aber online nicht?!

          die zeilennummer bezieht sich selbstverständlich auf die nummer im sql-statement, nicht auf die zeilennummer eines PHP-befehls. woher sollte die DB denn auch wissen, in welcher PHP-zeile dein statement abgesetzt wird ...? [/B]
          er zählt bisschen anders.. bin mir grad nicht sicher wie aber in ca ungefähr so:

          Code:
          SELECT
                        blah1,
                        blah2,
                        blah3,
          FROM
                       blubber
          ausgabe: fehler on line 2

          weil er sich das selbst zusammenstellt

          Code:
          SELECT 
                        blah1, blah2, blah3,
          FROM blubber
          so in etwa

          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
          sondern mit den Augen das Manual zu lesen.

          Kommentar


          • #6
            webserver: 3.23.49
            http://www.viennaweb.at
            local: 3.23.57
            XAMPP für Windows Version 1.4.5
            Zuletzt geändert von steve-x; 28.08.2004, 14:06.

            Kommentar


            • #7
              und da steht nicht dabei, welche version!!

              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
              sondern mit den Augen das Manual zu lesen.

              Kommentar


              • #8
                auf dem webserver von viennaweb: version 3.23.49
                und local (auf meinem rechner) version 3.23.57

                Kommentar


                • #9
                  Mmhhh.... Was sagt eine Testausgabe von $runde auf dem remote-Server?

                  Kommentar


                  • #10
                    entweder hast du spieltag als Spalte in beiden Tabellen oder $runde ist nicht existent.

                    Kommentar


                    • #11
                      echo $runde gibt zur zeit '2' aus (ohne Anführungszeichen).
                      und spieltag kommt nur in der tabelle spiele vor.

                      Kommentar


                      • #12
                        Gib mal die generierte Query (also mit $runde und so) aus!

                        Kommentar


                        • #13
                          pack mal den Tabellenalias zu spieltag dazu.

                          Kommentar


                          • #14
                            PHP-Code:
                            <table border=0 cellspacing=0 cellpadding=0 width=420>
                            <TR><TD>
                            <?php
                            $runde 
                            mysql_query("
                            SELECT  MAX(spieltag) AS Runde 
                            FROM    spiele 
                            WHERE   heimtore IS NOT NULL
                            "
                            ) or die(mysql_error());
                            while(
                            $row mysql_fetch_array($runde))
                            {
                            $runde_aktuell $row["Runde"];
                            }

                            $runde $_GET["Runde"];
                            if (
                            $runde == "")
                            {
                            $runde $runde_aktuell;
                            }
                            echo 
                            $runde;
                            ?>

                            <table border=0 cellspacing=0 cellpadding=0 width=250><tr valign=top>
                            <td class="gensmall" style="padding-top:5px;">
                            <b>Tabelle und Ergebnisse der 
                            <td>
                            <form>
                            <select 
                            onChange="if(options[selectedIndex].value) 
                            window.location.href=(options[selectedIndex].value)" 
                              style="font-size:9px;">
                            <?php
                            $zaehler 
                            1;
                            $ende 27;
                            while (
                            $zaehler $ende)
                            {
                            echo 
                            '<option 
                            value="'
                            .$_SERVER['PHP_SELF'].'?Runde='.$zaehler.'&tab='.$_GET['tab'].'" ';
                            if (
                            $runde == $zaehler) echo 'selected';
                            echo 
                            '>'.$zaehler.'. Runde</option>';
                            $zaehler++;
                            }
                            ?>
                            </select>
                            </form>
                            </table>

                            <TR valign=top><TD>
                            <table cellpadding="2" cellspacing="1" border="0" class="forumline">
                              <tr><th colspan="9" class="thCornerL" height="25" nowrap="nowrap"
                             align=center>&nbsp;1. Klasse Nord - 04/05&nbsp;</th></tr>

                            <?php
                            include('cgi-bin/connect.inc.php');
                            $tabelle mysql_query("
                            SELECT  v.name, 
                            SUM(IF(h.id_heimverein = v.id, h.heimtore, h.gasttore)) AS Tore, 
                            SUM(IF(h.id_heimverein = v.id, h.gasttore, h.heimtore)) AS Gegentore, 
                            SUM(
                                IF(h.id_heimverein = v.id, 
                                IF(h.heimtore > h.gasttore, 3, IF(h.heimtore = h.gasttore, 1, 0)), 
                                IF(h.heimtore < h.gasttore, 3, IF(h.heimtore = h.gasttore, 1, 0)) 
                                )) AS Punkte, 
                            SUM(
                               (h.id_heimverein = v.id OR h.id_gastverein = v.id) 
                               AND h.heimtore IS NOT NULL) AS Spiele, 
                            SUM(
                                 IF(h.id_heimverein = v.id, 
                                 IF(h.heimtore > h.gasttore, 1, 0), 
                                 IF(h.heimtore < h.gasttore, 1, 0)
                                 )) AS Siege, 
                            SUM(
                                        IF(h.id_heimverein = v.id OR h.id_gastverein = v.id, 
                                          IF(h.heimtore = h.gasttore, 1, 0), 
                                          0)) AS Unentschieden, 
                            SUM(
                                        IF(h.id_heimverein = v.id, 
                                          IF(h.heimtore < h.gasttore, 1, 0), 
                                          IF(h.heimtore > h.gasttore, 1, 0)
                                          )) AS Niederlagen, 
                            SUM(
                                        (IF(h.id_heimverein = v.id, h.heimtore, h.gasttore)) - 
                                        (IF(h.id_heimverein = v.id, h.gasttore, h.heimtore))
                                        ) AS Tordifferenz 
                            FROM verein v 
                            INNER JOIN spiele h ON (h.id_heimverein = v.id OR h.id_gastverein = v.id) 
                            WHERE spieltag <= "
                            .$runde.
                            GROUP BY v.name 
                            ORDER BY Punkte DESC, Tordifferenz DESC, Tore DESC, v.name ASC"

                            or die(
                            mysql_error());

                            $platzierung 1;
                            $ende2 15;

                            while(
                            $row mysql_fetch_array($tabelle)) 
                            {
                            echo 
                            '<tr><td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $platzierung.'.';
                            $platzierung++;

                            echo 
                            '<td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row[0]; #Verein
                            echo '<td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row["Spiele"]; #Spiele
                            echo '<td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row["Siege"]; #S
                            echo '<td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row["Unentschieden"]; #U
                            echo '<td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row["Niederlagen"]; #N
                            echo '<td>';
                            echo 
                            '<table border=0 cellspacing=0 cellpadding=0 width=34>
                            <tr><td class="gensmall" align=right width=16>'
                            ;
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row[1]; #Tore
                            echo '<td class="gensmall" align=center width=2>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            ':';
                            echo 
                            '<td class="gensmall" align=right width=16>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row[2]; #Gegentore
                            echo '</td></tr></table>';
                            echo 
                            '<td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row["Tordifferenz"]; #Differenz
                            echo '<td>';
                              if (
                            $row[0] == "Jedenspeigen") {echo '<b>';}
                            echo 
                            $row[3]; #Punkte
                            }
                            ?>
                            </table>
                            Zuletzt geändert von steve-x; 31.08.2004, 12:13.

                            Kommentar


                            • #15
                              @asp2php
                              bei spieltag gibt es keinen tabellenalias.
                              ich weiß nicht was du meinst?

                              Kommentar

                              Lädt...
                              X