• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Datenbank zur EM 2008: Ja spinnt denn hier mySQL jetzt komplett oder ist es das PHP?

petz_e

New member
Hallo,

Ich habe ein komisches Problem. Folgendes: Hier ist eine Tabelle für die Europameisterschaft 2008: So sieht das ganze normal aus:
Code:
mysql> select * from game;
+-----+------+------------+------------+-------+-------+-------------+-------------+
| id  | type | date       | stadium    | team1 | team2 | score_team1 | score_team2 |
+-----+------+------------+------------+-------+-------+-------------+-------------+
| 524 | A    | 1212789600 | Basel      | SUI   | CZE   |           0 |           0 |
| 525 | A    | 1212789600 | GenÞve     | POR   | TUR   |           0 |           0 |
| 526 | A    | 1213135200 | GenÞve     | CZE   | POR   |           0 |           0 |
| 527 | A    | 1213135200 | Basel      | SUI   | TUR   |           0 |           0 |
| 528 | A    | 1213480800 | Basel      | SUI   | POR   |           0 |           0 |
| 529 | A    | 1213480800 | GenÞve     | TUR   | CZE   |           0 |           0 |
| 530 | B    | 1212876000 | Wien       | AUT   | CRO   |           0 |           0 |
| 531 | B    | 1212876000 | Klagenfurt | GER   | POL   |           0 |           0 |
| 532 | B    | 1213221600 | Klagenfurt | CRO   | GER   |           0 |           0 |
| 533 | B    | 1213221600 | Wien       | AUT   | POL   |           0 |           0 |
| 534 | B    | 1213567200 | Klagenfurt | POL   | CRO   |           0 |           0 |
| 535 | B    | 1213567200 | Wien       | AUT   | GER   |           0 |           0 |
| 536 | C    | 1212962400 | Z³rich     | ROU   | FRA   |           0 |           0 |
| 537 | C    | 1212962400 | Bern       | NED   | ITA   |           0 |           0 |
| 538 | C    | 1213308000 | Z³rich     | ITA   | ROU   |           0 |           0 |
| 539 | C    | 1213308000 | Bern       | NED   | FRA   |           0 |           0 |
| 540 | C    | 1213653600 | Bern       | NED   | ROU   |           0 |           0 |
| 541 | C    | 1213653600 | Z³rich     | FRA   | ITA   |           0 |           0 |
| 542 | D    | 1213048800 | Innsbruck  | ESP   | RUS   |           0 |           0 |
| 543 | D    | 1213048800 | Salzburg   | GRE   | SWE   |           0 |           0 |
| 544 | D    | 1213394400 | Innsbruck  | SWE   | ESP   |           0 |           0 |
| 545 | D    | 1213394400 | Salzburg   | GRE   | RUS   |           0 |           0 |
| 546 | D    | 1213740000 | Salzburg   | GRE   | ESP   |           0 |           0 |
| 547 | D    | 1213740000 | Innsbruck  | RUS   | SWE   |           0 |           0 |
+-----+------+------------+------------+-------+-------+-------------+-------------+
24 rows in set (0.00 sec)
Das Feld 'type' ist in diesem Falle ein CHAR(1). Jetzt will ich genau dieses Feld nachträglich als CHAR(2) definieren (um Q1, Q2, Q3, Q4, S1, S2 speichern zu können).
Also mache ich ein : alter table game modify type CHAR(2). Nachdem die Tabelle mit dem selben PHP Script gefüllt wurde sieht das ganze so aus????
Code:
mysql> select * from game;
+-----+------+------------+------------+-------+-------+-------------+-------------+
| id  | type | date       | stadium    | team1 | team2 | score_team1 | score_team2 |
+-----+------+------------+------------+-------+-------+-------------+-------------+
   | 1212789600 | Basel      | SUI   | CZE   |           0 |           0 |
   | 1212789600 | GenÞve     | POR   | TUR   |           0 |           0 |
   | 1213135200 | GenÞve     | CZE   | POR   |           0 |           0 |
   | 1213135200 | Basel      | SUI   | TUR   |           0 |           0 |
   | 1213480800 | Basel      | SUI   | POR   |           0 |           0 |
   | 1213480800 | GenÞve     | TUR   | CZE   |           0 |           0 |
   | 1212876000 | Wien       | AUT   | CRO   |           0 |           0 |
   | 1212876000 | Klagenfurt | GER   | POL   |           0 |           0 |
   | 1213221600 | Klagenfurt | CRO   | GER   |           0 |           0 |
   | 1213221600 | Wien       | AUT   | POL   |           0 |           0 |
   | 1213567200 | Klagenfurt | POL   | CRO   |           0 |           0 |
   | 1213567200 | Wien       | AUT   | GER   |           0 |           0 |
   | 1212962400 | Z³rich     | ROU   | FRA   |           0 |           0 |
   | 1212962400 | Bern       | NED   | ITA   |           0 |           0 |
   | 1213308000 | Z³rich     | ITA   | ROU   |           0 |           0 |
   | 1213308000 | Bern       | NED   | FRA   |           0 |           0 |
   | 1213653600 | Bern       | NED   | ROU   |           0 |           0 |
   | 1213653600 | Z³rich     | FRA   | ITA   |           0 |           0 |
   | 1213048800 | Innsbruck  | ESP   | RUS   |           0 |           0 |
   | 1213048800 | Salzburg   | GRE   | SWE   |           0 |           0 |
   | 1213394400 | Innsbruck  | SWE   | ESP   |           0 |           0 |
   | 1213394400 | Salzburg   | GRE   | RUS   |           0 |           0 |
   | 1213740000 | Salzburg   | GRE   | ESP   |           0 |           0 |
| 571 | D    | 1213740000 | Innsbruck  | RUS   | SWE   |           0 |           0 |
+-----+------+------------+------------+-------+-------+-------------+-------------+
24 rows in set (0.00 sec)
Was ist denn jetzt da los??? Am Code hat sich nichts geändert. Nur das letzte Element wurde richtig eingefügt. Wenn ich wieder ein Alter Table mit CHAR(1) mache und das Füll-Script laufen lasse, siehts wieder normal aus... Weiss da keinen Rat mehr.

Im Füll Script habe ich bei jedem INSERT Befehl ein echo mit dem Query herausgegeben. Wenn ich diesen Query vom Browser ins mysql-DOS-Fenster kopierte und ausführe, klapps auch jedesmal, egal ob der Type jetzt als CHAR(1) oder CHAR(2) definiert habe.

So sieht das Füllscript aus:
Code:
  $file = fopen("games.txt", "r");
  
  while (!feof($file)) {
    $line = fgets($file);
    $parts = explode(";", $line);
    
    echo "Line 1: $parts[0]<br>";
    echo "Line 2: $parts[1]<br>";
    echo "Line 3: $parts[2]<br>";
    echo "Line 4: $parts[3]<br>";
    echo "Line 5: $parts[4]<br><br>";

    $date = explode("-", $parts[1]);
    $date = mktime(0, 0, 0, $date[1], $date[0], $date[2]);
    $stadium = addslashes($parts[0]);
    $team1 = $parts[2];
    $team2 = $parts[3];
    $groupe = $parts[4];
    
    $query = "INSERT INTO game VALUES (NULL, '$groupe', $date, '$stadium', '$team1', '$team2', 0, 0)";
    if (!(mysql_query($query))) die(mysql_error(). ": $query");
    else echo " - $query COMPLETED<br>";
  }
  
  fclose($file);
Und so die Anzeige im Browser beim Ausführen dieses Scripts:
Code:
Line 1: Basel
Line 2: 7-6-2008
Line 3: SUI
Line 4: CZE
Line 5: A

- INSERT INTO game VALUES (NULL, 'A ', 1212789600, 'Basel', 'SUI', 'CZE', 0, 0) COMPLETED
Line 1: Genève
Line 2: 7-6-2008
Line 3: POR
Line 4: TUR
Line 5: A

- INSERT INTO game VALUES (NULL, 'A ', 1212789600, 'Genève', 'POR', 'TUR', 0, 0) COMPLETED
Line 1: Genève
Line 2: 11-6-2008
Line 3: CZE
Line 4: POR
Line 5: A 

...

Patrick
 
Zuletzt bearbeitet:
Zurück
Oben