Newbie Frage / Vorwahl Null

Newbie Frage / Vorwahl Null

am 11.12.2006 09:46:30 von michael.fan

Hallo,

ich hab da mal eine (hoffentlich) ganz simple newbie-Frage.
Also, ich speichere in einer Datenbank Adressdaten und unter anderem
die Telefonvorwahl.
Die Vorwahl ist mit einer "0" vorweg.
In der Datenbank ist das Feld formatiert als VARCHAR(6) und
latin1_general_ci.
Wenn die Vorwahl gespeichert wird, dann fehlt die vorangestellte "0"
und wird nicht gespeichert.
Muss ich das Feld anders formaiteren?
Danke!
Gruß
Micha

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 09:58:25 von Andreas Kretschmer

Andreas
--
Andreas Kretschmer
Linux - weil ich es mir wert bin!
GnuPG-ID 0x3FFF606C http://wwwkeys.de.pgp.net
Deutsche PostgreSQL User Group: http://pgug.de

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 10:28:07 von Thomas Rachel

Michael Fana wrote:

> ich hab da mal eine (hoffentlich) ganz simple newbie-Frage.
> Also, ich speichere in einer Datenbank Adressdaten und unter anderem
> die Telefonvorwahl.
> Die Vorwahl ist mit einer "0" vorweg.

+49 wäre eleganter.

> In der Datenbank ist das Feld formatiert als VARCHAR(6) und
> latin1_general_ci.

> Wenn die Vorwahl gespeichert wird, dann fehlt die vorangestellte "0"
> und wird nicht gespeichert.

Wenn Du Dir sicher bist, daß das wirklich VARCHAR(6) ist, könnte es evtl.
noch ein applikationsseitiges Problem sein, nämlich, daß dirt die Daten
schon numerisch gespeichert werden und daher die 0 fehlt.

Erkennbar wäre das an dem SQL-String, der zum Server geschickt wird. Wie
sieht der denn aus?


Thomas
--
>Ich bin anscheinend nicht so geschmacklos, ich habe meine Frau in
>de.talk.romance kennengelernt...
Man sagt "aus de.talk.romance gedownloaded". (K. Koehntopp in d.a.f.u)

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 10:42:20 von michael.fan

Hallo Andreas,

> 1. varchar(6) ist zu kurz. Meine Durchwahl hier hat 11 Stellen, mit
> Vorwahl, aber ohne Ländervorwahl

es geht nur um die Vorwahl - ohne Telefonnummer / Durchwahl /
Ländervorwahl

Gruß
Micha

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 10:49:30 von michael.fan

Hallo Thomas,


> Wenn Du Dir sicher bist, daß das wirklich VARCHAR(6) ist, könnte es e=
vtl.
> noch ein applikationsseitiges Problem sein, nämlich, daß dirt die Dat=
en
> schon numerisch gespeichert werden und daher die 0 fehlt.

das vermute ich auch.

> Erkennbar wäre das an dem SQL-String, der zum Server geschickt wird. Wie
> sieht der denn aus?

Der String sieht folgendermaßen aus (etwas abgekürzt):

UPDATE tabelle SET vorwahl=3D'030' WHERE name =3D 'name'

In der Tabelle steht dann aber unter vorwahl: 30

Hab VARCHAR mal auf Text geändert, hat aber nix gebracht...

Gruß
Micha

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 10:59:45 von Stephan Menzel

Hallo

>Hallo Thomas,
>
>
>> Wenn Du Dir sicher bist, daß das wirklich VARCHAR(6) ist, könnte es evtl.
>> noch ein applikationsseitiges Problem sein, nämlich, daß dirt die Daten
>> schon numerisch gespeichert werden und daher die 0 fehlt.
>
>das vermute ich auch.
>
>> Erkennbar wäre das an dem SQL-String, der zum Server geschickt wird. Wie
>> sieht der denn aus?
>
>Der String sieht folgendermaßen aus (etwas abgekürzt):
>
>UPDATE tabelle SET vorwahl='030' WHERE name = 'name'
Ich denke mal nicht das das die SQL-Anweisung ist die deine
Applikation zum Server sendet, da du bestimmt einen Treffenderen namen
als "tabelle" gewählt hast und den zu aktualisierenden Datensatz
bestimmt nicht über "WHERE name='' " identifizierst! ;)

Also welchen Datentyp hat dein Vorwahfeld in deiner Applikation
und was schickt diese zum Server?

>In der Tabelle steht dann aber unter vorwahl: 30
>
>Hab VARCHAR mal auf Text geändert, hat aber nix gebracht...
>
>Gruß
>Micha

cu Stephan

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 11:08:12 von Sebastian Suchanek

Michael Fana schrieb:
> Hallo Thomas,
>
>
>> Wenn Du Dir sicher bist, daß das wirklich VARCHAR(6) ist, könnte es evtl.
>> noch ein applikationsseitiges Problem sein, nämlich, daß dirt die Daten
>> schon numerisch gespeichert werden und daher die 0 fehlt.
>
> das vermute ich auch.
> [...]

Dann überprüf's doch. :-)
Bei PHP z.B. wäre das ein "var_dump($VariableMitDerVorwahl)"
unmittelbar vor dem Zusammenbauen des SQL-Strings.


Tschüs,

Sebastian

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 11:24:05 von michael.fan

Hallo Stephan,


> >UPDATE tabelle SET vorwahl=3D'030' WHERE name =3D 'name'
> Ich denke mal nicht das das die SQL-Anweisung ist die deine
> Applikation zum Server sendet, da du bestimmt einen Treffenderen namen
> als "tabelle" gewählt hast und den zu aktualisierenden Datensatz
> bestimmt nicht über "WHERE name=3D'' " identifizierst! ;)

natürlich heisst die Tabelle nicht "tabelle" und die Identifikation
läuft über id=B4s, aber das sollte eigentlich unerheblich sein ;-)

> Also welchen Datentyp hat dein Vorwahfeld in deiner Applikation
> und was schickt diese zum Server?

Das ganze mache ich über eine PHP Seite, auf der ein Texteingabefeld
ist, für die Vorwahl. Der "angepasste" String wird mit PHP an die
MySQL Datenbank gesendet.
Gruß
Micha

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 11:47:25 von Stephan Menzel

Hallo,

>Hallo Stephan,
>
>
>> >UPDATE tabelle SET vorwahl='030' WHERE name = 'name'
>> Ich denke mal nicht das das die SQL-Anweisung ist die deine
>> Applikation zum Server sendet, da du bestimmt einen Treffenderen namen
>> als "tabelle" gewählt hast und den zu aktualisierenden Datensatz
>> bestimmt nicht über "WHERE name='' " identifizierst! ;)
>
>natürlich heisst die Tabelle nicht "tabelle" und die Identifikation
>läuft über id´s, aber das sollte eigentlich unerheblich sein ;-)
>
>> Also welchen Datentyp hat dein Vorwahfeld in deiner Applikation
>> und was schickt diese zum Server?
>
>Das ganze mache ich über eine PHP Seite, auf der ein Texteingabefeld
>ist, für die Vorwahl. Der "angepasste" String wird mit PHP an die
>MySQL Datenbank gesendet.
und der gesendete String(debug bzw dump in php) sieht wie aus?


>Gruß
>Micha

cu Stephan

Re: Newbie Frage / Vorwahl Null

am 11.12.2006 14:23:14 von Claus Reibenstein

Michael Fana schrieb:

> Hallo Stephan,
>
>>> UPDATE tabelle SET vorwahl='030' WHERE name = 'name'
>>
>> Ich denke mal nicht das das die SQL-Anweisung ist die deine
>> Applikation zum Server sendet, [...]
>
> natürlich heisst die Tabelle nicht "tabelle" und die Identifikation
> läuft über id´s, aber das sollte eigentlich unerheblich sein ;-)

Du hast nicht verstanden.

Du glaubst vermutlich, dass der String, den Du sendest, so aussieht wie
das, was Du geschrieben hast. Genau daran haben wir begründete Zweifel.

Wir wollen auch nicht wissen, wie Du den SQL-Befehl zusammenbaust. Wir
wollen wissen, wie der fertig zusammengebaute Befehl aussieht. Genau
dort vermuten wir den Fehler.

Jetzt klar?

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 09:46:29 von michael.fan

Hallo Claus, hallo Stephan,

das ist das Ergebnis von "var_dump($vorwahl);" :
string(4) "0321"

Gruß
Micha

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 09:55:48 von Claus Reibenstein

Michael Fana schrieb:

> das ist das Ergebnis von "var_dump($vorwahl);" :
> string(4) "0321"

Was _genau_ hast Du an "Wir wollen wissen, wie der fertig
zusammengebaute Befehl aussieht" nicht verstanden?

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 10:38:08 von Axel Schwenke

"Michael Fana" wrote:
> Hallo Claus, hallo Stephan,
>
> das ist das Ergebnis von "var_dump($vorwahl);" :
> string(4) "0321"

Das! War! Nicht! Gefragt!

Bist du nicht in der Lage, eine simple Frage zu beantworten?
Willst du eigentlich wirklich Hilfe?

Wie *GENAU* sieht der Querystring aus, den du MySQL für das
INSERT vorwirfst?


XL

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 12:33:56 von michael.fan

Hallo,

tut mir leid, aber ich weiß (offensichtlich) jetzt nicht genau was Ihr
wollt.

Mein PHP Script sieht so aus:
$query =3D "Update adressen set vorwahl=3D'$vorwahl' where adressid =3D
'$id'";
mysql_query($query) or die("$query Eingabe fehlgeschlagen");

Der Print $query sieht so aus:
Update adressen set vorwahl=3D'0321' where adressid =3D '34'

War es das, was Ihr wissen wolltet?
Gruß
Micha

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 13:09:58 von Kai Ruhnau

Michael Fana schrieb:
> tut mir leid, aber ich weiß (offensichtlich) jetzt nicht genau was Ihr
> wollt.
>
> Mein PHP Script sieht so aus:
> $query = "Update adressen set vorwahl='$vorwahl' where adressid =
> '$id'";
> mysql_query($query) or die("$query Eingabe fehlgeschlagen");
>
> Der Print $query sieht so aus:
> Update adressen set vorwahl='0321' where adressid = '34'
>
> War es das, was Ihr wissen wolltet?

Jein, denn irgendwo unterwegs hast du uns angelogen:



mysql> CREATE TABLE adressen (adressid VARCHAR(10) NOT NULL, vorwahl
VARCHAR(6) NOT NULL);
Query OK, 0 rows affected (0.04 sec)

mysql> INSERT INTO adressen SET adressid='34', vorwahl='';
Query OK, 1 row affected (0.00 sec)

mysql> Update adressen set vorwahl='0321' where adressid = '34';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> SELECT * FROM adressen;
+----------+---------+
| adressid | vorwahl |
+----------+---------+
| 34 | 0321 |
+----------+---------+
1 row in set (0.00 sec)



Wie du siehst, funktioniert alles so, wie erwartet.

Nebenbemerkung: Bist du dir sicher, dass du `adressid` als
CHAR/VARCHAR/... gespeichert hast, denn schließlich sprichst du das Feld
über einen String an?

Grüße
Kai

--
This signature is left as an exercise for the reader.

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 15:18:46 von Claus Reibenstein

Michael Fana schrieb:

> tut mir leid, aber ich weiß (offensichtlich) jetzt nicht genau was Ihr
> wollt.

Wir wollen das fertige SQL-Statement sehen, was an den Server geschickt
wird.

> Mein PHP Script sieht so aus:
> $query = "Update adressen set vorwahl='$vorwahl' where adressid =
> '$id'";

Hier baust Du ein SQL-Statement zusammen.

> Der Print $query sieht so aus:
> Update adressen set vorwahl='0321' where adressid = '34'

Genau diese Zeile wollten wir sehen.

Dieses SQL-Statement sieht richtig aus. Der Fehler kann hier also
eigentlich nicht liegen. Er muss an einer anderen Stelle sitzen.

Bist Du sicher, dass vorwahl als (VAR)CHAR definiert ist? Wenn ja,
scheidet das ebenfalls aus.

Du schreibst, dass statt '0321' nur '321' gespeichert wird. Wie hast Du
das geprüft? Hast Du direkt mit mysql oder einem Tool wie
mysql-administrator oder phpMyAdmin in die Datenbank geschaut? Oder hast
Du erst in Deiner (PHP-)Anwendung bemerkt, dass die 0 verschwunden ist?

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 15:30:01 von Heiko Richler

Hallo Michael,

> Der Print $query sieht so aus:
> Update adressen set vorwahl='0321' where adressid = '34'

Das sieht schon gut aus. Die Vorwahl sollte demnach als String ankommen.

Zusätzlich wären die Ergebnisse der SQL-Anweisungen "desc Census" und
"select vorwahl from adressen" nützlich.

"desc Census" liefert die Struktur der Tabelle.

Gruß

Heiko
--
http://portal.richler.de/ Namensportal zu Richler
http://www.richler.de/ Heiko Richler: Computer - Know How!
http://www.richler.info/ private Homepage

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 17:43:59 von Harald Fuchs

In article <4u7tidF16pf2vU1@mid.individual.net>,
Claus Reibenstein <4spammersonly@web.de> writes:

> Du schreibst, dass statt '0321' nur '321' gespeichert wird. Wie hast Du
> das geprüft? Hast Du direkt mit mysql oder einem Tool wie
> mysql-administrator oder phpMyAdmin in die Datenbank geschaut? Oder hast
> Du erst in Deiner (PHP-)Anwendung bemerkt, dass die 0 verschwunden ist?

Meine Glaskugel tendiert auch in diese Richtung: daß er nicht per
Kommandozeile auf die Tabelle zugegriffen hat, sondern mit phpMyAdmin
oder sonstigem PHP-Geraffel, was die führende Null verschluckt hat.

Re: Newbie Frage / Vorwahl Null

am 12.12.2006 21:51:25 von Claus Reibenstein

Harald Fuchs schrieb:

> In article <4u7tidF16pf2vU1@mid.individual.net>,
> Claus Reibenstein <4spammersonly@web.de> writes:

Inwiefern tragen Deiner Meinung nach Message-ID und Mailadresse zum
besseren Verständnis des Zitats bei?

>> Du schreibst, dass statt '0321' nur '321' gespeichert wird. Wie hast Du
>> das geprüft? Hast Du direkt mit mysql oder einem Tool wie
>> mysql-administrator oder phpMyAdmin in die Datenbank geschaut? Oder hast
>> Du erst in Deiner (PHP-)Anwendung bemerkt, dass die 0 verschwunden ist?
>
> Meine Glaskugel tendiert auch in diese Richtung: daß er nicht per
> Kommandozeile auf die Tabelle zugegriffen hat, sondern mit phpMyAdmin
> oder sonstigem PHP-Geraffel, was die führende Null verschluckt hat.

Du hast mich missverstanden: Das große "Oder" am Anfang des letzten
Satzes ist das entscheidende "Oder", nicht das kleine "oder" zwischen
"mysql" und "einem Tool".

Weder die Kommandozeile noch die genannten Tools verschlucken führende
Nullen. Wenn sie dort schon nicht zu sehen sind, sind sie wirklich nicht
in der Datenbank. Anderenfalls werden sie erst in der Anwendung (beim
Auslesen oder irgendwann danach) verschluckt.

Gruß. Claus
--
,~°O O
O ,´ / |/|\
/ |¯`. Das neue Hochzeits-Branchenbuch im Internet ,´ / | |\
/__| `~...............................................~´ /___|/ /