PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : funktionen + MYSQL_QUERY



blodone
27-01-2003, 12:53
Hallo,
hab ein komisches problem:
wenn ich in nem prog ganz normal $result = MYSQL_QUERY("SELECT parameter FROM data");
while($zeile=MYSQL_FETCH_ROW($result))
{
print "bla";
}

eingebe tuts gut, nur wenn ich drumrum ne funktion:

function holedaten()
{
........
}

mache kommt:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in ....

mehlvogel
27-01-2003, 12:57
Lass dir mal den Fehler mit mysql_error() ausgeben.

blodone
27-01-2003, 13:09
1064: You have an error in your SQL syntax near '' at line 1

function getpara()
{
$result=MYSQL_QUERY("SELECT parameter FROM daten");
$para=MYSQL_FETCH_ROW($result);
echo mysql_errno() . ": " . mysql_error(). "\n";
}

Jana
27-01-2003, 13:22
Ich hab mich auch lange mit solchen Fehlern heraumgeplagt, bis ich
http://pear.php.net gefunden habe.

Da haben Profis meine Probleme schon gelöst.
Keine Sorgen mehr mit Hackern und eigenen Fehlern.
Schau dir speziell das DB-Paket an und
http://www-user.tu-chemnitz.de/~meal/php/peardoc/index.html

mehlvogel
27-01-2003, 13:30
Naja es ist egal ob man nun mysql_query(...) oder $db->query(...) übergibt - ich selbst bin von PEAR nicht so begeistert - generell ist vorsicht geraten sich auf PEAR zu verlassen, alleine deshalb, weil es net überallinstalliert ist.

Wenn man die funktion weg macht gehts dann? Der 100%ig gleiche Query?

blodone
27-01-2003, 13:37
wenn man die funktion drumrum wegmacht also nur
$result=MYSQL_QUERY("SELECT parameter FROM $usertablepara");
$para=MYSQL_FETCH_ROW($result);
echo mysql_errno() . ": " . mysql_error(). "\n";
tuts wunderbar.
kein fehler.

mehlvogel
27-01-2003, 13:43
da haben wirs auch schon: Die Variable ist schuld - in der Funktion selbst steht dise zunächst nicht zur Verfügung, man muss sie entweder mit Übergeben, oder per Global anbinden (und da hätte PEAR auch net geholfen).



// Funktion mit paramterübergabe
functionhole_daten($tabelle) {
$result = mysql_query("SELECT * FROM ".$tabelle);
/* .. */
}

// Aufruf
hole_daten("Tabellenname");


Per global:



function hole_daten() {
global $tabelle;
$result = mysql_query("SELECT * FROM ".$tabelle);
/* ... */
}

blodone
27-01-2003, 13:46
aha :D *freu*
danke

silvercross
28-01-2003, 22:03
nicht auf das return vergessen in der funktion.... *mit dem hab i lange gehangen*