werte filtern
marc
- php
hi ich möchte nach einer sql abfrage die werte erneut filtern und zwar nach der row pn_language
bisher sieht die source so aus
$sql = "SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_ihome = 0 ORDER BY pn_sid DESC";
$result = $dbconn->SelectLimit($sql,$headline_limit);
ich brauche aber nur diejenigen die in der pn_language 'deu' stehen haben. zuerst habe ich
SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_language = 'deu' AND WHERE pn_ihome = 0 ORDER BY pn_sid DESC
ausprobiert. produziert aber nur einen mysql error anschliessend auch die variante mit like
jetzt frage ich mich ob ich vielleicht nachträglich noch nach deu filtern kann z.b.
$sql = "SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_ihome = 0 ORDER BY pn_sid DESC";
$filter_sql = UND HIER WIRD DANN SQL NACH DEU GEFILTERT, ABER KEINE AHNUNG WIE
$result = $dbconn->SelectLimit($filter_sql,$headline_limit);
ich habe schon gesucht wie hund aber bisher nix gefunden
vielen dank im vorraus
marc
Hi Marc,
SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_language = 'deu' AND WHERE pn_ihome = 0 ORDER BY pn_sid DESC
in diesem Statement liegt der Fehler im erneuten WHERE
So wäre es richtig:
SELECT a, b FROM tablename WHERE c = 'deu' AND d = 0 ORDER BY...
Gruß
annA
hi
SELECT a, b FROM tablename WHERE c = 'deu' AND d = 0 ORDER BY...
habe ich auch schon hinter mir
SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_language = "deu" AND pn_ihome = 0 ORDER BY pn_sid DESC
fehlermeldung kommt prompt
Hi,
SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_language = "deu" AND pn_ihome = 0 ORDER BY pn_sid DESC
Schreibe statt
WHERE pn_language = "deu" AND pn_ihome = 0...
einfach mal
WHERE pn_language = 'deu' AND pn_ihome = '0'...
Gruß,
small-step
Hi small-step,
WHERE pn_language = 'deu' AND pn_ihome = '0'...
pn_ihome ist vom Typ int (oder tinyint, das habe ich gerade
vergesssen :o) und sollte AFAIK nicht in Hochkommata geschrieben
werden
Gruß
annA
Hi,
WHERE pn_language = 'deu' AND pn_ihome = '0'...
pn_ihome ist vom Typ int (oder tinyint, das habe ich gerade
vergesssen :o) und sollte AFAIK nicht in Hochkommata geschrieben
werden
gut, wie auch immmer, du solltest innerhalb einer SQL-Anweisung lediglich Anführungszeichen verwenden wenn du Variablen einfügst, also z.B. WHERE pn_language = '".$deu."', da die Anweisung hier unterbrochen wird. Ich denke das ist das Problem, kann das sein?
Gruß,
small-step
also z.B. WHERE pn_language = '".$deu."', da die Anweisung hier unterbrochen wird. Ich denke das ist das Problem, kann das sein?
? ne ich habe hier doch kein php sondern mysql befehl
wenn ich das als php haben wollte dann wäre das bei einer ausgabe mit echo richtig aber ich mache hier eine abfrage von festen werten $deu ist ja keine variable sondern ein wert der drin steht.
$sql = "SELECT * FROM bla bla....";
oder habe ich dich missverstanden?
Hi,
$sql = "SELECT * FROM bla bla....";
oder habe ich dich missverstanden?
ja, hast du :-)
Wie du schon geschrieben hast, du schreibst die Anweisung folgendermaßen:
$sql = "SELECT * FROM bla bla...";
in deiner Anweisung steht jetzt aber
$sql = "SELECT * ... WHERE bla = "deu" AND...".
Verstehst du was ich sagen möchte? Die Anweisung startet mit einem Anführungszeichen und endet auch wieder damit. Du kannst nicht einfach zwischendrin ein Anführungszeichen einsetzen.
Gruß,
small-step
hi
Verstehst du was ich sagen möchte? Die Anweisung startet mit einem Anführungszeichen und endet auch wieder damit. Du kannst nicht einfach zwischendrin ein Anführungszeichen einsetzen.
ja das ist mir schon klar, aber das habe ich auch nicht gemacht, das war nur ein versuch
nun funzt es und das problem ist gelöst
$sql = "SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM nuke_stories WHERE pn_language = 'deu' AND pn_ihome = '0' ORDER BY pn_sid DESC ";
hi
vergesssen :o) und sollte AFAIK nicht in Hochkommata geschrieben
was ist AFAIK?
hi
danke für die antwort
WHERE pn_language = "deu" AND pn_ihome = 0...
einfach mal
WHERE pn_language = 'deu' AND pn_ihome = '0'...
habe ich auch schon probiert :-) funktioniert auch nicht
Hi Marc,
ich brauche aber nur diejenigen die in der pn_language 'deu' stehen haben. zuerst habe ich
SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_language = 'deu' AND WHERE pn_ihome = 0 ORDER BY pn_sid DESC
ausprobiert. produziert aber nur einen mysql error
welchen?
Ist da nicht ein WHERE zu viel, die Verknüpfungen nach einem Where werden nur noch mit AND oder OR gestaltet, das Where ist nur einmal von Nöten.
ciao
romy
ausprobiert. produziert aber nur einen mysql error
welchen?
You have an error in your SQL syntax near '[stories] WHERE pn_language = "deu" AND pn_ihome = 0 ORDER BY pn_sid DESC LIM' at line 1
Ist da nicht ein WHERE zu viel, die Verknüpfungen nach einem Where werden nur noch mit AND oder OR gestaltet, das Where ist nur einmal von Nöten.
ja ich habe auch schon
SELECT pn_sid, pn_title, pn_ihome, pn_hometext, pn_language FROM $pntable[stories] WHERE pn_language = "deu" AND pn_ihome = 0 ORDER BY pn_sid DESC
probiert, aber das produziert den oberen error
pn_language ist varchar
pn_ihome ist tinyint
Hi,
You have an error in your SQL syntax near '[stories] WHERE pn_language = "deu" AND pn_ihome = 0 ORDER BY pn_sid DESC LIM' at line 1
dann sagt er Dir doch womit er nicht klarkommt.
nämlich mit Deinem Tabellenname, wie kommst Du denn auf den Ausdruck mit den eckigen Klammmern?
ciao
romy