Zeigt mir alle Mysql-Einträge ausser dem ersten, wieso?

hoizwurm

Erfahrenes Mitglied
Hallo Leute!

Habe wiedereinmal ein Problem.

Es geht um folgendes:

Habe aus einer CSV-Datei Daten in eine Tabelle importiert, hat soweit auch alles
super funktioniert. Bis auf das Datum, das wollte er mir ums verrecken nicht als
Datum übernehmen. Soweit so gut, bin ich eben hergegangen und habe das
Datum einfach als Textfeld übernommen.

Das Datum liegt mir jetzt so vor: 27.11.1989

Jetzt wandle ich dieses Datum in das Format: 1989-11-27

Alles kein Problem, nur beim auslesen aus der Datenbank lässt er mir immer
den ersten Datensatz aus. Keine Ahnung wieso. Den einen Datensatz kann ich
auch händisch ändern, aber ich frag nur aus Interesse.

Mein Code schaut folgendermassen aus:

PHP:
<?
@$outcome=mysql_query("SELECT id,nachname,beerdigt FROM verstorbene ");
require("failure.php");

$access=mysql_fetch_array($outcome);

while ($access=mysql_fetch_array($outcome))
	{
		
		function date_german2mysql($datum) {
    			list($tag, $monat, $jahr) = explode(".", $datum);
			    return sprintf("%04d-%02d-%02d", $jahr, $monat, $tag);
				}
       $id=$access["id"];
       $nachname=$access["nachname"];
       $datum=$access["beerdigt"];
	$datumneu= date_german2mysql($datum);
	
  	?>	<tr>
  			<td><? echo $id; ?></td>
  			<td>&nbsp;</td>
  			<td><? echo $nachname; ?></td>
  			<td>&nbsp;</td>
  			<td><? echo $datum; ?></td>
  			<td>&nbsp;</td>
  			<td><? echo $datumneu; ?></td>
  		</tr>
	<?
 
} ?>

Vielleicht kann mir wer sagen wieso, ich hatte das Problem noch nie.
Woran könnte das liegen?

mfg Hoizwurm
 
Also, ich kann jetz keinen Fehler finden...
nur eins springt mir ins Auge: der doppelte mysql_fetch_array-Befehl!

Du solltest den ersten (der ohne WHILE-Schleife) einfach mal weglassen...
Vielleicht klappts dann.

Das Ganze müsste dann also so aussehen:
PHP:
<?
@$outcome=mysql_query("SELECT id,nachname,beerdigt FROM verstorbene ");
require("failure.php");

//EDIT: Hab die Funktion mal aus der Schleife rausgezogen...
 function date_german2mysql($datum) {
                list($tag, $monat, $jahr) = explode(".", $datum);
                return sprintf("%04d-%02d-%02d", $jahr, $monat, $tag);
                }

while ($access=mysql_fetch_array($outcome))
    {
       $id=$access["id"];
       $nachname=$access["nachname"];
       $datum=$access["beerdigt"];
    $datumneu= date_german2mysql($datum);
    
      ?>    <tr>
              <td><? echo $id; ?></td>
              <td>&nbsp;</td>
              <td><? echo $nachname; ?></td>
              <td>&nbsp;</td>
              <td><? echo $datum; ?></td>
              <td>&nbsp;</td>
              <td><? echo $datumneu; ?></td>
          </tr>
    <?
 
} ?>
 
Zuletzt bearbeitet:
Hallo Ludz!

Vielen Dank genau das war mein Fehler.

Ist ja eigentlich logisch :rolleyes: , aber sehen hätte ich es halt zuerst einmal
müssen :)

Danke für die schnelle Antwort

mfg Hoizwurm

Achja nochwas, mein Code ist nicht ganz richtig.
Die Function muß zuerst ausserhalb der Schleife deklariert werden.
 
Zurück