Drehe noch durch: mysql_fetch_array()

tut_mav

Grünschnabel
hallo...

ich habe folgendes Problem, dass ich aber bis gester nicht hatte, darum confused es mich auch so :(
news.php
PHP:
switch($action) {  
default:  
require("var.inc.php");  	
$conn = @mysql_connect($dbserver,$dbuser,$dbpass) or DIE( "Keine Verbindung zum MYSQL-Server erstellbar !");  	
mysql_select_db($database) or DIE( "Keine Datenbank erreichbar!" );  	  
$sqlst = "SELECT * FROM $dbnews LEFT JOIN $dblogin ON news_autor = user_id LEFT JOIN $dbicon ON news_icon = icon_id LEFT JOIN $dbnewscomment ON news_id = comment_newsid ORDER BY news_date DESC limit $newslimit"; 
 $query = mysql_query($sqlst);  
while ($data = mysql_fetch_array($query)) {

var.inc.php
PHP:
	$dbserver 	= "localhost";  // Datenbankserveradresse
	$database	= "db_vs";  // Name der Datenbank
	$dbuser		= "root";			// Username des Datenbankbenutzers 
	$dbpass		= "";			// Passwort des Datenbankbenutzers

ergibt mir beim öffnen

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /opt/lampp/htdocs/versifft/news.php on line 59

warum geht dieser Befehl plötzlich in die Brüche?
 
warum kann ich dir so auch nicht sagen.

aber der fehler besagt nur, dass mysql_fetch_array mit der ressource die in
$query stehen sollte nichts anfangen kann, sprich das ein fehler im sql statement vorliegt.

daher würde ich mal folgende zeile vor deinem mysql_fetch_array() einbauen:

PHP:
 ( ! is_resource($query) ) ? ( die(mysql_error()) ) : NULL;

dann gibt dir das script wenigstens den fehler aus, was an deinem statement falsch ist.
 
So ich mich recht entsinne brauch mysql_query();
2 Argumente. Den Query und die DB Verbindungsid.

PHP:
$conn = @mysql_connect($dbserver,$dbuser,$dbpass) or DIE( "Keine Verbindung zum MYSQL-Server erstellbar !");      
mysql_select_db($database) or DIE( "Keine Datenbank erreichbar!" );        
$sqlst = "SELECT * FROM $dbnews LEFT JOIN $dblogin ON news_autor = user_id LEFT JOIN $dbicon ON news_icon = icon_id LEFT JOIN $dbnewscomment ON news_id = comment_newsid ORDER BY news_date DESC limit $newslimit"; 
 $query = mysql_query($sqlst,$conn);// hier einfügen


Nein das ist beer glaube ich auch nicht der Fehler
 
Zuletzt bearbeitet:
danke..

bekomme jetzt folgende Fehlermeldung beim öffnen der page

-> Can't create/write to file '/root/tmp/#sql_857_0.MYI' (Errcode: 13)
 
hmmm gute frage was das für ein mySQL fehler sein soll, dafür kenn ich mich mit mySQL zu wenig aus...mal im mysql Forum fragen?

@der Bär: wegen mysql_query, der linkidentifier (hier: $conn) ist optional und laut befehlreferenz wird, wenn kein linkidentifier angegeben wurde, der zuletzt geöffnete benutzt. gebe diesen eigentlich nie an, da ich in der Regel nur 1 Datenbankverbindung pro Skript benutze...
 
laut mysql.de bedeutet der Fehler, dass er kein Recht hat, in diesen Ordner zu schreiben.. was absoluter blödsinn ist.. ich starte den server als ROOT und somit hat er rechte..
 
Zuletzt bearbeitet:
Sieht nach einem Feher in der MySQL Software aus. Es könnte ein reparieren der Tabellen helfen. Wenn du PHPMyadmin verwendest kannst du das da machen.
 
Apropos Regeln... es gibt hier welche, die eingehalten werden sollen (Rechtschreibung, Groß-/Kleinschreibung etc.). Aber das ist momentan nicht mein Thema :).

tut_mav, ich wundere mich, warum MySQL in /root/tmp schreiben möchte und nicht in /tmp. Hast du da evtl. in einer Konfiguration einen falschen Pfad angegeben? In /root/tmp soll MySQL auch kein Zugriff haben, das ist also schon richtig.

Gruß,
matt
 
Zurück