PHP & mysql_query hiba

Indította MicroStar, 2010 december 30, 04:22:13 DÉLUTÁN

Előző téma - Következő téma

MicroStar

http://pastebin.com/jFWiCwwY <---- Erre a php kódra az alábbi hibákat kaptam:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/berles/berlok/***/www/***/max.php on line 14

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/berles/berlok/***/www/***/max.php on line 15

Szeretném kérni a hozzáértők segítségét
Mi a hiba :S


castor

`characters`.ORDER -> nem kell pont a kettő közé, célszerű ténylegesen is letesztelni az sql sorainkat

MicroStar

#2

Pemi

Szia MicroStar!

Nem tudom milyen lekérdezést szeretnél, de így nem jó! Ha külön kell a két tábla adata akkor külön lekérdezést csinálj. Ha össze akarod vetni őket akkor használd a MySQL join vagy cross lehetőségét!
Ez így nem jó!!
Pemi

MicroStar

Arra szerettem volna kilyukadni a minimális tudásommal és 1 könyv segítségével hogy listázza ki azt akinek legtöbb honor pontja van ( tudom hogy most növekvőbe kidobna mindenkit.... )

Skyne

#5
jó ez így Pemi, nem látom át hogy mi nem jó ebben így (mituán az ORDER BY előtti pontot kicseréltük szóközre) a gond ott van azér jön resource, mert több sort kapsz eredményül, és egyszerre mindent nemtud kiírni, vagy írni kell egy ciklust és azzal kíratni az egyes sorokat:

while($row =  mysql_fetch_array($honor_eredmeny))
{
   echo $row [`name`].''.$row [`totalHonorPoints`].':'.$row [`totalKills`]. '<br />';
}

vagy pedig korlátozzuk a lekérdezést egy sorra:

$honor_lekerdezes = "SELECT * FROM `deliriummars_characters`.`characters` ORDER BY `totalHonorPoints` LIMIT 0,1";

az utóbbi értelemszerűencsak az elsősort fogja visszaadni, ilyenkor nicsn szükség a ciklusra, az első pedig végigmegy az összes értékenami szerepelaz adatábzisban és kiírkálja.

MicroStar

$honor_eredmeny = mysql_query($connect, $honor_lekerdezes);
$row =  mysql_fetch_array($honor_eredmeny);

ezzel a kett?vel tov

castor

Pemi, a lekérdezéssel nincs gond (adatbázis.tábla).

Én így csinálnám:
http://pastebin.com/bADq6SrJ

MicroStar

Idézetet írta: castor Dátum 2010 december 30, 10:20:47 DÉLUTÁN
Pemi, a lekérdezéssel nincs gond (adatbázis.tábla).

Én így csinálnám:
http://pastebin.com/bADq6SrJ

Ez működik de valaki elmondaná hogy miért?
Józan paraszti logika szerint a másiknak is kellen :D :$
Esetleg mert itt printel küldjük ki a képernyőre és táblázatba?

Pemi

#9
Bocsi, tényleg rosszul értelmeztem. Hirtelen a TDB ugrott be, és azt hittem több táblát akarsz lekérdezni :-[

Egyszerűbben:

<?php

   $connect = mysql_connect("host","user","pass") or die(mysql_error());
   $db_selected = mysql_select_db("database",$connect);
   $sql = "SELECT * FROM tabla";
   $result = mysql_query($sql);
   while($sor=mysql_fetch_array($result))
   {
      echo $sor[0];
   }
?>
Pemi

MicroStar

a while nem addig ismétel amig van a feltételnek eleget tevő dolgom?

castor

Az egyértelmű, hogy a lekérdezéssel több sort kapsz meg eredményül. Ezt egy szimpla echo-val biztos, hogy nem tudod kiíratni.

Kicserélheted a tiedre is így:
while ( $h=mysql_fetch_array($honor_lekerdezes) ) {
$honor .= "<tr>
<td>".$h["name"]."</td>
<td>".$h["totalHonorPoints"]."</td>
<td>".$h["totalKills"]."</td>
</tr>";  
}

MicroStar

Köszönöm a segítséget ezek alapján próbálkozok tovább hasonló dolgokkal
Mégis csak gyakorlat teszi a mestert :) ( Vagy a pénz...? :P )

Powered by EzPortal