php variable an access abfrage weitergeben

schiieech

Mitglied
hoi!

folgendes prob:
ich habe eine access-db mit ner tabelle "A_PZ". diese frage ich mit folgender abfrage "infos" ab:

SELECT DISTINCT A_PZ.Geschlecht AS wwwgeschlecht
FROM A_PZ
WHERE NAME=?;

das fragezeichen ist gleich mein problem...

dann habe ich eine php-datei, die ich wie folgt aufrufe:

persinfo.php?pname=Ritter&pvorname=Franz

und mit folgender mysql-abfrage, die ihre daten aus der access-abfrage bezieht:

$sql_anweisung = "SELECT * FROM infos";


jetzt soll also "geschlecht" herausgefunden werden. die übergabe der variablen "pname" und "pvorname" erfolgt ja über die url. doch was muss ich in der access-abfrage bei dem roten fragezeichen angeben, damit die abfrage weiss, sie soll sich nur auf diesen einen namen beziehen?

wenn ich in der access abfrage schreibe WHERE name=$pname bringt mir access ne fehlermeldung und ich kann´s nicht abspeichern :(

plz hlp, s.
 
Ich versteh Deine Frage irgendwie nicht so richtig... :rolleyes:
Was willst Du denn mit dem WHERE überprüfen bzw. welcher Datentyp steht in dem Feld? Bei Strings musst Du den Wert in Hochkommata einfassen:
Code:
SELECT DISTINCT A_PZ.Geschlecht AS wwwgeschlecht FROM A_PZ WHERE NAME = '$pname';
Das ist aber in jedem Datenbanksystem so. ;)
 
Original geschrieben von asphyxia
Ich versteh Deine Frage irgendwie nicht so richtig... :rolleyes:
Was willst Du denn mit dem WHERE überprüfen bzw. welcher Datentyp steht in dem Feld? Bei Strings musst Du den Wert in Hochkommata einfassen:
Code:
SELECT DISTINCT A_PZ.Geschlecht AS wwwgeschlecht FROM A_PZ WHERE NAME = '$pname';

Das ist aber in jedem Datenbanksystem so. ;)
ja, dann sucht access aber nach dem wert "$pname". dieser existiert aber nicht. ist ja nur ne variable. und die ändert sich durch die url eingabe. d.h. access soll mir werte ausgeben, die sich aber auf das WHERE beziehen. und dieses where ist halt variabel und die variable bekommt access aber über php zugewiesen. das where ist ein string.

verstehst du jetzt, wie ich´s mein? ich weiss, is etwas schwer zu verstehen, aber besser kann ich´s jetz auch nich erklären :(

plz hlp, s.
 
okay, hab noch ne andere möglichkeit probiert, die auch gehen würde:
ich hab jetzt

$sql_anweisung = "SELECT * FROM infos WHERE name='ritter'";

also ohne variable, nur mal so zum testen. da kommt aber nur dieser Fehler:

Warning: SQL error: [Microsoft][ODBC Microsoft Access Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben., SQL state 07001 in SQLExecDirect in c:\foxserv\www\dbtest\main\patientinfo.php on line 10
Fehler bei odbc_exec()

was mach ich da falsch?


achso, das ganze skript mal noch hier:


Code:
<?php 

    $conn = odbc_connect( 'labor' , '', '' );
    if (!$conn) { Fehlerhandling("connect",$conn); } 
 
$sql_anweisung = "SELECT * FROM infos WHERE name='ritter'";
    $cur = odbc_exec($conn,$sql_anweisung); 
    if (!$cur) { Fehlerhandling("exec",$conn); } 

	function Fehlerhandling($id,$conn ) {
	if ($id == "connect") 
		{ echo "Error in odbc_connect \n";}
	if ($id == "exec")    
		{ echo "Fehler bei odbc_exec() \n";}
    odbc_close($conn);
    exit(); 
} 
?>


s.
 

Neue Beiträge

Zurück