Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
gleiche DS finden... [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
gleiche DS finden...


 
Metallica
26-02-2002, 13:17 
 
Hi Leute/$schmalle!

wie kann ich in meiner DB überprüfen, ob in einer spalte zweimal (ggf. auch öfter) der gleiche wert steht??
hab jetzt schon alles probiert. haut nicht hin (siehe kommentar)

SCRIPT-Auszug:
$samevalue = mysql_query("SELECT VALUEitc, IDitc FROM tabelle WHERE VAULUEitc LIKE VALUEitc"); //da hat's was
$anzvalue = mysql_num_rows($samevalue);

if($anzvalue == 0) { echo "Keine Übereinstimmung gefunden!"; }

if($anzvalue >= 1) {
while ($id2 = mysql_fetch_array($card)) {
$id = $id2["IDitc"];
echo "Übereinstimmung gefunden! Datensatznummer: $id <br>";
} //while
} //end if

 
schmalle
26-02-2002, 13:25 
 
:)
1. wie kann man seinen tabellen solche derart bescheurten namen geben? da blickt doch keiner durch :)

2. ist VALUEitc jetzt eine spalte oder ein wert oder was oder wie?

wenn es eine spalte ist, kann das ja so nicht gehen ...

 
Metallica
26-02-2002, 13:32 
 
ahhh, ich kann doch nix dafür. die namen hab ich nicht vergeben. is nich mein pfusch.

VALUEitc ist auf jeden fall eine SPALTE.

was ich erreichen will:
alle DS in der DB sollen durchlaufen werden und es soll dabei überprüft werden ob in Spalte VALUEitc irgendwo ein wert doppelt vorkommt.

zB:
VALUEitc
1Zeile: 345
2Zeile: 678
3Zeile: 890
4Zeile: 345

zeile 1 und 4 haben den gleichen wert => echoausgabe von php (siehe script)

KONKRET:
ich will wissen was an dem befehl für den vergleich nicht paßt:
mysql_query("SELECT VALUEitc, IDitc FROM tabelle");
=> nach tabelle müßte noch die WHERE-Klausel kommen. nur wie sieht die aus??


[Editiert von Metallica am 26-02-2002 um 15:17]

 
Titus
26-02-2002, 19:54 
 
$query = select distinct VALUEitc, count(*) as ANZAHL from tabelle group by VALUEitc having ANZAHL>1
$q = mysql_query($query) or die ("$query: ".mysql_error());
while ($r = mysql_fetch_row($q))
echo "VALUEitc '$r[0]' ist $r[1] mal vorhanden<br>\n";

 
Metallica
04-03-2002, 13:40 
 
danke Titus, funtzt perfectly :)

ein anliegen hätt ich da aber noch:
wenn 2 gleiche DS vorhanden sind, wäre es sehr praktisch wenn mir php noch die ID dazu ausgeben könnte damit ich nicht die ganze tabelle manuell durchsuchen muss.
hab dazu den select-befehl erweitert => funtzt aber nicht.

$query = "select distinct IDitc, VALUEitc, count(*) as ANZAHL from tabelle group by VALUEitc having ANZAHL>1";
$q = mysql_query($query) or die ("$query: ".mysql_error());
while ($r = mysql_fetch_row($q))
echo "IDitc, VALUEitc '$r[0]' ist $r[1] mal vorhanden<br>\n";

???

 
Titus
04-03-2002, 19:30 
 
nope, klappt so nicht.
die IDs mußt du in einer zusätzlichen Schleife abfragen. Aber das geht ja ganz einfach:
$query = select distinct VALUEitc, count(*) as ANZAHL from tabelle group by VALUEitc having ANZAHL>1
$q = mysql_query($query) or die ("$query: ".mysql_error());
while ($r = mysql_fetch_row($q))
{
$q2 = mysql_query ("select IDitc from tabelle
where VALUEitc='$r[0]'");
$ids = array();
while (list($id) = mysql_fetch_row($q2))
$ids[] = $id;
echo "VALUEitc '$r[0]' $r[1] mal: IDs ",
implode(', ', $ids), "<br>\n";
}

 
Metallica
05-03-2002, 08:47 
 
yoooooooooooooo:):)
supi. funtzt perfectly.

THHHHHHHHXXXXXXXXXSSSSSSSSS


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:09 Uhr.