kostenloser Webspace werbefrei: lima-city


script funzt im phpmyadmin aber ne in php

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    rlliewi

    rlliewi hat kostenlosen Webspace.

    habe folgendes script im phpmyadmin ausgef?hrt...es soll doppelte eintr?ge entfernen...macht es auch...

    CREATE TEMPORARY TABLE doppel
    SELECT *, count(*) AS counter
    FROM produkte
    WHERE owner=3
    GROUP BY Title
    HAVING counter > 1;

    DELETE produkte FROM produkte, doppel
    WHERE produkte.Title = doppel.Title
    AND produkte.id != doppel.id;

    INSERT INTO produkte SELECT 0, ArtNumber, Title, Description_short, DisplayPrice, Img_url, DeepLink1, owner FROM doppel;

    :mad: aber :mad:
    im php-script funktioniert das ganze ne...

    mysql_query("CREATE TEMPORARY TABLE doppel");
    mysql_query("SELECT *, COUNT(*) AS counter
    FROM produkte
    WHERE owner=$id GROUP BY Title
    HAVING counter > 1");
    
    mysql_query("DELETE produkte FROM produkte, doppel WHERE (produkte.Title = doppel.Title) AND (produkte.id != doppel.id)");
    mysql_query("DROP TABLE doppel");


    Hat jemand eine L?sung...oder kennt den Fehler ???

    Das ganze soll m?glichst auf SQL-Basis sein, da ich nicht jedes gefundene Element einzeln per delete-abfrage aus der DB l?schen m?chte... das kann beim vergleichen von knapp 10 MB Daten in rund 8.000 Eintr?gen ziemlich zeitintensiv sein. ... nikcht kann , sondern ist es auch :)


    MfG
    Danke schon mal jetzt f?rs angucken und nachdenken

    Beitrag ge?ndert am 6.11.2005 14:35 von rlliewi
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. k**********e

    kommt denn eine fehlermeldung?

    wenn ja welche?

    verbindung zur mysql hast du im php script auch aufgebaut?
  4. Autor dieses Themas

    rlliewi

    rlliewi hat kostenlosen Webspace.

    warte mal...hier das ganze script...verbindugn ist da...keine fehlermeldung

    <?PHP
    	include("is_logged_in.php");
    	if($is_logged_in == 1){
    		// ist eingeloggt
    		include("../config.php");
    
    		$link = mysql_connect("localhost", $db_user, $db_pass) or die ("Konnte keine Verbindung zum Server herstellen");
    		mysql_select_db($db_name, $link) or die ("Konnte keine Verbindung zur Datenbank herstellen");
    
    // TODO
    
    		mysql_query("CREATE TEMPORARY TABLE doppel");
    		$temp = mysql_query("SELECT *, COUNT(*) AS counter FROM produkte WHERE owner=$id GROUP BY Title HAVING counter > 1");
    		mysql_query("DELETE produkte FROM produkte, doppel WHERE (produkte.Title = doppel.Title) AND (produkte.id != doppel.id)");
    		mysql_query("DROP TABLE doppel");
    
    		$x = mysql_num_rows($temp);
    
    		echo "<B>Es wurden insgesamt $x doppelte Eintr?ge entfernt</B>";
    	}
    	else{
    		// nicht eingeloggt
    		include("not_logged_in.php");
    	}
    ?>
    
    <BR><BR>
    
    <A href="javascript:history.go(-1);"><FONT color="#666633">&laquo;&laquo; Zur?ck</A></FONT>
  5. k**********e

    hym... immer schwierig ein fehler zu finden wenn es keine fehlermeldung gibt..

    um zuz?hlen wieviele datens?tze gel?sch wurden nach dem mysql_query mit DELATE $x = mysql_affected_rows(); machen...

    so...

    wo wurde die variable $id gesetzt? kommt sie aus der einer (wie ich anheme) session und wurde im is_logged_in.php aus der sessionvariable entnommen und gesetzt. oder ?bergibst du sie per link/bzw formular? als mit den methoden $_GET und $_POST

    dann musst du an register globals denken.

    eichfach mal
    echo "SELECT *, COUNT(*) AS counter FROM produkte WHERE owner = $id GROUP BY Title HAVING counter > 1"
    machen und sehen was da an mysql gesendet wird.
  6. <?php
    function parse_mysql_dump ( $url ){
    $file_content = file ( $url );
    $query = "";
    foreach ( $file_content as $sql_line ) {
    if ( trim ( $sql_line ) != "" && strpos ( $sql_line, "--" ) === false ){
    $query .= $sql_line;
    if ( preg_match ( "/;\s*$/", $sql_line ) ) {
    $result = mysql_query ( $query ) or die ( mysql_error () );
    $query = "";
    }
    }
    }
    }
    ?>

    Ein kleines hilfreiches Script am Rande. ;-)
    Einfach den gesamten SQL Code (?) in einer Datei speichern und dann ?ber
    <?php
    parse_mysql_dump ( 'dateiname.sql' );
    ?>
    aufrufen.
    Dann sollte auch Fehlermeldungen erscheinen.

    MfG Lucas
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!