 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
21.11.2003, 13:35
|
#1
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
zeichen an position X auslesen
hi
wie kann ich mit mysql auslesen, ob z.b. das 3. zeichen in einem string (varchar) numerisch oder alphanumerisch ist?
beispiel:
string: W0G0000
ich will wissen, welchen typ zeichen nr. 3 ("G") hat!
danke 
|
|
|
21.11.2003, 14:00
|
#2
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Tach!
Das könnte klappen:
Code:
SELECT * , lala
REGEXP "^.{2}[a-z]" AS isstring
FROM `prefix`
...wobei man natürlich hierbei auf die Performance achten sollte, wenn es sich um mehrere Tausend DS handelt, solltest du dir womöglich was anderes einfallen lassen.
Gruss
Jan
|
|
|
21.11.2003, 14:01
|
#3
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
danke jan
hast mir schon mal einen schritt weitergeholfen, weitere fragen kommen sicher noch!
bin grad dabei, eine vermittlerhierarchie zu genieren - und ich sag dir was: auf die edv-technische möglichkeit, das abzuarbeiten und mit einer gewissen logik zu versehen, haben die damals nicht gedacht  *schwitz*
|
|
|
21.11.2003, 14:07
|
#4
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
sorry, heute muss ich nerven (aber nur mehr 30 minuten, dann geh ich heim, um morgen wieder in die firma zu kommen  ):
mit folgender abfrage krieg ich nichts raus:
PHP-Code:
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name FROM fdaw_vmdaten
WHERE (REGEXP \"^.{2}[a-z]\" AS isstring) AND (LEFT(orgnr,2) = '$orgnrli2')
ORDER BY orgnr ASC");
$orgnrli2 = WG
ich will jetzt alle rausziehen, die an den ersten beiden stellen "WG" haben, gefolgt von einem (!!!) buchstaben, danach vier ziffern (!!!).
irgenwie schluckt mysql den regexp-ausdruck nicht
edit
mit folgendem query krieg ich was, aber das falsche (hab in der regexp auch schon mit "2" versucht -> auch nix):
PHP-Code:
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name REGEXP \"^.{3}[a-z]\" AS isstring
FROM fdaw_vmdaten WHERE (LEFT(orgnr,2) = '$orgnrli2')
ORDER BY orgnr ASC");
Geändert von prefix (21.11.2003 um 14:10 Uhr).
|
|
|
21.11.2003, 14:10
|
#5
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Hehe... jaja Hirachien aufzubauen macht spass 
Die hier -> http://www.fifoost.org/database/nace/nace-de_2002c.php hatte ich als CVS-Datei in deutsch und eine NACE-Liste in Englisch... und musste daraus eine hirachische Struktur aufbauen... fein fein... 2 sprachig aus 2 Dateien, die dann noch unterschiedlich waren. Am Ende wars dann doch garnicht so viel.. hier mal ein snippet aus den 70 Zeilen-Script:
PHP-Code:
$a = $prev_tiefe = $tiefe = 0;
foreach($data AS $bit) {
$tiefe = strlen(str_replace(".","",$bit[1]))+strlen($bit[4]);
if($tiefe > $prev_tiefe) {
$_tiefe++;
$childof = $stack[$_tiefe-1];
$stack[$_tiefe] = $bit[0];
$nacestack[$_tiefe] = $bit[1];
} else if($tiefe == $prev_tiefe) {
if(preg_match("/[a-z]/i",$nacestack[$_tiefe-1])) {
$childof = $stack[$_tiefe];
$tiefe++;
$_tiefe++;
} else {
$childof = $stack[$_tiefe-1];
}
} else if($tiefe < $prev_tiefe) {
$_tiefe = $tiefe;
$childof = $stack[$_tiefe-1];
$stack[$_tiefe] = $bit[0];
$nacestack[$_tiefe] = $bit[1];
}
insertNACE($bit,$childof);
$prev_tiefe = $tiefe;
echo "<tr><td><pre>Tiefe: ".$_tiefe."(ID:".$bit[0].")</pre></td><td><pre>".space($tiefe).$bit[1]." (Child of:".$childof.")</pre></td></tr>";
}
 ...wer weiss, was ich mir dabei gedacht hab... aber es funktioniert
Gruss
Jan
|
|
|
21.11.2003, 14:12
|
#6
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
hehe, leider ist das spielchen bei mir noch komplexer (denke ich), weil es an sich ur viele ausnahmen gibt - versicherung halt
ich muss jetzt nur mal feststellen können, wie ich eben rausfiltere, ob:
- die ersten 2 stellen gleich wie die variable sind (hab ich schon)
- die 3. stelle ein buchstabe ist
- ab der 4. stelle KEINE buchstaben mehr vorkommen
das wäre dann mal die 2. ebene von 5 
|
|
|
21.11.2003, 14:13
|
#7
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Du wendest den Regex ja auch auf "nix" an?? davor muss das Feld stehen! Und dann musst du das Ergeniss des Regex natürlich auchnoch vergleichen 1 oder 0 ...was auch immer du haben willst
Code:
//"WG" haben, gefolgt von einem (!!!) buchstaben, danach vier ziffern (!!!).
^WG[a-z]{1}[0-9]{4}
Gruss
Jan
|
|
|
21.11.2003, 14:19
|
#8
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
sorry, ich bin ein regexp-mongo
soweit bin ich jetzt:
PHP-Code:
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name, REGEXP \"^.{2}[a-z]\" AS orgnr FROM fdaw_vmdaten ORDER BY orgnr ASC");
leider keine ausgabe, ich vermute, ich wende das nicht richtig an - WORAUF muss ich das anwenden bzw. hab schon probiert, die "orgnr" dahinterzustellen usw. - shit, hört sich jetzt echt dummy-mäßig von mir an *hehe* - sorry 
|
|
|
21.11.2003, 14:24
|
#9
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Also: Dein Regex bezieht sich immernoch auf garnix! DAVOR muss der Spaltenname stehen:
Code:
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name, orgnr REGEXP \"^.{2}[a-z]\" AS orgnr_isstring FROM fdaw_vmdaten WHERE orgnr_isstring = 1 ORDER BY orgnr ASC");
...so z.B.  Der Regex-Ausdruck gibt nur 1 oder 0 zurück. Darauf kannst du dann die Where-Klausel anwenden, oder den gesamten Regex in die where-klausel schieben...
|
|
|
21.11.2003, 14:32
|
#10
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
argghhhh:
Zitat:
|
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /home/intranet/transfer/vmhierarchaufbau.php on line 86
|
irgendwas passt da noch nicht - ich verzweifle
hier mal der entsprechende teil -> es wird z.b. die orgnr GD000000 als übergeordnete nr. ausgegeben, der mittlere teil (query 2. hierarchie) liest dann wie oben beschrieben aus:
PHP-Code:
// 1. stufe ausgeben
$abfrage = mysql_query("SELECT DISTINCT orgnr,name
FROM fdaw_vmdaten WHERE orgnr LIKE '%00000' AND orgnr NOT LIKE '%000000'
ORDER BY name ASC");
while($ausgabe = mysql_fetch_object($abfrage)) {
$orgnrli2 = substr($ausgabe->orgnr,0,2);
echo "$ausgabe->orgnr|$ausgabe->name<br><hr>";
// 2. stufe ausgeben
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name, orgnr REGEXP \"^.{2}[A-Z]\" AS orgnr_isstring
FROM fdaw_vmdaten WHERE orgnr_isstring = 1
ORDER BY orgnr ASC");
while ($ausgabe2 = mysql_fetch_object($abfrage2)) {
echo "$ausgabe2->orgnr|$ausgabe2->name<br>";
}
// ende 2. stufe
}
// ende 1. stufe
|
|
|
21.11.2003, 14:34
|
#11
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
OR die(mysql_error()); ?
|
|
|
21.11.2003, 16:19
|
#12
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
hä? du meinst die abfrage durchführen oder die fehlernr ausgeben?
bin morgen (leider) in der firma wieder dran, dann machen wir da weiter - danke für heute mal für die hilfe, das bringen wir schon hin 
|
|
|
22.11.2003, 13:12
|
#13
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
so, sitz jetzt zuhause und hab denselben datenbestand im internet hergestellt - es handelt sich in folge um diese seite
jetzt fahre ich mit folgender abfrage (die zwar keinen fehler bringt, aber noch nicht richtig ist):
PHP-Code:
// 2. stufe ausgeben
//$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name, orgnr REGEXP \"^.{2}[A-Z]\" AS orgnr_isstring FROM fdaw_vmdaten WHERE orgnr_isstring = 1 ORDER BY orgnr ASC");
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name FROM fdaw_vmdaten WHERE (LEFT(orgnr,2) = '$orgnrli2') ORDER BY orgnr ASC");
while ($ausgabe2 = mysql_fetch_object($abfrage2)) {
echo "$ausgabe2->orgnr|$ausgabe2->name<br>";
}
// ende 2. stufe
in dem moment, wo ich die "abfrage2" wie folgt definiere, krieg ich einen mysql-error (wie schon weiter oben beschrieben):
PHP-Code:
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name, orgnr REGEXP \"^.{2}[A-Z]\" AS orgnr_isstring FROM fdaw_vmdaten WHERE orgnr_isstring = 1 ORDER BY orgnr ASC");
ich hoffe, durch das live-beispiel im netz kommen wir weiter 
|
|
|
22.11.2003, 13:24
|
#14
|
|
TP-Moderator
Registriert seit: Feb 2001
Ort: Helmstedt/Wolfsburg
|
Wie schon gesagt, wäre es schön, wenn wir wissen würden um welchen MySQL-Error es sich handelt  . Dafür ist die Funktion mysql_error() da. Also:
PHP-Code:
$lala = mysql_query("...") OR die(mysql_error());
|
|
|
22.11.2003, 13:28
|
#15
|
|
TP-Specialist
Registriert seit: Aug 2002
Ort: Nähe Wien
|
sorry, war aus dem kopf draussen
Zitat:
|
Unbekanntes Tabellenfeld 'orgnr_isstring' in where clause.
|
abfrage:
PHP-Code:
$abfrage2 = mysql_query("SELECT DISTINCT orgnr, name, orgnr REGEXP \"^.{2}[A-Z]\" AS orgnr_isstring FROM fdaw_vmdaten WHERE orgnr_isstring = 1 ORDER BY orgnr ASC") OR die(mysql_error());
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 17:12 Uhr.
|
 |