Bestimmten Daten nacheinander auslesen

  • Hallo

    Ich habe eine MySQL Tabelle in denen Postleitzahlen stehen. Jede Postleitzahl hat eine ID. Nun möchte ich zu jeder Postleitzahl die Geodaten von Google Maps nacheinander abfragen. Das Abfragen der Geodaten selbst ist kein Problem, nur das einlesen der Postleitzahlen funktioniert nicht.

    $id=mysql_query(SELECT ID FROM zoos);
    for($count=$id;$count==776;$id++)
    {
    $plz=mysql_query(SELECT 'plz' FROM 'zoos');
    $coords = file_get_contents("http://maps.google.com/maps/geo?q=".$plz."&output=csv");
    list ($http_statuscode, $bla, $laenge, $breite,) = split('[,]', $coords);
    mysql_query("UPDATE zoos SET laengengrad=$laenge, breitengrad=$breite WHERE plz =$plz");
    }
    ?>
    Kann mir wer vlt. sagen was an dem Code falsch ist?

  • PHP
    $id=mysql_query(SELECT ID FROM zoos);
    for($count=$id;$count==776;$id++)
    {
    $plz=mysql_query(SELECT 'plz' FROM 'zoos');
    $coords = file_get_contents("http://maps.google.com/maps/geo?q=".$plz."&output=csv");
    list ($http_statuscode, $bla, $laenge, $breite,) = split('[,]', $coords);
    mysql_query("UPDATE zoos SET laengengrad=$laenge, breitengrad=$breite WHERE plz =$plz");
    }
    ?>


    Sry... so kann mans glaub ich besser lesen^^

  • Ich würde sagen das dein Problem in der Queryverabeitung liegt.
    Schau dazu nochmal ins php-manual.

    Als anregendes Bsp:

    PHP
    <?php
    // Query to select an int column
    $query = 'SELECT user_id FROM users WHERE user_id = 1';
    $result = mysql_query($query);
    $array = mysql_fetch_assoc($result);
    
    
    // Echoes: string
    echo gettype($array['user_id']);
    ?>
  • Alles.

    probiers mal so:

    PHP
    <?php
    $plzQry = mysql_query("SELECT `ID`, `plz` FROM `zoos`");
    while($fPLZ = mysql_fetch_assoc($plzQry))
    {
        $coords = file_get_contents("http://maps.google.com/maps/geo?q=" . $fPLZ['plz'] . "&output=csv");
        list ($http_statuscode, $bla, $laenge, $breite,) = split('[,]', $coords);
        mysql_query("UPDATE `zoos` SET `laengengrad` = '" . mysql_real_escape_string($laenge) . "', `breitengrad` = '" . mysql_real_escape_string($breite) . "' WHERE `plz` = '" . $fPLZ['plz'] . "'");
    }
    ?>

    Gruß crAzywuLf :D

  • Alles.

    probiers mal so:

    PHP
    <?php
    $plzQry = mysql_query("SELECT `ID`, `plz` FROM `zoos`");
    while($fPLZ = mysql_fetch_assoc($plzQry))
    {
        $coords = file_get_contents("http://maps.google.com/maps/geo?q=" . $fPLZ['plz'] . "&output=csv");
        list ($http_statuscode, $bla, $laenge, $breite,) = split('[,]', $coords);
        mysql_query("UPDATE `zoos` SET `laengengrad` = '" . mysql_real_escape_string($laenge) . "', `breitengrad` = '" . mysql_real_escape_string($breite) . "' WHERE `plz` = '" . $fPLZ['plz'] . "'");
    }
    ?>

    Niemals MYsql Query in eine Schleife stecken, performance lastig, das script mit den file get contents schein mir eh schon performance lastig genug zu sein


    set time limit auch mal hochstellen

    mfg

  • Da die erste Abfrage eh erstmal nur die Anzahl klären soll würde ich das über das MySql-Count lösen. Fällt schonmal eine Last weg...