PHP: mysql_fetch_array()

Hallo
Wenn ich zu hause meine php / sql seite anschaue geht alles...
Wenn ich diese dann aber auf dem Inet server probiere kommt folgender Fehler:

Code:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/kunden/cbn110/html/TIP/6g5h8d4n7.php on line 42

Die Datei:

PHP:
<?php
$host=\"localhost\";
$login=\"******\";
$pass=\"******\";
$datenbank=\"***** \";


function connect()
{
$connection = mysql_connect(\"$host\", \"********\", \"*******\");
$do = mysql_query(\"USE ********\");					
return \"ok\";
echo mysql_error ();
}


function addlink($download, $beschreibung, $homepage, $name)
{
$sql = 'INSERT INTO `programme` ( `klicks` , `download` , `beschreibung` , `homepage` , `name` ) VALUES ( \'0\', \''.\"$download\".'\', \''.\"$beschreibung\".'\', \''.\"$homepage\".'\', \''.\"$name\".'\' ); ';
$aktion = mysql_query (\"$sql\");
echo mysql_error ();
}


function update($klicks, $page)
{

$sql = 'UPDATE `programme` SET `klicks` = \''.\"$klicks\".'\' WHERE `download` = \''.\"$page\".'\' LIMIT 1 ';
$aktion = mysql_query(\"$sql\");
echo mysql_error();
}



function listlink($rang, $head)
{

$rang--;
$sql = 'SELECT * FROM `programme` ORDER BY `klicks` DESC LIMIT '.\"$rang\".', 300000';
$aktion = mysql_query(\"$sql\");

$list = mysql_fetch_array(\"$aktion\");            // Hier soll der Fehler sein...
return $list[\"$head\"];
echo mysql_error ();
}



?>

Den Fehler kann man auch unter: http://cbn110.comball.net/TIP/index.php?bg=zufall&button=programme anschauen.

Ich habe jetzt nach dem $aktion = mysql_query("$sql"); die Zeile echo mysql_error (); eingefügt..Ergebnis:
No Database Selected
Warum?
vor dem Aufruf der Seite wird connect(); aufgerufen.
Was kann ich machen?

--Ano
 
Ich hab zwar den Code nicht gelesen aber kann es daran liegen das die Datenbank leer ist? Das die Einträge nicht vorhanden sind? Das die Tabelle falsch angelegt ist?

Das sind so die standartfehler (die mir imma passieren :D )

Hoffe dir geholfen zu haben, mfg Brabax
 
Ja und Nein, ich weiss nicht warum, aber lokal habe ich meistens kein Prob bei einer leeren DB, aber online bekomme ich meistens einen Fehler, weil er per Abruf keine Daten findet, dementsprechend nix einordnen kann->> Fehler :)
 
Evtl. eine inkorrekte Datenabfrage? Also das du nach Arumenten fragst die die DB nicht vorweisen kann?

z.B. Where x = y ?

Oder das der Connect fehlschlägt?
 
Also der Fehler scheint eindeutig beim auswählen der DB zu sein:

You have an error in your SQL syntax near '******' at line 1


HAb das ganze nu mit
mysql_select_db ("*******");
gelöst..jetzt kommt nach der anweisung kein Fehler mehr..aber leider immernoch

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /usr/local/httpd/htdocs/kunden/cbn110/html/TIP/6g5h8d4n7.php on line 45

--Ano
 
Namdz,

also in dem Buch "PHP4 Grundlagen und Profiwissen" werden mysql_fetch_array() Befehle so gelöst:

mysql_fetch_array(mysql_query("SELECT ..."), MYSQL_ASSOC);

Auszug aus dem Buch: "..MYSQL_ASSOC ist eine Konstante, welche die Art des Arrays bestimmt.."

Also hänge mal MYSQL_ASSOC dran:

PHP:
$list = mysql_fetch_array(\"$aktion\", MYSQL_ASSOC);  
return $list[\"$head\"]; 
echo mysql_error (); 
}

Bei mir funzt es so ;)

so long, Pastor.
 
HAb das Problem gelöst:

PHP:
//$sql = 'SELECT * FROM `programme` ORDER BY `klicks` DESC LIMIT '.\"$rang\".', 300000';
//$aktion = mysql_query(\"$sql\");
echo mysql_error ();

$list = mysql_fetch_array(mysql_query(\"SELECT * FROM `programme` ORDER BY `klicks` DESC LIMIT $rang, 300000\"), MYSQL_ASSOC);

Jetzt gehts...warum auch immer ?(

Eine Frage noch:
Wo ist der unterschied zwischen " und ' ?
 
" " -> variable wird als wert ausgegeben
--
$blah = "1"

echo "$blah" -> Anzeige: 1
--

' ' -> variable wird als text ausgegeben

--
$blah = "1"

echo '$blah' -> Anzeige: $blah
--

Es geht jetzt, weil PHP nun weiß, um welche Art Wert es sich handelt (MYSQL_ASSOC).

pastor.
 
Original von Anonym001
und zwischen:

$bla="text";

und

$bla='text';

gibts keinen unterschied?


--Ano
Nicht direkt. Wenn du aber '%text soll gesund sein' schreibst, wird auch bei der ausgabe %text soll gesund sein ausgegeben - Wenn du hingegen "%text soll gesund sein" schreibst (und $text = "Atmen"; setzt), wird bei der ausgabe Atmen soll gesund sein ausgegeben!
 
Zurück
Oben