Problem ein Funktionsergebnis in Query richtig zu platzieren
Problem ein Funktionsergebnis in Query richtig zu platzieren
am 28.02.2005 14:49:49 von j_wenke
Hallo,
ich knabbere schon eine Weile dran rum:
Ich wollte ein Funktionsergebnis im WHERE-Teil
(ist eine Variable) für einer Query platzieren.
Wenn ich mir per echo diesen WHERE-String ausgeben lasse,
bleibt nun die Stelle wo das Ergebnis stehen
sollte leer. Das Ergebnis steht dafür schon vorher, direkt da,
wo ich in einer if-Anweisung den WHERE-String produziere.
Zwei (von x) erfolglose Versuche, das Ergebnis richtig zu setzen:
#########################################
echo "
------- if 1 array: -----------
";
if (@$pic != FALSE) {
$q = "SELECT feld, spalte FROM $table WHERE spalte LIKE
'%$string%'";
$tmp[0] = array(fillselect($q, 'feld', 'OR'));
$q2 = " feld LIKE ($tmp[0])"; }
echo "
------- if 2 funkt: -----------
";
if (@$pic != FALSE) {
$q = "SELECT feld, spalte FROM $table WHERE spalte LIKE
'%$string%'";
$q2 = " OR feld LIKE (";
$q2 .= fillselect($q, "feld", "OR");
$q2 .= ")"; }
Als Funktionsergebnis steht wie gesagt immer vorher im if-Teil:
'383' OR '384' OR '386'
und gefolgt dann von einer echo-Ausgabe von $q2:
1
OR feld LIKE (Array) = q2
2
OR feld LIKE () = q2
aussehen solls natürlich so:
OR feld LIKE ('383' OR '384' OR '386') = q2
probiert habe ich es auch in if 2 funkt:
$q2 .= "".return(fillselect($q, "feld", "OR"))."";
das ergibt so eine Fehler und führt anderes auch nicht zum Ziel ...
#########################################
Danke für Hilfe, Jörg
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 28.02.2005 14:57:25 von Niels Braczek
j wenke schrieb:
> und gefolgt dann von einer echo-Ausgabe von $q2:
> 1
> OR feld LIKE (Array) = q2
> 2
> OR feld LIKE () = q2
>
> aussehen solls natürlich so:
> OR feld LIKE ('383' OR '384' OR '386') = q2
Dein Konstrukt sieht ziemlich kaputt aus. Versuch's mal hiermit:
$aIds = array(383, 384, 386);
$sSql = "SELECT feld, spalte
FROM %s
WHERE spalte LIKE '%%%s%%'
OR feld IN (%s)";
$sSql = sprintf($sSql, $table,
mysql_real_escape_string($string),
implode(',', $aIds);
mysql_query($sSql) or die($sSql.'
'.mysql_error());
MfG
Niels
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 28.02.2005 19:15:59 von j_wenke
Hallo Niels,
"gute" Idee ;-)
Danke!
Mit implode und sprintf ... schauts einfacher als die Funktion aus.
Passt aber so nicht ganz:
Aus einem Formular kommen div. Werte, die per if?s
verarbeitet werden. Hier dienen sie dazu,
mit einer Query eine Variable aus IDs zu erstellen.
Die Variable soll dann den WHERE-Teil einer
später folgenden Query ergänzen bzw. vervollständigen.
Mein Problem ist:
Wie bekomme ich ein array aus einer Query gefüllt?
Wie packe ich ein Query-Ergebnis in ein array?
(ist wohl ein Standard, fällt mir aber nicht ein oder hab ein Blockade ...).
Also eine Variable $var = array(383, 384, 386);
soll gefüllt werden, damit ich sie in der anderen
Query nutzen kann.
Mit einer function klappt das ja leider nicht ... ?
Gruß, Jörg
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 28.02.2005 22:21:17 von Niels Braczek
j wenke schrieb:
> Mein Problem ist:
> Wie bekomme ich ein array aus einer Query gefüllt?
> Wie packe ich ein Query-Ergebnis in ein array?
> (ist wohl ein Standard, fällt mir aber nicht ein oder hab ein Blockade
> ...).
Das sind tatsächlich Basics.
$aIds = array();
$sSql = "SELECT id ...";
$rResult = mysql_query($sSql) or die($sSql.'
'.mysql_error());
while ($aRow = mysql_fetch_assoc($rResult)) {
$aIds[] = $aRow['id'];
}
$sIds = implode(',', $aIds);
MfG
Niels
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 01.03.2005 02:54:04 von j_wenke
Jo, Danke. Es klappt.
Das Gesamt-SELECT hakte noch, funktioniert
jetzt in/mit der Form:
(id ='388' OR id ='389' OR id ='390')
Es stellt sich jetzt allerdings ein Blätter-Problem
(schlechtes / kein Konzept ...) :-(
Das liegt scheinbar an diesen if-Anweisungen für die
zwischengeschobenen WHERE-Teile. Die erste Seite wird
im SELECT mit LIMIT 0,9 gezeigt, die zweite
mit LIMIT 9,9 - das ist ok, - allerdings die
zweite ohne Inhalt.
> Das sind tatsächlich Basics.
leider fallen die einem nicht in den Schoß.
Wohl eine Art "Verdauerungproblem".
Eigentlich alles ganz logisch beim Lesen,
aber wenn man dann selbst drin steht ...
(Es ist immer wieder seltsam, wie vorhandenes Wissen vergessen
oder mißdeutet wird. Klausnitzer, Bernhard)
Da frage ich mich doch manchmal, was so
sechs - zehn Seiten (php-coder) Code von euch
kosten würden.
Meiner ist ja nun nahezu unbezahlbar geworden ... ;-)
Vielleicht fahre ich da "günstiger" ... :-()
Aber - es ist doch auch schön und eben auch eine Art "freier"
wenn man selbst "basteln" (entwerfen konstruieren) kann.
Danke nochmal, Gruß, Jörg
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 01.03.2005 09:21:25 von dev-null-use-reply-adress
j wenke schrieb:
> Da frage ich mich doch manchmal, was so
> sechs - zehn Seiten (php-coder) Code von euch
> kosten würden.
42
CNR, JPM
--
A: Weil es dem natürlichen Lesefluß zuwider läuft.
F: Warum ist das denn so schlimm?
A: Eigener Text oben, Zitat unten.
F: Was nervt bei E-Mail am meisten?
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 01.03.2005 11:45:25 von j_wenke
Jens Peter Möller schrieb:
>...
> 42
:-) cool
Ja - war nur ein Gedanke.
Ich hätte da höchstens eine "html-Ahnung", aber
ist anderes Thema und andere Überschrift.
ciao, Jörg
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 01.03.2005 12:58:08 von dev-null-use-reply-adress
j wenke schrieb:
> Jens Peter Möller schrieb:
>>...
>> 42
> :-) cool
Ja, nicht ...? ;-)
> Ja - war nur ein Gedanke.
Meine Antwort war zum Teil auch ernst gemeint. Was sind denn 10 Seiten
Code? 10 Seiten ausgedruckt mit Arial 4 Punkt auf A0? 10
Bildschirmseiten, im Editor X, mit Auflösung Y und Schriftgröße Z?
OK, Scherz beseite. Ich versuche eine ernste Antwort:
Je nach Aufwand, Komplexität, Zeitbedarf und Qualifikation des
Programmierers, kannst Du bei 6-10 "Seiten" Code, grob geschätzt
mit 100 - 1000 EUR rechnen.
Mift, also ist die Antwort doch wieder nährungsweise 42. ;-)
Gruß, JPM
--
A: Weil es dem natürlichen Lesefluß zuwider läuft.
F: Warum ist das denn so schlimm?
A: Eigener Text oben, Zitat unten.
F: Was nervt bei E-Mail am meisten?
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 01.03.2005 16:27:12 von j_wenke
Jens Peter Möller schrieb:
> ..
> Je nach Aufwand, Komplexität, Zeitbedarf und Qualifikation des
> Programmierers, kannst Du bei 6-10 "Seiten" Code, grob geschätzt
> mit 100 - 1000 EUR rechnen.
>
> Mift, also ist die Antwort doch wieder nährungsweise 42. ;-)
ist ja nicht annähernd 100 - und ca. 42,-/h meinst du ja auch nicht?
Oder "allein" für obigen Absatz von Niels? :-)
Angesichts bisheriger Erfahrungen würde ich meine 6-10 p
bezüglich Komplexität mal im oberen Bereich des unteren Drittels einordnen:
(bisher) 3 Tabellen plus ein paar Verknüpfungs- und ggf. Kategorietabellen,
kleine php-Rechnerei, JavaScript-Einschub, css-"Animation" und die Abfragen
natürlich und eine Art Formulareditor. Alles tab.-mäßig
erweiterungsfähig ( ... )
(dazu kommt dann NOCH etwas Netz - sprich Sicherheit, LogIn-Sachen, ..).
Dafür 43 würde mich schon überraschen. :-)
Sollte man sich aber "zufälligerweise", sagen wir in Osteuropa oder
Indien aufhalten,
sind 42 vielleicht sogar wieder "angemessener" oder nachvollziehbarer.
Aber interessant. Gibt Anhaltspunkte.
Grüße, Jörg
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 01.03.2005 17:06:02 von dev-null-use-reply-adress
j wenke schrieb:
> Jens Peter Möller schrieb:
>> ..
>> Je nach Aufwand, Komplexität, Zeitbedarf und Qualifikation des
>> Programmierers, kannst Du bei 6-10 "Seiten" Code, grob geschätzt
>> mit 100 - 1000 EUR rechnen.
>>
>> Mift, also ist die Antwort doch wieder nährungsweise 42. ;-)
> ist ja nicht annähernd 100 - und ca. 42,-/h meinst du ja auch nicht?
Richtig, ich meinte nicht 42 EUR/h, sondern einfach nur 42.
Guggst Du z.B. hier: http://www.42.org/42.html
;-) JPM
--
A: Weil es dem natürlichen Lesefluß zuwider läuft.
F: Warum ist das denn so schlimm?
A: Eigener Text oben, Zitat unten.
F: Was nervt bei E-Mail am meisten?
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 02.03.2005 15:09:24 von j_wenke
nette Seite!
ich dachte Domains müssen wenigstens 3-stellig sein?
bezüglich einer 42 muß man halt sehen.
Gruß, ciao, Jörg
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 02.03.2005 20:55:46 von Michael Fesser
.oO(j wenke)
>nette Seite!
>ich dachte Domains müssen wenigstens 3-stellig sein?
Bei der hiesigen DeNIC (verantwortlich für *.de) ja, i.A. muß das aber
nicht so sein.
Micha
Re: Problem ein Funktionsergebnis in Query richtig zu platzieren
am 03.03.2005 01:09:34 von Christoph Hermann
Michael Fesser schrieb:
Moin,
>>nette Seite!
>>ich dachte Domains müssen wenigstens 3-stellig sein?
>
> Bei der hiesigen DeNIC (verantwortlich für *.de) ja, i.A. muß das aber
> nicht so sein.
Das war nicht immer so. Früher gab es auch zweistellige de-Domains und die
existieren teilweise heute noch: db.de z.B.
Christoph