MySQL-Newbiefrage

MySQL-Newbiefrage

am 27.06.2005 11:26:51 von Adrian

Hallo,

ich versuche so meine MySQL-Daten auszulesen:

[Code]
$result = mysql_query("SELECT Address FROM spammail GROUP BY Address");
while ($row = mysql_fetch_array ($result))
{
echo "passed ".trim($email)."
\n";
if (trim($row)==trim($email))
{
echo "got ".$row."
\n";
return true;
}
}
return false;
[/Code]
krieg aber beim vergleich folgenden Fehler (mit error_reporting(E_ALL)):
Notice: Array to string conversion in
/srv/www/htdocs/web2/html/php/nospam/pop.php on line 24
Wie gestlte ich einen solchen vergleich denn korrekzt? Danke!

Re: MySQL-Newbiefrage

am 27.06.2005 11:37:49 von Stefan Rybacki

Ron Eggler @ work wrote:
> Hallo,
>
> ich versuche so meine MySQL-Daten auszulesen:
>
> [Code]
> $result = mysql_query("SELECT Address FROM spammail GROUP BY Address");
> while ($row = mysql_fetch_array ($result))
> {
> echo "passed ".trim($email)."
\n";
> if (trim($row)==trim($email))
> {
> echo "got ".$row."
\n";
> return true;
> }
> }
> return false;
> [/Code]
> krieg aber beim vergleich folgenden Fehler (mit error_reporting(E_ALL)):
> Notice: Array to string conversion in
> /srv/www/htdocs/web2/html/php/nospam/pop.php on line 24
> Wie gestlte ich einen solchen vergleich denn korrekzt? Danke!
>

Wie dir der Fehler schon sagt, ist $row ein array (sagt dir übrigens
auch die Funktion mysql_fetch_array ;) ) und du versucht sie mit einem
String zu vergleichen.

1. du willst bestimmt mysql_fetch_assoc
2. du dann willst $row['Adfess'] benutzen

Bis denn dann
Stefan


>

Re: MySQL-Newbiefrage

am 27.06.2005 11:44:38 von Adrian

Stefan Rybacki wrote:
[snip]
>
> Wie dir der Fehler schon sagt, ist $row ein array (sagt dir übrigens
> auch die Funktion mysql_fetch_array ;) ) und du versucht sie mit einem
> String zu vergleichen.
>
> 1. du willst bestimmt mysql_fetch_assoc
> 2. du dann willst $row['Adfess'] benutzen

yup. das wars! herzlichen Dank :)

Re: MySQL-Newbiefrage

am 27.06.2005 12:51:26 von Adrian

Ron Eggler @ work wrote:
> Stefan Rybacki wrote:
> [snip]
>>
>> Wie dir der Fehler schon sagt, ist $row ein array (sagt dir übrigens
>> auch die Funktion mysql_fetch_array ;) ) und du versucht sie mit
>> einem String zu vergleichen.
>>
>> 1. du willst bestimmt mysql_fetch_assoc
>> 2. du dann willst $row['Adfess'] benutzen
>
> yup. das wars! herzlichen Dank :)

Ich hänge gleich noch eine Frage an:
Wie lösche ich einen Eintrag indem ich eine Variable übergebe?
So hab' ichs versucht:
mysql_query("DELETE FROM spammail WHERE Address='".$email_address".' LIMIT
1");
funktionierte nicht: "Parse error: parse error in
/srv/www/htdocs/web2/html/php/nospam/pop.php on line 68"
was muss ich genau ändern? Danke!

Re: MySQL-Newbiefrage

am 27.06.2005 12:53:04 von do.not.REMOVETHAT

Ron Eggler @ work schrieb:

> mysql_query("DELETE FROM spammail WHERE Address='".$email_address".' LIMIT
> 1");

Muttu Anführungszeichen sortieren.

> Danke!

Bitte.

Re: MySQL-Newbiefrage

am 27.06.2005 12:54:34 von Fabian Schladitz

Ron Eggler @ work schrieb:
> Ich hänge gleich noch eine Frage an: Wie lösche ich einen Eintrag
> indem ich eine Variable übergebe? So hab' ichs versucht:=20
> mysql_query("DELETE FROM spammail WHERE Address=3D'".$email_address".'
> LIMIT 1"); funktionierte nicht: "Parse error: parse error in=20
> /srv/www/htdocs/web2/html/php/nospam/pop.php on line 68" was muss ich
> genau ändern? Danke!

1. Du musst PHP lernen
2. Du musst die Fehlermeldungen lesen
3. Du musst die Fehlermeldungen verstehen
4. Du musst das PHP manual lesen und verstehen
5. Du musst die FAQ lesen und verstehen

Wenn du damit durch bist, darfst du die Reihenfolge deiner Punkte,
Anführungszeichen und Hochkommata überdenken.

--=20
HTH,
Fabian

Re: MySQL-Newbiefrage

am 27.06.2005 13:00:35 von Adrian

Fabian Schladitz wrote:
> Ron Eggler @ work schrieb:
>> Ich hänge gleich noch eine Frage an: Wie lösche ich einen Eintrag
>> indem ich eine Variable übergebe? So hab' ichs versucht:
>> mysql_query("DELETE FROM spammail WHERE Address='".$email_address".'
>> LIMIT 1"); funktionierte nicht: "Parse error: parse error in
>> /srv/www/htdocs/web2/html/php/nospam/pop.php on line 68" was muss ich
>> genau ändern? Danke!
>
> 1. Du musst PHP lernen
> 2. Du musst die Fehlermeldungen lesen
> 3. Du musst die Fehlermeldungen verstehen
> 4. Du musst das PHP manual lesen und verstehen
> 5. Du musst die FAQ lesen und verstehen
>
> Wenn du damit durch bist, darfst du die Reihenfolge deiner Punkte,
> Anführungszeichen und Hochkommata überdenken.
yup, das hab' ich gesehen, aber jetzt bekomm' ich folgendes zurück:"Query
was empty"
mit dem code:
[Code]
{
$connection=mysql_connect(db_server,db_user,db_passwort);
mysql_select_db(db_name);

$query = mysql_query("DELETE FROM spammail WHERE
Address=\'".$email_address."\' LIMIT 1");

mysql_query($query) or die(mysql_error());
mysql_close($connection);
}
[/Code]

Re: MySQL-Newbiefrage

am 27.06.2005 13:17:23 von Fabian Schladitz

roN @ work schrieb:
> Fabian Schladitz wrote:
>=20
>>Ron Eggler @ work schrieb:
>>Wenn du damit durch bist, darfst du die Reihenfolge deiner Punkte,
>>Anführungszeichen und Hochkommata überdenken.
>=20
> yup, das hab' ich gesehen, aber jetzt bekomm' ich folgendes zurück:"Q=
uery
> was empty"

Du solltest zu Punkt eins zurückkehren und auch wirklich Punkt vier=20
beachten.

> mit dem code:
> [Code]
> {
> $connection=3Dmysql_connect(db_server,db_user,db_passwort);
> mysql_select_db(db_name);
>=20
> $query =3D mysql_query("DELETE FROM spammail WHERE
> Address=3D\'".$email_address."\' LIMIT 1");

Was ist das? Du weist der Variable $query den Rückgabewert einer=20
Funktion zu, welche das Query ausführt.

>=20
> mysql_query($query) or die(mysql_error());

Und hier nimmst du den Rückgabewert dieser Funktion und wirfst ihn=20
nochmals in die Funktion, welche eine Query ausführt.

Was soll das? BITTE BITTE ließ nach, was diese Funktionen tun, ehe du=20
sie verwendest. Es macht keinen Spaß deine Probleme zu beheben, welche =

auf Nicht-Verstehen und scheinbar Nachlässigkeit beruhen.

--=20
HTH,
Fabian

Re: MySQL-Newbiefrage

am 27.06.2005 13:18:56 von dev-null-use-reply-adress

roN @ work schrieb:
> Fabian Schladitz wrote:
>>
>> 1. Du musst PHP lernen
>> 2. Du musst die Fehlermeldungen lesen
>> 3. Du musst die Fehlermeldungen verstehen
>> 4. Du musst das PHP manual lesen und verstehen
>> 5. Du musst die FAQ lesen und verstehen
>>
>> Wenn du damit durch bist, darfst du die Reihenfolge deiner Punkte,
>> Anführungszeichen und Hochkommata überdenken.
> yup, das hab' ich gesehen,

Nein, hast Du scheinbar nicht. Bitte die Punkte 1 und 4 nochmal
beachten. Insbesondere dürfte Dich der Abschnitt über Strings
interessieren:
http://de.php.net/manual/de/language.types.string.php

aber jetzt bekomm' ich folgendes zurück:"Query
> was empty"

> $query = mysql_query("DELETE FROM spammail WHERE
> Address=\'".$email_address."\' LIMIT 1");

Das escaping der einfachen Anführungszeichen ist hier nicht nur
sinnfrei, sondern auch falsch. Heraus kommt folgender String, wenn
ich mal einen Wert für $email_address annehme:

DELETE FROM spammail WHERE Address=\'ron@example.org\' LIMIT 1

Deine vorherige Syntax war ja schon fast richtig. Du hattest
lediglich ein Anführungszeichen und einen Punkt vertauscht, was
Fabian Dir auch schon andeutete.

Gruß, JPM