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