php und postgresql; übergabe einer variable

meinst du vielleicht pg_execute?

http://de3.php.net/manual/de/function.pg-execute.php

cu tb.

$sql = “SELECT ov_unt_bez, ov_unt_unt_nr From prod.t_ov_unternehmen Where ov_unt_bez = ‘$test’ order by ov_unt_bez”;

ich denke mal du meinst pg_query(), zumindest stimmt dann die parameter anzahl.

Crypi

hab ich probiert, fkt. auch nicht!

pg_query auch probiert, auch nicht. bekomme immer wieder die fehlermeldung.

naja würde ja scho helfen wenn du die meldung mal postest :wink:

cu tb.

spalte = ’ … ’

ich würd die tüdelchen mal probieren.
und die fehlermeldung posten…

Crypi

[quote=“Xandrian”]naja würde ja scho helfen wenn du die meldung mal postest ]

ist ja in dem sinne keine fehlermeldung, sondern die meldung aus dem script,
$res = @pg_exec($conn, $sql) or die (“Konnte die Anfrage nicht ausführen”);

für mich heißt das es kann keine abfrage mit dem wert der variablen durchgeführt werden. ich habe aber einen wert genommen, der 100%ig in der tabelle vorhanden ist. außerdem funktioniert das auslesen der tabelle, wenn ich mit: “select * from prod.t_ov_unternehmen”; auslese.
krieg ich nicht auf die reihe. :frowning:

Schalte im PHP den Debug-Mode an bzw den Schalter, das Errors ausgegeben werden und entferne das “die”. Dann bekommst du eine anständige Fehlermeldung. Das was du generierst ist zwar schon, gibt dir aber genau keinen Hinweis auf die Fehlerquelle.

und nimm das verdammte @ vor exec weg, was auch immer exec ist, das unterdrückt die fehlerausgabe!!!


Crypi

habe ich gemacht, das script sieht jetzt so aus:

// Die Tabelle … auslesen
$test = $_POST[‘Name’]]).’
">‘.$zeile[“ov_unt_bez”].’‘.$zeile[“ov_unt_kurz”].’‘.$zeile[“ov_unt_unt_nr”].’‘.$zeile[“ov_unt_system”].’‘.$zeile[“ov_unt_bugrp”].’‘.$zeile[“ov_unt_hinweis”].’‘.$zeile[“ov_unt_aktiv”].’';
}
echo ‘’;
echo unten();
?>

und folgende fehlermeldung:

Warning: pg_exec(): Query failed: ERROR: column “izb” does not exist . in /usr/local/apache2/htdocs/roadrunner/ausgabe.php on line 40
Konnte die Anfrage nicht ausführen

naja dann schau dir halt mal die ausgabe.php an… steht ja dort was im nicht gefällt…

cu tb.

war deine eingabe izb?

er sagt das es die spalte nicht gibt, da du die aber gar nicht mit selectest…


nimm mal die where-bedingung raus und probiers ohne.

und probier wirklich mal

$result=pg_query(...);
while($row=pg_fetch_array($result))
{
echo $row[...];
}

machts übersichtlicher
Crypi

:stuck_out_tongue: :stuck_out_tongue:
problem geklärt, die zeile muß so aussehen:

sql = “SELECT ov_unt_bez, ov_unt_unt_nr From prod.t_ov_unternehmen Where ov_unt_bez = (‘$test’)”;

und schon klappt´s mit dem nachbarn. es funktioniert, ich bin glücklich. vielen dank für die ratschläge.

andré s.

das wundert mich doch sehr.

naja wenns so funktioniert.

Crypi

kann ja auch nichts dafür, er liest die tabelle so aus wie ich es vorgegeben habe. :roll:

andré s.

hallo,

nachdem ich das eine problem gelöst habe stellt sich natürlich das nächste. wie bekomme ich es hin zwei verschiedene Felder zu unterschiedlichen zeiten abzufragen. irgendwie muß das doch durch eine und/ oder beziehung laufen. hat jemand eine idee?

andré s.

<?php /* ausgabe.php */ include("road_verb.php"); ?>

[img]bilder/roadrunner.bmp[/img]

**roadrunners ergebnis: **

<?php

// falls ein Fehler aufgetreten ist, soll eine Meldung
// in einer Tabellenzeile ausgegeben werden
if ($msg) {
echo ‘<td bgcolor="#FFCC33>Fehler: ‘.$msg.’’;
}
else {
}
?>

</table \ \ \ \ <?php // Die Tabelle ...... auslesen $NAME = $_GET['Name']; $OE = $_GET['OE']; $TelNr = $_GET['TelNr']; $Stichwort = $_GET['Stichwort'];

//$test = $_GET[‘test’];
echo $NAME;
echo $OE;
//echo $TelNr;
//echo $Stichwort;

$sql1 = “select ov_unt_bez, ov_oe_nr, ov_unt_kurz, ov_oe_bez, ov_oeikomwe_kurz, ov_oeikomwe_hinweis, ov_oeikomwe_servicezeit, ov_oeikomwe_vorwahl, ov_oeikomwe_ruf from prod.t_ov_unternehmen, prod.t_ov_oe, prod.t_ov_oe_i_kommunikation_werte where ov_unt_id = ov_oe_ov_unt_id and ov_oe_ov_unt_id = ov_oeikomwe_ov_unt_id and ov_oe_id = ov_oeikomwe_ov_oe_id and ov_oe_nr = ‘$OE’ order by ov_oe_nr”;

$sql = “select ov_unt_bez, ov_unt_kurz, ov_oe_bez, pe_pe_nachname, pe_pe_vorname, ov_oeikomwe_kurz, ov_oeikomwe_vorwahl, ov_oeikomwe_ruf, ov_oeikomwe_servicezeit, ov_oeikomwe_hinweis, ov_oeikomwe_privat from prod.v_ov_kommunikation_werte
where lower(pe_pe_nachname) like lower(’%$NAME%’)”;

$res = @pg_exec ($conn, $sql) or die (“Konnte die Anfrage nicht ausfhren”);
$rows = pg_num_rows($res);
// Die Anzahl der Datenstze ermitteln
for ($i=0; $i<$rows; $i++)
{
// fr jede Zeile der Ergebnismenge eine Tabellenzeile schreiben
$zeile = pg_fetch_array($res, $i);
//$zeile = pg_num_fields($res, $i);
echo

'; } \ \ echo '

Firma

OE

OE-Bezeichnung

Name

Vorname

Vorwahl

Tel-Nr.

Bereitschaftsnr.

Servicezeit

Sonstiges

’.($zeile[“ov_unt_kurz”]).’ '.$zeile["ov_oe_nr"].' '.$zeile["ov_oe_bez"].' '.$zeile["pe_pe_nachname"].' '.$zeile["pe_pe_vorname"].' '.$zeile["ov_oeikomwe_vorwahl"].' '.$zeile["ov_oeikomwe_ruf"].' '.$zeile["ov_oeikomwe_servicezeit"].' '.$zeile["ov_oeikomwe_hinweis"].' '.$zeile["ov_oeikomwe_privat"].'
'; echo unten(); ?>

wie meinst du das mit “zu unterschiedlichen zeiten abfragen”? gib mal ein beispiel bitte.


gibts in dem code den du gepostet hast relevante stellen?

Crypi

ok, ich versuche es noch mal anders zu erklären.
ich habe ein formular mit vier feldern (name, oe, tel-nr. und stichwort). daraus enstehen vier variablen die mit get übergeben werden.

die auwertung soll in dem script erfolgen, welches ich in meinem letzten posting gepostet habe.

jetzt mein problem; die auswertung.
wie kann ich das formular auswerten, wenn z.b. in feld “oe” und “name” ein wert steht, oder in allen vier feldern werte stehen. zusammengefasst, egal in welchem feld etwas steht oder nicht, soll erkannt werden und dementsprechend ausgegben werden.

vergiss den satz “zu unterschiedlichen zeiten”, war schwachsinn. ich hoffe, ich habe mich jetzt verständlich ausgedrückt. vielen dank im voraus!

andré s.

sry ich versteh deinproblem noch immer net. vielleicht solltest du dir die php funktion empty und isset mal anschauen. die auswertung musst du trotzdem selber programmieren und ggf was anzeigen lassen. von selbst macht dir das system nichts :wink:

cu tb.

meinst du sowas:

SELECT * from tabelle
where
 name ~~* '%$_GET[name]%'
OR
 oe ~~* '%$_GET[oe]%'
OR
 tel_nr ~~*'$_GET[tel_nr]%'
OR
 stichwort ~~* $_GET[stichwort]%'

das sucht jetzt nach allem in der datenbank, das überstimmungen mit mindestens einem deiner formular-felder hat.

oder meintst du das dere inhalt aller vier frmular-felder in allen vier feldern der DB sucht?

also sowas :

SELECT * from
tabelle
WHERE
 name ~~* '%$_GET[name]%$_GET[oe]%...%'
OR
 oe ~~* '%$_GET[name]%$_GET[oe]%...%'
OR
...

Crypi