Hallo, ich schreibe grad an nem Meldeskript für ne Ruderregatta, soweit so gut. Ich speichere das ganze folgendermaßen ab
Es gibt eine Tabelle rennen, da stehen alle wesentlichen Daten zu den Rennen
rennen:
Nr
Bezeichnung
Klasse
dann gibt es ne Tabelle mit den userdaten Vereinen und so weiter, dann gibt es die Tabelle ruderer in dem jeder Ruderer der einzelnen Vereine vertreten sind
ruderer:
ID
Name
JG
Verein
und in meldungen sind dann die einzelnen meldungen drin
meldungen:
ID
Datum
Verein
Rennen
Boot
Namen
in Namen stehen jetzt also alle IDs der Ruderer drin, die in dem Boot sitzen getrennt von einem Semikolon(z.B. 9;10;2;2;2;2;2;2;3; ). Das Problem ist wie man sieht, das teilweise die gleichen IDs vertreten sind, das liegt daran dass man zunächst ein Boot melden kann, wo man noch nicht genau weiß wer darin sitzt, hier werden die ruderer mit NN als Namen und NN asl JG aufgenommen. Um mir die Namen mit der richtigen Formatierung auszugeben benutze ich folgende Funktion:
das ganze sähe dann zum Beispiel so aus:
NN (NN), Max Mustermann (NN)
NN (NN), NN (NN)
wie ihr seht mache ich für jede ID ne Abfrage, ist nicht so toll finde ich aber wenn ich die Abfrage mit OR mache und die IDs gleich sind bekomme ich ja nur den einen Datensatz. Ich hoffe ihr versteht noch was ich meine Kann man das irgendwie besser gestalten, hatte das mal mit nem Array versucht, aber das war logisch totaler Käse..habt ihr vielleicht ne Idee?Steh n bissel aufm Schlauch
mfg Krel
Es gibt eine Tabelle rennen, da stehen alle wesentlichen Daten zu den Rennen
rennen:
Nr
Bezeichnung
Klasse
dann gibt es ne Tabelle mit den userdaten Vereinen und so weiter, dann gibt es die Tabelle ruderer in dem jeder Ruderer der einzelnen Vereine vertreten sind
ruderer:
ID
Name
JG
Verein
und in meldungen sind dann die einzelnen meldungen drin
meldungen:
ID
Datum
Verein
Rennen
Boot
Namen
in Namen stehen jetzt also alle IDs der Ruderer drin, die in dem Boot sitzen getrennt von einem Semikolon(z.B. 9;10;2;2;2;2;2;2;3; ). Das Problem ist wie man sieht, das teilweise die gleichen IDs vertreten sind, das liegt daran dass man zunächst ein Boot melden kann, wo man noch nicht genau weiß wer darin sitzt, hier werden die ruderer mit NN als Namen und NN asl JG aufgenommen. Um mir die Namen mit der richtigen Formatierung auszugeben benutze ich folgende Funktion:
PHP-Code:
<?php
function schneide_Namen($namen){
$teilnamen=explode(";",$namen);
$groesse=sizeof($teilnamen);
if($groesse==2){
$sql="SELECT Name,JG
FROM ruderer
WHERE ID='".$teilnamen[0]."';";
$result=mysql_query($sql) OR die(mysql_error());
$row=mysql_fetch_assoc($result);
return $row['Name']." (".$row['JG'].")";
}
if($groesse==3){
$tmp=array();
foreach($teilnamen as $key => $value){
$sql="SELECT Name,JG
FROM ruderer
WHERE
ID='".$teilnamen[$key]."';";
$result=mysql_query($sql) OR die(mysql_error());
$row=mysql_fetch_assoc($result);
$tmp[]=$row['Name']." (".$row['JG'].")";
}
return $tmp[0].",".$tmp[1];
}
if($groesse==5){
$tmp=array();
foreach($teilnamen as $key => $value){
$sql="SELECT Name,JG
FROM ruderer
WHERE
ID='".$teilnamen[$key]."';";
$result=mysql_query($sql) OR die(mysql_error());
$row=mysql_fetch_assoc($result);
$tmp[]=$row['Name']." (".$row['JG'].")";
}
return $tmp[0].",".$tmp[1]."<br>".$tmp[2].",".$tmp[3];
}
if($groesse==6){
$tmp=array();
foreach($teilnamen as $key => $value){
$sql="SELECT Name,JG
FROM ruderer
WHERE
ID='".$teilnamen[$key]."';";
$result=mysql_query($sql) OR die(mysql_error());
$row=mysql_fetch_assoc($result);
$tmp[]=$row['Name']." (".$row['JG'].")";
}
return $tmp[0].",".$tmp[1]."<br>".$tmp[2].",".$tmp[3]."<br>".$tmp[4];
}
if($groesse==10){
$tmp=array();
foreach($teilnamen as $key => $value){
$sql="SELECT Name,JG
FROM ruderer
WHERE
ID='".$teilnamen[$key]."';";
$result=mysql_query($sql) OR die(mysql_error());
$row=mysql_fetch_assoc($result);
$tmp[]=$row['Name']." (".$row['JG'].")";
}
$tmp1=$tmp[0].",".$tmp[1]."<br>".$tmp[2].",".$tmp[3]."<br>".$tmp[4];
$tmp1.=",".$tmp[5]."<br>".$tmp[6].",".$tmp[7]."<br>".$tmp[8];
return $tmp1;
}
}
?>
NN (NN), Max Mustermann (NN)
NN (NN), NN (NN)
wie ihr seht mache ich für jede ID ne Abfrage, ist nicht so toll finde ich aber wenn ich die Abfrage mit OR mache und die IDs gleich sind bekomme ich ja nur den einen Datensatz. Ich hoffe ihr versteht noch was ich meine Kann man das irgendwie besser gestalten, hatte das mal mit nem Array versucht, aber das war logisch totaler Käse..habt ihr vielleicht ne Idee?Steh n bissel aufm Schlauch
mfg Krel
Kommentar