Abfrage mySQL (nochmal)

Abfrage mySQL (nochmal)

am 23.10.2007 15:49:18 von ralf-k-k

Weiß gerade nicht weiter:

Das hier funktioniert:

$result = mysql_query("SELECT hausnr FROM leitungswege WHERE hausnr
LIKE $new_hausnr")

Soll aber erweitert werden zu sowas "ähnlichem" wie hier:

$result = mysql_query("SELECT hausnr FROM leitungswege WHERE hausnr
LIKE $new_hausnr OR WHERE hausnr LIKE $new_hausnr2")

Aber das funktionert nicht...

Es soll also bei der Abfrage nachgeschaut werden, ob in der Tabelle
hausnr den Wert $new_hausnr steht, und wenn das nicht der Fall ist,
soll geprüft werden, ob hausnr den Wert $new_hausnr2 hat.

Re: Abfrage mySQL (nochmal)

am 23.10.2007 16:05:09 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: Abfrage mySQL (nochmal)

am 23.10.2007 16:43:46 von Claus Reibenstein

Ralf K. schrieb:

> $result = mysql_query("SELECT hausnr FROM leitungswege WHERE hausnr
> LIKE $new_hausnr OR WHERE hausnr LIKE $new_hausnr2")

Lass mal das zweite WHERE weg.

Gruß. Claus

Re: Abfrage mySQL (nochmal)

am 23.10.2007 17:17:59 von ralf-k-k

Geht leider auch nicht. :-(

Re: Abfrage mySQL (nochmal)

am 23.10.2007 18:05:43 von dafox

Ralf K. schrieb:
> Geht leider auch nicht. :-(

Wie ich bereits schrieb:

SELECT hausnr
FROM leitungswege t1
WHERE t1.hausnr = $new
OR NOT EXISTS(SELECT * FROM leitungswege t2 WHERE t2.hausnr = $new)
AND t1.hausnr = 1;

Re: Abfrage mySQL (nochmal)

am 23.10.2007 18:07:50 von dafox

Ralf K. schrieb:
> Geht leider auch nicht. :-(

Wie ich bereits schrieb:

SELECT hausnr
FROM leitungswege t1
WHERE t1.hausnr = $new
OR NOT EXISTS(SELECT * FROM leitungswege t2 WHERE t2.hausnr = $new)
AND t1.hausnr = 1;

bzw. für MySQL

SELECT hausnr
FROM leitungswege t1
WHERE t1.hausnr = IF((SELECT COUNT(*) FROM leitungswege t2 WHERE
t2.hausnr = $new) > 0, $new, 1);

Re: Abfrage mySQL (nochmal)

am 23.10.2007 18:58:40 von Joerg Behrens

Ralf K. schrieb:
> Weiß gerade nicht weiter:
>=20
> Das hier funktioniert:
>=20
> $result =3D mysql_query("SELECT hausnr FROM leitungswege WHERE hausnr=20
> LIKE $new_hausnr")
>=20
> Soll aber erweitert werden zu sowas "ähnlichem" wie hier:
>=20
> $result =3D mysql_query("SELECT hausnr FROM leitungswege WHERE hausnr=20
> LIKE $new_hausnr OR WHERE hausnr LIKE $new_hausnr2")
>=20
> Aber das funktionert nicht...
>=20
> Es soll also bei der Abfrage nachgeschaut werden, ob in der Tabelle=20
> hausnr den Wert $new_hausnr steht, und wenn das nicht der Fall ist,=20
> soll geprüft werden, ob hausnr den Wert $new_hausnr2 hat.

Wenn du einen SQL Fehler vermutest dann zeige uns das Statement und=20
nicht den PHP Code.

Wenn du einen SQL Fehler vermutest dann frage in MySQL Gruppe neben an.

Wenn du einen SQL Fehler hast dann frage den Server nach der=20
Fehlermeldung. Oftmals sieht man dann wo der Fehler sitzt.

Gruss
Joerg

--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Abfrage mySQL (nochmal)

am 23.10.2007 19:59:19 von Claus Reibenstein

Thomas Hamacher schrieb:

> Ralf K. schrieb:
>
>> Geht leider auch nicht. :-(
>
> Wie ich bereits schrieb:

Wann? Wo? In diesem Thread jedenfalls nicht.

Gruß. Claus

Re: Abfrage mySQL (nochmal)

am 23.10.2007 21:34:58 von dafox

Claus Reibenstein schrieb:
> Thomas Hamacher schrieb:

>> Wie ich bereits schrieb:

> Wann? Wo? In diesem Thread jedenfalls nicht.

Nein, aber in als Reply auf
seine identische Frage von gestern.

Re: Abfrage mySQL (nochmal)

am 24.10.2007 08:52:39 von Irmgard Schwenteck

Ralf K. schrieb:
>
> $result = mysql_query("SELECT hausnr FROM leitungswege WHERE hausnr
> LIKE $new_hausnr OR WHERE hausnr LIKE $new_hausnr2")
>
> Aber das funktionert nicht...

Abgesehen von dem doppelten WHERE
Was steht denn in $new_hausnr?

Bau Dir doch den SQl-String vorher zusammen und laß ihn mit echo
ausgeben. Dann siehst Du schon die groben Syntaxfehler, wie z.B. fehlende '.
Dann testest Du diesen direkt am SQL-Server und schaust, ob es
funktioniert wie gewünscht.

Gruß
Irmgard

Re: Abfrage mySQL (nochmal)

am 24.10.2007 09:10:26 von ralf-k-k

Vielleicht liegt mein Fehler auch schon hier:

if ($result = mysql_query("SELECT vorwahl, strassenbez, hausnr, plz,
ort, telefonie, dslampel, kvz_fremd_kz, kvz_eigen_kz FROM leitungswege
WHERE hausnr LIKE $new_hausnr AND plz LIKE $new_plz AND strassenbez
LIKE $new_strasse"))

{
usw...
}


Wann ist die Bedingung der if Abfrage denn erfüllt?

Meine Anforderung:

Wenn in der Datenbank nicht in einem Datensatz $new_hausnr, $new_plz
und $new_strasse auftauchen, soll halt als Beispiel nach $new_hausnr,
$new_plz und $new_strasse2 geguckt werden.

Re: Abfrage mySQL (nochmal)

am 24.10.2007 09:24:41 von Joerg Behrens

Ralf K. schrieb:
> Vielleicht liegt mein Fehler auch schon hier:
>=20
> if ($result =3D mysql_query("SELECT vorwahl, strassenbez, hausnr, plz,=
=20
> ort, telefonie, dslampel, kvz_fremd_kz, kvz_eigen_kz FROM leitungswege =

> WHERE hausnr LIKE $new_hausnr AND plz LIKE $new_plz AND strassenbez=20
> LIKE $new_strasse"))
>=20
> {
> usw...
> }
>=20
>=20
> Wann ist die Bedingung der if Abfrage denn erfüllt?
>=20
> Meine Anforderung:
>=20
> Wenn in der Datenbank nicht in einem Datensatz $new_hausnr, $new_plz=20
> und $new_strasse auftauchen, soll halt als Beispiel nach $new_hausnr,=20
> $new_plz und $new_strasse2 geguckt werden.

Das hatten wir doch schon geklaert? Was hat dir an den Anworten nicht=20
gepasst oder warum wendest du diese nicht an? Wobei diese Anforderung=20
ein bisschen anderes klingt als letztes mal.

Dein MySQL kann dir doch sagen obs treffer gab und wenn nein dann must=20
du eine 2. Abfrage senden.

Gruss
Joerg

--=20
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de

Re: Abfrage mySQL (nochmal)

am 24.10.2007 11:08:04 von Claus Reibenstein

Joerg Behrens schrieb:

> Ralf K. schrieb:
>
>> Vielleicht liegt mein Fehler auch schon hier:
>>
>> if ($result = mysql_query([...]))
>>
>> Wann ist die Bedingung der if Abfrage denn erfüllt?

Wenn die Query fehlerfrei ausgeführt werden konnte.

Gruß. Claus