mySQL Datentyp-Problem???

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

  • mySQL Datentyp-Problem???

    Hi,

    Ich lese zu Testzwecken den log_name (varchar255) aus und will ihn ausgeben (ist nur 1 Datensatz). Diese Ausgabe erfolgt in einer ExcelDatei in eine Zelle. Parallel lasse ich ihn mir noch über die Konsole anzeigen (zu Testzwecken).
    In der Konsole steht: "JAVA 3D" - ist korrekt! Beim einfügen nach Excel bekomme ich die Meldung "Unsupported Variant Type"!!!

    Code:
    //Verbindung zu Excel herstellen - it works!
    $exapp = new COM("Excel.application") or Die ("Did not connect"); 
    ... 
    //Database connect to server 
    $link = mysql_connect("host", "user", "pass") or Die("Keine Verbindung möglich: " . mysql_error()); 
    //select mySQL-database 
    mysql_select_db("myDatabase") or die("Auswahl der Datenbank fehlgeschlagen"); 
    
    //execute a SQL query 
    $query = "SELECT log_name FROM table WHERE id='205'"; 
    $result = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error()); 
    ...
    Ausgabe in Konsole:
    Code:
    //Ausgabe der Ergebnisse in Konsole - zum testen 
    echo "<table>\n"; 
    while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) { 
       echo "\t<tr>\n"; 
       foreach ($line as $col_value) { 
           echo "\t\t<td>$col_value</td>\n"; 
       } 
       echo "\t</tr>\n"; 
    } 
    echo "</table>\n";

    Ausgabe in Excel:
    Code:
    $sheets = $exapp->Workbooks[1]->Worksheets(1);    //Select the sheet 
    $sheets->activate;                                                   //Activate it 
    $cell = $sheets->Cells(15,11) ;                                //Select the cell K15 
    $cell->activate;                                                      //Activate the cell 
    $cell->value = $result;

    Wenn ich mir nach Excel den Typ, statt den Wert ausgeben lasse ($cell->value = gettype($result); ), dann steht dort "resource"!?!
    Was soll das denn für ein Typ sein - müsste doch varchar255 o.ä. dort stehen?
    Was kann das bedeuten bzw. was kann da falsch sein???

    Danke.

  • #2
    $result ist quasi nur der Zeiger auf die Ergebnismenge deiner Query, ähnlich dem Dateizeiger, den fopen zurückgibt. Du mußt einzelne Datensätze mit mysql_fetch_xxx() rausholen und diese in Excel-Zellen schreiben - so wie du es schon für die Kontrollausgabe machst.

    Kommentar


    • #3
      Wie lese ich die Daten aber nun aus, wenn meine Select so aussieht:
      Code:
      $query = "SELECT task_log_task, task_log_name, task_log_description, task_log_creator, task_log_hours, task_log_date FROM task_log WHERE task_log_task = '113'";
      Das liefert mir 38 Datensätze und ich will aber jeweils 38mal nur task_log_name dargestellt haben!
      Das muss ja über einen Laufindex in eine for-Schleife rein, da jeder Datensatz auch in eine separate Zelle soll?!
      Wie mache ich das am besten???

      Danke.

      Kommentar


      • #4
        Schau dir die Beispiele und Userkommentare auf mysql_fetch_row, mysql_fetch_array, mysql_fetch_assoc und mysql_fetch_object. Oder deinen eigenen Code, denn die while-Schleife machts schon so in etwa, wie du es brauchst.

        Kommentar

        Lädt...
        X