• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mySql INSERT mit mehreren Bedingungen

Hi, ich schon wieder.....
Nachdem ich hier jetzt alle Probleme mit dem Auslesen der Daten in den Griff bekommen habe, jetzt ein Problem mit dem Einfügen in die Datenbaktabelle:
Ich möchte die Leichtathletikergebnisse gern über ein Formular in die Datenbank eintragen. Überprüft werden soll:
  • ob der Athlet bereits ein Ergebnis in diesem Jahr und in der Disziplin hat
    • wenn eins gefunden wird muss geprüft werden, ob das besser oder schlechter ist.
      • wenn es besser ist, wird das neue Ergebnis nicht eingetragen
      • ist es schlechter, wird das alte per UPDATE überschrieben.
    • sollte keins gefunden werden, wird das neue mit INSERT eingetragen
  • ob unter den Vereinsrekorden ein Ergebnis der jeweiligen Altersklasse(n) ist, das schlechter ist und somit auch überschrieben werden muss

Kleines Problem hierbei, was es vermutlich noch etwas komplexer macht:
Manchmal müssen Ergebnisse für mehrere Altersklassen gewertet werden. Es kann also vorkommen, dass ein Sportler der Altersklasse Männliche Jugend U20 auch bei den Männern startet und dann bei beiden Altersklassen eingetragen werden muss.

Mein bisheriger Versuch sieht wie folgt aus:

HTML:
<form action="<?php htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
<label for="name">Name (Kuerzel)</label><input name="name" id="name" type="text" size="30">
<label for="ergebnis">Ergebnis</label><input name="ergebnis" id="ergebnis" type="text" size="30">
<label for="disziplin">Disziplin (Kuerzel)</label><input name="disziplin" id="disziplin" type="text" size="30" >
<label for="altersklasse">Altersklasse (Kuerzel)</label><input name="altersklasse" id="altersklasse" type="text" size="30">
<label for="altersklasse1">Falls für mehrere Altersklassen gestartet wurde hier die zweite (Kuerzel)</label><input name="altersklasse1" id="altersklasse1" type="text" size="30">
<label for="altersklasse2">Hier die evtl. dritte Altersklasse (Kuerzel)</label><input name="altersklasse2" id="altersklassen2" type="text" size="30">

<label for="ort">Ort</label><input name="ort" id="ort" type="text" size="30">
<label for="tag">Tag (01, 31 usw.)</label><input name="tag" id="tag" type="text" size="2">
<label for="monat">Monat</label><input name="monat" id="monat" type="text" size="2">
<label for="jahr">Jahr</label><input name="jahr" id="jahr" type="text" size="2">
<input type="submit" name="Neues Ergebnis anlegen">

So, wie man sieht, gebe ich gleich die Möglichkeit, mehrere Altersklassen einzugeben, falls für mehrere gestartet wurde.
Nun muss ja in der Theorie die Tabelle, in die geschrieben wird, ausgelesen werden, damit ich meine Überprüfung starten kann, das sieht wie folgt aus:

PHP:
$name = $_POST["name"];
$ergebnis = $_POST["ergebnis"];
$disziplin = $_POST["disziplin"];
$altersklasse = $_POST["altersklasse"];
$altersklasse1 = $_POST["altersklasse1"];
$altersklasse2 = $_POST["altersklasse2"];
$ort = $_POST["ort"];
$tag = $_POST["tag"];
$monat = $_POST["monat"];
$jahr = $_POST["jahr"];

$sql3 = mysql_query("
SELECT FROM ergebnisse 
WHERE jahr = $jahr
AND skuerzel = '$name' 
AND dkuerzel = '$disziplin' 
AND (akuerzel = '$altersklasse' OR akuerzel = '$altersklasse1' OR akuerzel = '$altersklasse2')
OR dkuerzel = '$disziplin' 
AND (akuerzel = '$altersklasse' OR akuerzel = '$altersklasse1' OR akuerzel = '$altersklasse2')
AND vereinsrekord NOT LIKE '' ");

Ich versuche so bereits alle möglichen Fälle zu berücksichtigen:
Ich lese die Zeilen aus, in denen sowohl das Jahr, der Name, die Disziplin und die Altersklasse (hier dreimal fast die gleiche Abfrage mit den evtl. verschiedenen Altersklassen) mit den Daten im Formular übereinstimmen.
Dann lese ich die Zeilen aus, in denen nur die Disziplin und die Altersklasse übereinstimmen, und in der Spalte vereinsrekord etwas steht (ein e kennzeichnet hier einen Vereinsrekord)

Soweit das Auslesen...
Nun muss ich ja eine Überprüfung nach den einzelnen Fällen starten, was denke ich direkt mit PHP per if/else am einfachsten ist.

Also dachte ich mir, dass ich vielleicht bei dem Auslesen jedem Fall mit einem AS eine eindeutige Bezeichnung zuweisen muss, um dann überprüfen zu können ob bei dem jeweiligen Fall die Ausgabe eine oder keine Zeile beträgt. Dann könnte damit ja weiter verfahren werden, was die Prüfung des evtl. besseren Ergebnisses angeht.

Das Zuweisen der Aliase müsste doch so funktionieren:

PHP:
SELECT FROM ergebnisse 
WHERE jahr = $jahr
AND skuerzel = '$name' 
AND dkuerzel = '$disziplin' 
AND (akuerzel = '$altersklasse' OR akuerzel = '$altersklasse1' OR akuerzel = '$altersklasse2') AS fall1
OR dkuerzel = '$disziplin' 
AND (akuerzel = '$altersklasse' OR akuerzel = '$altersklasse1' OR akuerzel = '$altersklasse2')
AND vereinsrekord NOT LIKE '' AS fall 2
");

Aber wie kann ich die Fälle dann per PHP ansprechen? Klappt das genauso wie mit einzelnen Zeilen? Also:
PHP:
$db_erg = mysql_query( $sql3 );
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysql_error());
}
$zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC);
und dann einfach über:

PHP:
$zeile['fall1']
Oder bin ich da auf dem Holzweg?
 
Zuletzt bearbeitet:
Werbung:
So... habe jetzt glaube ich einen ganz guten Ansatz, aber auch ein Problem mit einem Fehler...
Hier mal der Code:
PHP:
<?php
require_once ('config-statistik.php');

$sql = mysql_query("SELECT *
FROM disziplinen ORDER BY reihenfolge");
$sql1 = mysql_query("SELECT *
FROM altersklassen ORDER BY reihenfolge");
$sql2 = mysql_query("SELECT *
FROM athleten WHERE jahrgang != '' ORDER BY athlet");

error_reporting(E_ALL);

if (empty($_POST["name"])){
?>
<a href="#" data-kuerzel="<?php while($result = mysql_fetch_array($sql)) {echo $result['disziplin'] ."&nbsp;-&nbsp;".$result['dkuerzel'].";&nbsp;&nbsp;&nbsp;&nbsp; ";}?>">Kürzel für Disziplinen</a><br />
<a href="#" data-kuerzel="<?php while($result1 = mysql_fetch_array($sql1)) {echo $result1['altersklasse']."&nbsp;-&nbsp;".$result1['akuerzel'].";&nbsp;&nbsp;&nbsp;&nbsp; ";}?>">Kürzel für Altersklassen</a><br />
<a href="#" data-kuerzel="<?php while($result2 = mysql_fetch_array($sql2)) {echo $result2['athlet']."&nbsp;-&nbsp;".$result2['skuerzel'].";&nbsp;&nbsp;&nbsp;&nbsp; ";}?>">Kürzel für Sportler</a><br />
<h2>Einzelergebnis</h2>
<form action="<?php htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
<label for="name">Name (Kuerzel)</label><input name="name" id="name" type="text" size="30">
<label for="ergebnis">Ergebnis</label><input name="ergebnis" id="ergebnis" type="text" size="30">
<label for="disziplin">Disziplin (Kuerzel)</label><input name="disziplin" id="disziplin" type="text" size="30" >
<label for="altersklasse">Altersklasse (Kuerzel)</label><input name="altersklasse" id="altersklasse" type="text" size="30">
<label for="ort">Ort</label><input name="ort" id="ort" type="text" size="30">
<label for="tag">Tag (01, 31 usw.)</label><input name="tag" id="tag" type="text" size="2">
<label for="monat">Monat</label><input name="monat" id="monat" type="text" size="2">
<label for="jahr">Jahr</label><input name="jahr" id="jahr" type="text" size="2">
<input type="submit" name="Neues Ergebnis anlegen">
</form>
<?php
}else{
$name = $_POST["name"];
$ergebnis = $_POST["ergebnis"];
$disziplin = $_POST["disziplin"];
$altersklasse = $_POST["altersklasse"];
$ort = $_POST["ort"];
$tag = $_POST["tag"];
$monat = $_POST["monat"];
$jahr = $_POST["jahr"];

$sql3 = mysql_query("
SELECT * FROM ergebnisse
WHERE jahr = '$jahr'
AND skuerzel = '$name'
AND dkuerzel = '$disziplin'
AND akuerzel = '$altersklasse'
OR dkuerzel = '$disziplin'
AND ergebnis LIKE '%m'
AND ergebnis < '$ergebnis'
AND akuerzel = '$altersklasse'
AND vereinsrekord LIKE 'e'
OR dkuerzel = '$disziplin'
AND ergebnis NOT LIKE '%m'
AND ergebnis > '$ergebnis'
AND akuerzel = '$altersklasse'
AND vereinsrekord NOT LIKE 'e' ");
$zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC);

if(mysql_num_rows($sql3) > 0 && $zeile['vereinsrekord'] == 'e'){
    if($jahr != $zeile['jahr']){
        "UPDATE ergebnisse SET vereinsrekord = 'v' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse'";
        "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
    }
    elseif($jahr == $zeile['jahr'] && $name == $zeile['skuerzel']){
        if($ergebnis == '%m' && $ergebnis > $zeile['ergebnis']){
            "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr, skuerzel = $name";
        }elseif($ergebnis != '%m' && $ergebnis < $zeile['ergebnis']){
            "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr, skuerzel = $name";
        }else{
            echo"Es ist bereits ein besseres Ergebnis vorhanden...";
        }
    }else{
        if($ergebnis == '%m' && $ergebnis > $zeile['ergebnis']){
            "UPDATE ergebnisse SET verinsrekord = 'v' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr";
            "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
        }elseif($ergebnis != '%m' && $ergebnis < $zeile['ergebnis']){
            "UPDATE ergebnisse SET verinsrekord = 'v' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr";
            "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
        }else{
            echo"Es ist bereits ein besseres Ergebnis vorhanden...";
        }
    }
       
}elseif(mysql_num_rows($sql3) > 0 && $zeile['vereinsrekord'] != 'e'){
    if($ergebnis == '%m' && $ergebnis > $zeile['ergebnis']){
        "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', akuerzel = '$altersklasse', jahr = '$jahr', skuerzel = '$name'";
    }elseif($ergebnis != '%m' && $ergebnis < $zeile['ergebnis']){
        "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr, skuerzel = '$name'";
    }else{
        echo"Es ist bereits ein besseres Ergebnis vorhanden...";
    }
}else{
    "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr')";
}
exit();
}


?>
Die Datei config-statistik.php sieht so aus:
PHP:
<?php
  
  $mysqluser="user";        
  $mysqlpasswd="passwd";    
  $mysqlhost="host";    
  $mysqldb="db";    
  
  $db_link = mysql_connect ( $mysqlhost, $mysqluser, $mysqlpasswd );
if ( ! $db_link )
{
die('keine Verbindung zur Zeit möglich - später probieren ');
}
// Nutzen von Datenbank
$db_sel = mysql_select_db( $mysqldb )
or die("Auswahl der Datenbank fehlgeschlagen");
mysql_set_charset('utf8',$db_link); 
?>
Wie ihr sehen könnt, habe ich bereits mit error_reporting versucht zu arbeiten, aber es kommt keine Ausgabe.
Der Fehler muss nach dem $sql3 liegen, denn wenn ich den if-Teil nach dem SELECT lösche, wird das Formular immerhin angezeigt.

Ich nutze den Code auf einer Joomla-Installation, mit dem Plugin Sourcerer - Joomla! Extensions Directory
Das hat mit dem Einfügen ohne jegliche Überprüfung auch toll geklappt, aber jetzt zeigt es halt auf der Seite mit dem PHP-Code nur den HTML-Kommentar an:
Kommentar - Sourcerer: Der PHP-Code wurde entfernt, weil er Fehler enthält
.

Kann mir jemand helfen, und mir sagen, wo dieser Fehler sein könnte?

Wie gesagt, er zeigt nun gar nichts mehr vom Seiteninhalt an, nur noch das Template und den Seitentitel...

Vielen Dank schonmal...

Edit: Habe eben mal die ganzen INSERT und UPDATE gelöscht, aber es gab auch keine Ausgabe.
 
Zuletzt bearbeitet:
Werbung:
Hat niemand eine Idee? Habe den Code jetzt noch selber ein wenig überarbeitet, sodass er glaube ich richtiger ist als vorher, aber eine Ausgabe bekomme ich immer noch nicht...:

PHP:
<?php
require_once ('config-statistik.php');

$sql = mysql_query("SELECT *
FROM disziplinen ORDER BY reihenfolge");
$sql1 = mysql_query("SELECT *
FROM altersklassen ORDER BY reihenfolge");
$sql2 = mysql_query("SELECT *
FROM athleten WHERE jahrgang != '' ORDER BY athlet");


if (empty($_POST["name"])){
?>
<a href="#" data-kuerzel="<?php while($result = mysql_fetch_array($sql)) {echo $result['disziplin'] ."&nbsp;-&nbsp;".$result['dkuerzel'].";&nbsp;&nbsp;&nbsp;&nbsp; ";}?>">Kürzel für Disziplinen</a><br />
<a href="#" data-kuerzel="<?php while($result1 = mysql_fetch_array($sql1)) {echo $result1['altersklasse']."&nbsp;-&nbsp;".$result1['akuerzel'].";&nbsp;&nbsp;&nbsp;&nbsp; ";}?>">Kürzel für Altersklassen</a><br />
<a href="#" data-kuerzel="<?php while($result2 = mysql_fetch_array($sql2)) {echo $result2['athlet']."&nbsp;-&nbsp;".$result2['skuerzel'].";&nbsp;&nbsp;&nbsp;&nbsp; ";}?>">Kürzel für Sportler</a><br />
<h2>Einzelergebnis</h2>
<form action="<?php htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
<label for="name">Name (Kuerzel)</label><input name="name" id="name" type="text" size="30">
<label for="ergebnis">Ergebnis</label><input name="ergebnis" id="ergebnis" type="text" size="30">
<label for="disziplin">Disziplin (Kuerzel)</label><input name="disziplin" id="disziplin" type="text" size="30" >
<label for="altersklasse">Altersklasse (Kuerzel)</label><input name="altersklasse" id="altersklasse" type="text" size="30">
<label for="ort">Ort</label><input name="ort" id="ort" type="text" size="30">
<label for="tag">Tag (01, 31 usw.)</label><input name="tag" id="tag" type="text" size="2">
<label for="monat">Monat</label><input name="monat" id="monat" type="text" size="2">
<label for="jahr">Jahr</label><input name="jahr" id="jahr" type="text" size="2">
<input type="submit" name="Neues Ergebnis anlegen">
</form>
<?php
}else{
$name = $_POST["name"];
$ergebnis = $_POST["ergebnis"];
$disziplin = $_POST["disziplin"];
$altersklasse = $_POST["altersklasse"];
$ort = $_POST["ort"];
$tag = $_POST["tag"];
$monat = $_POST["monat"];
$jahr = $_POST["jahr"];

$sql3 = mysql_query("
SELECT * FROM ergebnisse 
WHERE jahr = '$jahr'
AND skuerzel = '$name'
AND dkuerzel = '$disziplin'
AND akuerzel = '$altersklasse'
OR dkuerzel = '$disziplin'
AND ergebnis LIKE '%m'
AND ergebnis < '$ergebnis'
AND akuerzel = '$altersklasse'
AND vereinsrekord LIKE 'e'
OR dkuerzel = '$disziplin'
AND ergebnis NOT LIKE '%m'
AND ergebnis > '$ergebnis'
AND akuerzel = '$altersklasse'
AND vereinsrekord NOT LIKE 'e' ");
    
    
if(mysql_num_rows($sql3) > 0){
    $zeile = mysql_fetch_array($sql3, MYSQL_ASSOC);    
    if($zeile['vereinsrekord'] == 'e'){
        if($jahr != $zeile['jahr']){
            "UPDATE ergebnisse SET vereinsrekord = 'v' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse'";
            "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
        }elseif($jahr == $zeile['jahr'] && $name == $zeile['skuerzel']){
            if($ergebnis == '%m' && $ergebnis > $zeile['ergebnis']){
                "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr, skuerzel = $name";
            }elseif($ergebnis != '%m' && $ergebnis < $zeile['ergebnis']){
                "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr, skuerzel = $name";
            }else{
                echo"Es ist bereits ein besseres Ergebnis vorhanden...";
            }
        }else{
            if($ergebnis == '%m' && $ergebnis > $zeile['ergebnis']){
                "UPDATE ergebnisse SET verinsrekord = 'v' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr";
                "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
            }elseif($ergebnis != '%m' && $ergebnis < $zeile['ergebnis']){
                "UPDATE ergebnisse SET verinsrekord = 'v' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr";
                "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
            }else{
                echo"Es ist bereits ein besseres Ergebnis vorhanden...";
            }
        }
    }else{
        if($ergebnis == '%m' && $ergebnis > $zeile['ergebnis']){
            "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', akuerzel = '$altersklasse', jahr = '$jahr', skuerzel = '$name'";
        }elseif($ergebnis != '%m' && $ergebnis < $zeile['ergebnis']){
            "UPDATE ergebnisse SET ergebnis = '$ergebnis', ort = '$ort', tag = '$tag', monat = '$monat' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse', jahr = $jahr, skuerzel = '$name'";
        }else{
            echo"Es ist bereits ein besseres Ergebnis vorhanden...";
        }
    }
}else{
    "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
}
mysql_free_result($sql3);
}
?>
 
Okay, habe jetzt mal eine grundsätzliche Frage zu meinem Problem:
Es scheint irgendwie an der Speicherung der ausgelesenen Daten als Variablen zu liegen.

Wie kann ich denn die Daten, die ich aus der Datenbank auslese, in eine Variable speichern? Die Lösung mit dem $row['spalte'] kenne ich, habe sie allerdings bis jetzt nur angetroffen, wenn es in Verbindung mit while um eine Ausgabe ging.
Aber ich möchte ja gar nichts auslesen, ich möchte ja nur die eingetragenen Werte mit denen in der Datenbak vergleichen...

Hierauf bin ich schon bei meiner Suche gestoßen, aber in Verbindung mit der Datenbak steht es nur wieder im Kontext mit "while": PHP: list - Manual
 
Dein Code ist anfällig für SQL-Injections.

- Standardantwort zu SQL Injections - PHP Forum: phpforum.de

Ansonsten habe ich mich im Code noch nicht so recht orientiert.

Aber diese Query…

Code:
$sql3 = mysql_query("
SELECT * FROM ergebnisse 
WHERE jahr = '$jahr'
AND skuerzel = '$name'
AND dkuerzel = '$disziplin'
AND akuerzel = '$altersklasse'
OR dkuerzel = '$disziplin'
AND ergebnis LIKE '%m'
AND ergebnis < '$ergebnis'
AND akuerzel = '$altersklasse'
AND vereinsrekord LIKE 'e'
OR dkuerzel = '$disziplin'
AND ergebnis NOT LIKE '%m'
AND ergebnis > '$ergebnis'
AND akuerzel = '$altersklasse'
AND vereinsrekord NOT LIKE 'e' ");

…braucht sicherlich einige Klammern. Die Bedingungen widersprechen sich nämlich teilweise.

Ach ja, und setz mal:

PHP:
error_reporting(-1);
ini_set('display_errors', 1);

Vielleicht hilft das.
 
Werbung:
Danke für die Antwort. Das mit der Anfälligkeit weiß ich, die Seite mit dem Formular ist nur den Administratoren der Joomla Seite zugänglich, da wollte ich das erstmal hintenanstellen...

Das Error Reporting hatte ich schon genauso getestet, es erfolgt aber keine Ausgabe...

Das Auslesen hatte ich schon direkt in PHPmyAdmin getestet, und das hat funktioniert.
 
Was steht denn in der ergebnis-Spalte bei einem Datensatz, für den ergebnis LIKE '%m' AND ergebnis NOT LIKE '%m' zutrifft?

Das schließt sich doch gegenseitig aus.
 
Aber dazwischen steht ja ein OR, ich lasse ja nach den zwei Fällen unabhängig voneinander auslesen (oder habe ich da bei der Syntax was falsch verstanden?)
 
Werbung:
Okay, hast Recht. Das müsste hier passen, weil der AND-Operator immer zuerst ausgewertet wird.

Das wäre einfach eine gute Erklärung gewesen, wieso es bei $sql3 nicht mehr wie geplant klappt. Mein Fehler, zu sehr ins Blaue geschossen. ;)

Abgesehen davon ist es leider – finde ich – echt schwierig, sich durch den Code zu finden.

Wobei mir gerade auffällt, dass da überall bei den Strings ein Funktionsaufruf fehlt:

PHP:
    if($jahr != $zeile['jahr']){
        "UPDATE ergebnisse SET vereinsrekord = 'v' WHERE dkuerzel = '$disziplin', vereinsrekord = 'e', akuerzel = '$altersklasse'";
        "INSERT INTO ergebnisse (akuerzel, dkuerzel, ergebnis, skuerzel, ort, tag, monat, jahr, vereinsrekord) VALUES ('$altersklasse', '$disziplin', '$ergebnis', '$name', '$ort', '$tag', '$monat', '$jahr', 'e')";
    }

Edit: Ich glaube, ich würde versuchen, solange Inhalte wegzunehmen, bis dieses Sourceror-Dings den Code durchwinkt. So kannst du lokalisieren, woran es genau Anstoß nimmt.
 
Zuletzt bearbeitet:
Ja, sowas in der Art hatte ich auch schonmal versucht... Der Code wird ausgeführt, wenn ich hinter dem sql3 Query Schluss mache. Wenn ich dann aber versuche, die einzelnen Spalten der Ausgabe anzusprechen und eine if-Anweisung schreibe, erscheint wieder nichts...
 
Werbung:
Zurück
Oben