PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql_fetch_object(): supplied argument is not a valid MySQL result resource



fanrpg
13.07.2005, 09:17
schon wieder ein Problem und ich weiss nicht warum <_<


<?php
$catsql = "SELECT * FROM `cat` ORDER BY `ID` DESC";
$catquery = mysql_query($catsql);
while($catrow = mysql_fetch_object($catquery))
{
$catname = $catrow->name;
$catdesc = $catrow->desc;
$caturl = $_GET['download'] == "$catname";
$caturl = str_replace(" ", "_", $caturl);
echo "<table border=\"0\"><br>
<tr>
<td><a href=\"$caturl/\">$catname</a><br>
$catdesc</td>
</tr>
</table>";
}
?>
was stimmt daran nicht?
Der gibt mir nämlich folgendes aus:

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in on Line 4

Was zur Hölle ist falsch?

Dingsi
13.07.2005, 09:39
Mal echo mysql_error(); gemacht? Das mache ich grundsätzlich nach _jedem_ Query...

fanrpg
13.07.2005, 09:46
ich bin auch doof vergessen config.php zu includen >.<

jetzt aber nen anderes Problem ich will ja dynamische Links ausgeben die den name der kategorie tragen das mach ich ja per $_GET aber das funzt irgendwie gar nicht
der gibt mit nur http://localhost/ aus -.-
oder is hier dran was falsch?

while($catrow = mysql_fetch_object($catquery))
{
$catname = $catrow->name;
$catdesc = $catrow->desc;
$caturl = $_GET['download'] == "$catname";
$caturl = str_replace(" ", "_", $caturl);
echo "<table border=\"0\">
<tr>
<td><a href=\"$caturl/\">$catname</a><br>
$catdesc</td>
</tr>
</table>";
}

Chocwise
13.07.2005, 12:34
Eröffne bitte keine neuen Threads für deine Probleme.
Bitte nutze deinen bereits erstellten Thread wenn du wieder ein Problem hast.


ich bin auch doof vergessen config.php zu includen >.<

jetzt aber nen anderes Problem ich will ja dynamische Links ausgeben die den name der kategorie tragen das mach ich ja per $_GET aber das funzt irgendwie gar nicht
der gibt mit nur http://localhost/ aus -.-
oder is hier dran was falsch?

while($catrow = mysql_fetch_object($catquery))
{
$catname = $catrow->name;
$catdesc = $catrow->desc;
$caturl = $_GET['download'] == "$catname";
$caturl = str_replace(" ", "_", $caturl);
echo "<table border=\"0\">
<tr>
<td><a href=\"$caturl/\">$catname</a><br>
$catdesc</td>
</tr>
</table>";
}
*zucktmitdenschultern*
Keine Ahnung was du in $_GET['download'] übergibst.
Zeig mal eine URL damit wir sehen können welchen Wert du in der download-Variable übergibst.

fanrpg
13.07.2005, 12:43
also ich frage in der Tabelle cat der DB die namen der Kategorien ab diese sollen per $_GET in ne URL übergeben werden die dynamisch je nach Name dann so aussehen
index.php?download=namederkategorie also das und das "namederkategorie" will ich per get übergebeb also so $_GET['download'] == "$catname" catname wurde vorher aus der DB herausgeladen und mit der whileschlefie über geben also so:
$catname = $row->name
also müsste das doch klappen oder hab ich was auf den Augen (bzw. falsch verstanden)?
so sieht das script immo aus:

<?php
include("config.php");
$catsql = "SELECT * FROM `cat` ORDER BY `ID` DESC";
$catquery = mysql_query($catsql) or die(mysql_error());
while($catrow = mysql_fetch_object($catquery))
{
$catname = $catrow->name;
$catdesc = $catrow->desc;
$caturl = $_GET['download'] == "$catname";
$caturl = str_replace(" ", "_", $caturl);
echo "<table border=\"1\">
<tr>
<td><a href=\"$caturl/\">$catname</a><br></td>
</tr><tr><td>
$catdesc</td>
</tr>
</table>";
}
?>

Keiner ne Idee?

fanrpg
13.07.2005, 20:19
Keiner ne Idee?

Tomarus
13.07.2005, 20:29
Öhm ... müsste die dritte Zeile der while-Schleife nicht eher so aussehen?


$caturl = 'index.php?download='.$catname;

Wobei man das index.php auf Wunsch auch weglassen kann.

fanrpg
13.07.2005, 21:58
THX @ Dingsi

ich hab noch nen Problem ich hab mich mit Counter noch nie so wirklich beschäftigt
Wie kann ich für dieses Script am besten nen DL Zähler bauen?

<?php
include("config.php");
echo "<font size=\"+2\">Kategorien</font>";
$catsql = "SELECT * FROM `cat` ORDER BY `ID` DESC";
$catquery = mysql_query($catsql) or die(mysql_error());
while($catrow = mysql_fetch_object($catquery))
{
$catname = $catrow->name;
$catdesc = $catrow->desc;
$caturl = 'index.php?download='.$catname;
$caturl = str_replace(" ", "_", $caturl);
echo "<table border=\"1\" width=\"50%\">
<tr>
<td><a href=\"$caturl\">$catname</a><br></td>
</tr><tr><td>
$catdesc</td>
</tr>
</table>";
}
$sqldown = "SELECT * FROM downloads WHERE cat LIKE '".$catname."'";
$querydown = mysql_query($sqldown);
echo "<center><font size=\"+2\">Die Downloads dieser Kategorie</font></center>";
while($rowdown = mysql_fetch_object($querydown))
{
$download_name = $rowdown->downname;
$download_url = $rowdown->downlink;
$download_desc = $rowdown->downdesc;
echo "<table border=\"1\" width=\"100%\">
<tr>
<td>";
if($_GET['download'] == "$catname")
{
echo "<a href=\"http://$download_url\">$download_name</a><br>
$download_desc";
}
echo"</td>
</tr>
</table>
<br>";
}
?>

fanrpg
13.07.2005, 23:12
Hmm schon wieder ein Problem <.< und die Lösung ist garantiert wieder so einfach wie oben <.<

Also warum wird hier nichts in die DB eingetragen?


<?php
include("config.php");

if($_GET['start'] == "")
{

if(isset($newcat)) {
$catsql = "INSERT INTO cat (name, desc) VALUES ('$catname', '$catdesc')";
$catquery = mysql_query($catsql);
header("location: admin.php?entry=newcat");
}
if(isset($newdownload)) {
$download_sql = "INSERT INTO downloads (downname, downlink, cat, downdesc) VALUES ('$downname', '$downlink', '$downcat', '$downdesc')";
$download_query = mysql_query($download_sql);
header("location: admin.php?entry=newdownload");
}


/* Entry URLs */
}
if($_GET['entry'] == "newcat")
{
echo "Neue Kategorie wurde erfolgreich eingetragen!<br>";
echo "<a href=\"admin.php\">Zurück</a>";
}
elseif($_GET['entry'] == "newdownload")
{
echo "Neuer Download erfolgreich eingetragen!<br>";
echo "<a href=\"admin.php\">Zurück</a>";
}
else
{
echo "Error! Seite existiert nicht!";
}
/* Entry URL's Ende */
?>
<!-- Start Form - Cat -->
<form method="post">
<h1>Kategorie hinzufügen</h1><br>
Kategoriename:<input type="text" name="catname"><br>
Kategoriebeschreibung:<input type="text" name="catdesc"><br>
<input type="submit" name="newcat" value="Absenden"></form>
<!-- End Form - Cat -->
<br>
<!-- Start Form - Download -->
<form method="post">
<h1>Download hinzufügen</h1><br>
Downloadname:<input type="text" name="downname"><br>
Downloadurl:<br>
(mit ohne http:// und komplette URL)<input type="text" name="downlink"><br>
Downloadbeschreibung:<input type="text" name="downdesc"><br>
Zur Kategorie hinzufügen(Name): <input type="text" name="downcat"><br>
<input type="submit" name="newdownload" value="Absenden"></form>

Tomarus
13.07.2005, 23:25
@letztes Problem: Probier's evtl. mal mit ` um die Namen von Feldern und Tabellen in deinen MySQL-Querys - Also bei der ersten z.B.:


$catsql = "INSERT INTO `cat` (`name`, `desc`) VALUES ('$catname', '$catdesc')";

Wenn nämlich die Namen der Felder mit irgendwelchen MySQL-Befehlen übereinstimmen und nicht in ` notiert sind, kommt's da gern mal zu Komplikationen.

fanrpg
14.07.2005, 00:27
THX hat geklappt!

Aber nochmal zu dem anderem Script mir fällt grad man kann nur Downloads hinzufügen in der ersten Kategorie die man erstellt hat in den anderen fügt der das einfach nicht hinzu :\ (und wenn man die Downloads dann der anderen Kat zuordnet werden die gar nich angezeigt -.-


<?php
include("config.php");
echo "<font size=\"+2\">Kategorien</font>";
$catsql = "SELECT * FROM `cat` ORDER BY `ID` DESC";
$catquery = mysql_query($catsql) or die(mysql_error());
while($catrow = mysql_fetch_object($catquery))
{
$catname = $catrow->name;
$catdesc = $catrow->desc;
$caturl = 'index.php?download='.$catname;
$caturl = str_replace(" ", "_", $caturl);
echo "<table border=\"1\" width=\"50%\">
<tr>
<td><a href=\"$caturl\">$catname</a><br></td>
</tr><tr><td>
$catdesc</td>
</tr>
</table>";
}
$sqldown = "SELECT * FROM `downloads` WHERE `cat` LIKE '".$catname."'";
$querydown = mysql_query($sqldown);
echo "<center><font size=\"+2\">Die Downloads dieser Kategorie</font></center>";
while($rowdown = mysql_fetch_object($querydown))
{
$download_name = $rowdown->downname;
$download_url = $rowdown->downlink;
$download_desc = $rowdown->downdesc;
echo "<table border=\"1\" width=\"100%\">
<tr>
<td>";
if($_GET['download'] == "$catname")
{
echo "<a href=\"http://$download_url\">$download_name</a><br>
$download_desc";
}
echo"</td>
</tr>
</table>
<br>";
}
?>

Jemand ne idee?

fanrpg
14.07.2005, 20:48
keiner irgendeine Problemlösung?

dadie
14.07.2005, 21:07
Du schreibst



$sqldown = "SELECT * FROM `downloads` WHERE `cat` LIKE '".$catname."'";


Damit greiffst du auf den Internen $catname zurück den du im ersten while benutz


$catname = $catrow->name;

einfach $_GET['catname'] .

Das ganze könnt totaler misst sein !

fanrpg
14.07.2005, 21:40
Du schreibst



$sqldown = "SELECT * FROM `downloads` WHERE `cat` LIKE '".$catname."'";


Damit greiffst du auf den Internen $catname zurück den du im ersten while benutz


$catname = $catrow->name;

einfach $_GET['catname'] .

Das ganze könnt totaler misst sein !

funzt auch nicht :\

fanrpg
15.07.2005, 16:49
sonst nich jemand ne Idee?