• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Query ausgeben

Status
Für weitere Antworten geschlossen.

raphaelf

Mitglied
Hallo HTML Team,

ich versuche ein Ergebnis auszugeben, doch ich erhalte folgende Meldung:
Resource id #37

Code:
$abfrage = mysql_query("SELECT customers_lastname FROM customers");
define('TEXT_MAIN', $abfrage);

Sieht jemand das Problem? Starte ich diese Abfrage direkt am phpAdmin so funktioniert es. Da ich nur ein Datensatz habe, sollte ich einen Nachnamen sehen..
Das funktioniert: define('TEXT_MAIN', 'Hallo Welt');

Bitte helfen :=(
 
Was da geschieht ist völlig normal. Ich weiß ja nicht, wo du das mit dem define() her hat, ab das ist totaler Quatsch. Du willst doch nicht das Ergebnis (die Resource) als Konstante haben. Besondert, da diese Abfrage wenig konstant ist.

So wie bei den Beispielen und nicht anders: PHP: mysql_fetch_array - Manual
 
Hallo,

danke erstmal für die Antwort.

Ich habe einen Script von OSCommerce downloaded und versuche einige anpassungen zu machen. OSCommerce ist ein OnlineSHop und wurde duch viele Entwickler erstellt. Nun steht es zur Verfügung.

Nun zum Problem.

Ich habe das getestet. Doch ohne erfolg.

Kannst du helfen?

Code:
[SIZE=2]$abfrage = mysql_query("SELECT customers_lastname FROM customers where customers_firstname='John'");[/SIZE]
[SIZE=2]$ergebnis = mysql_query($abfrage);[/SIZE]
[SIZE=2]$datensatz = mysql_fetch_assoc($ergebnis);[/SIZE]
[SIZE=2]define('TEXT_MAIN',$datensatz);[/SIZE]

Fehler:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\Program Files\xampp\htdocs\catalog\includes\languages\german\index.php on line 14
 
[] bedeutet, dass der Parameter optional ist. Auch wenn es sich empfiehlt diese zu benutzen.

Es gibt sicher einen Fehler in der Query, weshalb das Ergebnis keine gültiges SQL-Ergebnis (Ressource) ist. Einfach mal mysql_error() überprüfen und ob die Verbindung steht.
 
Hallo,

es gibt die Datei database.php:
Code:
[SIZE=2]function tep_db_connect($server = DB_SERVER, $username = DB_SERVER_USERNAME, $password = DB_SERVER_PASSWORD, $database = DB_DATABASE, $link = 'db_link') {
global $$link;
if (USE_PCONNECT == 'true') {
$$link = mysql_pconnect($server, $username, $password);
} else {
$$link = mysql_connect($server, $username, $password);
}
if ($$link) mysql_select_db($database);
return $$link;
}
function tep_db_close($link = 'db_link') {
global $$link;
return mysql_close($$link);
}
function tep_db_error($query, $errno, $error) { 
die('<font color="#000000"><b>' . $errno . ' - ' . $error . '<br><br>' . $query . '<br><br><small><font color="#ff0000">[TEP STOP]</font></small><br><br></b></font>');
}[/SIZE]

Und in die Datei index.php, versuche ich einen Wert aus der Datenbank anzuzeigen und schaffe es nicht. Ich habe so getestet:

index.php
Code:
[SIZE=2]$abfrage = mysql_query("SELECT customers_lastname FROM customers where customers_firstname='John'", $link);
define('TEXT_MAIN',$abfrage);
[/SIZE]

Doch ich erhalte jetzt die Fehlermeldung:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
 
Hallo,

doch es ist eine Verbindung schon da. Ich kann ja alle andere Werte aus der Datenbank sehen.


So wie ich den Script verstanden habe wird die Verbindung über die Datei database.php erstellt.

Ich möchte nur eine Abfrage machen zur bestehende Verbindung und das Ergebniss in die Datei index.php anzeigen.

Doch ich weiss nicht wie und erhalte diese Fehlermeldungen.

Ich meine, wenn eine Verbindung schon da ist, was müsste ich in die Datei index.php alles angeben und wie?
 
Wenn du nur 1 MySQL-Verbindung hast genügt es eigentlich den letzten Parameter von mysql_query() wegzulassen. Also:

Code:
[SIZE=2]$abfrage = mysql_query("SELECT customers_lastname FROM customers where customers_firstname='John'");[/SIZE]


Siehe auch: PHP: mysql_query - Manual

EDIT: Dass es in deinem Fall nicht geht liegt daran, dass du in der php-Datei mit der Datenbankverbindung diese in $$link speicherst, es müsste aber $link heißen.
 
Hallo,

leider geht es nicht.
Code:
[SIZE=2]$abfrage = mysql_query("SELECT customers_lastname FROM customers where customers_firstname='John'");
define('TEXT_MAIN',$abfrage);
[/SIZE]

Fehler: Resource id #39
 
DAS IST KEIN FEHLER. Du musst das Ergebnis mit mysql_fetch_array() verarbeiten! Eine Konstante hat dort nichts zu suchen!
 
Hallo,

meinst du so:
Code:
$ergebnis = mysql_query("SELECT customers_lastname FROM customers where customers_firstname='John'");
$row = mysql_fetch_array($ergebnis);
$lastname = $row['customers_lastname'];
define('TEXT_MAIN',$lastname);

Ich bekomme zwar jetzt die oben erwähnte Fehler nicht mehr sonders nichts, also kein wert.

Und so erhalte ich den Wert "TEXT_MAIN" ausgegeben:
Code:
$ergebnis = mysql_query("SELECT customers_lastname FROM customers where customers_firstname='John'");
while($row = mysql_fetch_array($ergebnis))
{
   define('TEXT_MAIN', $row['customers_lastname']);
}

Was mache ich falsch?
 
Zuletzt bearbeitet:
Konstanten werden einmalig definiert.

Schau dir an, ob mysql_error() einen Fehler liefert und lass dir mit var_dump() das Array ausgeben.
 
und bedenkst du überhaupt das du auch mehrere customer mit dem selben vornamen haben kannst und du dann manchmal den falschen nachnamen bekommst? ^^
 
Hallo!!

vielen dank an alle!! Der script oben den ich geschickt habe funktioniert. die db war plötzlich leer :=(

ja danke für den Tipp, diese Abfrage ist nur ein test.


VIELEN DANK AN ALEE!!!!! ;Jump
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben