ugrás a tartalomhoz

mysql_num_rows(): supplied argument is not a valid MySQL result resource

Sytoxic · 2013. Már. 6. (Sze), 12.58
Sürgős segítség kellene!
Nem találom benne a hibát :/
Ezt írja:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /home/inc/functions.inc.php on line 440

Előre is köszönöm!
<?PHP

  function calcPages($gesEin,$aktSeite,$eSeite) {
    $output = array();
    $esQuote = ceil(($gesEin/$eSeite));
    if($aktSeite==0) {$aktSeite=1;}
    $startS = ($aktSeite*$eSeite)-$eSeite;
    $output[0]=$esQuote;
    $output[1]=$startS;
    return $output;
  }
  
  function checkAnum($wert) {
    $checkit = preg_match("/^[a-zA-Z0-9]+$/",$wert);
    if($checkit) {
      return true;
    }
    else {
      return false;
    }
  }
  
  function checkIP($wert) {
    $checkit = preg_match("/^[0-9\*]{1,3}+\.[0-9\*]{1,3}+\.[0-9\*]{1,3}+\.[0-9\*]{1,3}+$/",$wert);
    if($checkit) {
      return true;
    }
    else {
      return false;
    }
  }
  
  function checkName($wert) {
    $checkit = preg_match("/^[a-zA-Z0-9[:space:]]+$/",$wert);
    if($checkit) {
      return true;
    }
    else {
      return false;
    }
  }
  
  function checkVoucher($wert) {
    $checkit = preg_match("/^[0-9]+[0-9\-]+[0-9]+$/",$wert);
    $wert = str_replace('-','',$wert);
    if($checkit && strlen($wert)>=16 && strlen($wert)<=25) {
      return true;
    }
    else {
      return false;
    }
  }
  
  function checkPwd($wert) {
    $checkit = preg_match("/^[a-zA-Z0-9[:space:]]+$/",$wert);
    if($checkit) {
      return true;
    }
    else {
      return false;
    }
  }
  
  function checkMail($string) {
    if(preg_match("/^[a-zA-Z0-9\._-]+@[a-zA-Z0-9\.-]+\.[a-zA-Z]{2,4}$/", $string)) {
      return true;
    }
    else { return false; }
  }
  
  function checkInt($wert) {
    $checkit = preg_match("/^[0-9]+$/",$wert);
    if($checkit) {
      return true;
    }
    else {
      return false;
    }
  }
  
  function checkRate($wert) {
    //if(checkInt($wert) && $wert>0) {
    if(preg_match("/^[1-9]+\.[0-9]+$/",$wert) || $wert>0) {
      return true;
    }
    else {
      return false;
    }
  }

  function compareItems($inputID) {
  
    $input = "./archives/items.txt";
    
    $getFile =  file($input);
    $getZeilen = count($getFile);
    
    for($x=0;$x<$getZeilen;$x++) {
    
      $aktZeile = $getFile[$x];
      $splitZeile = explode('|||',$aktZeile);
      $startWert = $splitZeile[0]+0;
      $endWert = $splitZeile[1]+0;
      if($inputID<=$endWert AND $inputID>=$startWert) {
        $maxStufe = $endWert-$startWert;
        $stufe=$inputID-$startWert;
        $aus=array();
        $aus['item'] = $splitZeile[2];
        $aus['groesse'] = trim($splitZeile[3]);
        $aus['stufe'] = ($maxStufe==0) ? NULL : $stufe;
        $aus['maxStufe'] = $maxStufe;
        $aus['vnum']=$startWert;
        return $aus;
      }
    }
    $nItem=array();
    $nItem['groesse']=1;
    $nItem['item']=$inputID;
    $nItem['stufe']=NULL;
    $nItem['maxStufe']=0;
    $nItem['vnum']=$inputID;
    return $nItem;
  
  }
  
  function checkPos($inID) {
    global $sqlServ;
    $sqlCmd="SELECT pos,vnum FROM player.item WHERE owner_id='".$inID."' AND window='SAFEBOX'";
    $sqlQry=mysql_query($sqlCmd,$sqlServ);
    
    $lagerPos=array();
    while($getLager=mysql_fetch_object($sqlQry)) {
      $maxGr = compareItems($getLager->vnum);
      $aktPos=$getLager->pos;
      for($i=1;$i<=$maxGr['groesse'];$i++) {
        $lagerPos[$aktPos]=$getLager->vnum;
        $aktPos = $aktPos + 5;
      }
    }
    
    $sqlCmd="SELECT pos,vnum FROM player.item WHERE owner_id='".$inID."' AND window='MALL'";
    $sqlQry=mysql_query($sqlCmd,$sqlServ);
    
    $islPos=array();
    while($getISL=mysql_fetch_object($sqlQry)) {
      $maxGr = compareItems($getISL->vnum);
      $aktPos=$getISL->pos;
      for($i=1;$i<=$maxGr['groesse'];$i++) {
        $islPos[$aktPos]=$getISL->vnum;
        $aktPos = $aktPos + 5;
      }
    }
    
    $returnArray['lager']=$lagerPos;
    $returnArray['islager']=$islPos;
    
    return $returnArray;
  }
  
  function listLager($inArray,$typus=0) {
    if($typus==1) {
      $ueS='IS-Lager';
      $cInput=$inArray['islager'];
    }
    else {
      $ueS='Lager';
      $cInput=$inArray['lager'];
    }
    echo'<table class="lager">';
    echo'<tr>
      <th class="topLine" colspan="5">'.$ueS.'</th>
    </tr>';
    for($i=0;$i<45;$i++) {
      if($i==0) { echo'<tr>'; }
      if(isset($cInput[$i])) {
        $zF="tdunkel";
        $getItem = compareItems($cInput[$i]);
        $iStufe = (checkInt($getItem['stufe'])) ? "+".$getItem['stufe'] : '';
        $lineout="<a title=\"".$getItem['item'].$iStufe."\">".$i."</a>";
      }
      else { $zF="thell"; $lineout=$i; }
      echo '<td class="'.$zF.'">'.$lineout.'</td>';
      if($i!=0 && ($i+1)%5==0) { 
        echo'</tr>';
        if(($i+1)!=45) { echo '<tr>'; } 
      }
    }
    echo'</table>';
  
  }
  
  function findPos($belegtePos,$iGroesse) {
    $possPos=array();
    for($i=0;$i<45;$i++) {
    
      if(empty($belegtePos[$i])) {
      
        for($y=0;$y<$iGroesse;$y++) {
        
          $aktPos=$i+($y*5);
          $thisFits = true;
          if(!isset($belegtePos[$aktPos]) && $aktPos<45) {
            $thisFits = true;
          }
          else {
            $thisFits = false;
            break;
          }
          
        }
        if($thisFits) { $possPos[]=$i; }
        
      }
    
    }
    return $possPos;
  }

  function checkUploadSize($dateiGr,$maxGr) {
    $maxGrByte = $maxGr*1024;
    if($dateiGr<=$maxGrByte) {
      return true;
    }
    else {
      return false;
    }
  }
  
  function imageCheckSize($datei,$xMax,$yMax) {
    $erlaubteBilder = array(
      'image/jpeg' => '.jpg',
      'image/gif'  => '.gif'
    );
    $getGr=getimagesize($datei);

    if($getGr[0]<=$xMax && $getGr[1]<=$yMax && !empty($erlaubteBilder[$getGr['mime']]) ) {
      return $erlaubteBilder[$getGr['mime']];
    }
    else {
      return false;
    }
  }
  
  function imageUpload($dateiIn,$maxDateiGr,$maxDateix,$maxDateiy) {
    if($_FILES[$dateiIn]['size']>0) {
      if(checkUploadSize($_FILES[$dateiIn]['size'],$maxDateiGr)) {
        if($dateiEndung = imageCheckSize($_FILES[$dateiIn]['tmp_name'],$maxDateix,$maxDateiy)) {
          $md5datei = md5_file($_FILES[$dateiIn]['tmp_name']).'_'.rand(10000,99999);
          if(move_uploaded_file($_FILES[$dateiIn]['tmp_name'],'./is_img/'.$md5datei.$dateiEndung)) { 
            return $md5datei.$dateiEndung;
          }
          else { return false; }
        }
        else { return false; }
      }
      else { return false; }
    }
    else { return false; }
  }
  
  function getMapByIndex($mapIndex) {
	global $sqlHp;
    if(checkInt($mapIndex)) {
      $returnArray=false;
	  $abfrage1 = "SELECT * FROM ".SQL_HP_DB.".maps";
	  $abfrage2 = mysql_query($abfrage1,$sqlHp);
      while($abfrage3 = mysql_fetch_array($abfrage2)) {
        if(trim($abfrage3['mapId'])==$mapIndex) {
          $returnArray=array();
          $returnArray=$abfrage3;
        }
      }
      
      if(is_array($returnArray)) {
        return $returnArray;
      }
      else {
        return false;
      }
      
    }
    else {
      return false;
    }
  }
  
  function listItems($iid='') {
    echo'<select name="itemtyp">';
      echo'<option value="">-------</option>';
      $itemDatei = "./archives/items.txt";
      $itemListe = file($itemDatei);
      $dateiLaenge = count($itemListe);
      for($i=0;$i<$dateiLaenge;$i++) {
        $splitZeile = explode("|||",$itemListe[$i]);
        $selected= ($iid>=$splitZeile[0] && $iid<=$splitZeile[1]) ? 'selected=selected':''; // to go
        echo'<option '.$selected.' value="'.$splitZeile[0].'">'.$splitZeile[2].'</option>';
      }
    echo'</select>';
  }
  
  function listMaps() {
    global $sqlHp;
    
    echo'<ul class="menue">';
    
	$abfrage1 = "SELECT * FROM ".SQL_HP_DB.".maps";
	$abfrage2 = mysql_query($abfrage1,$sqlHp);
    while($abfrage3 = mysql_fetch_object($abfrage2)) {
      if($abfrage3->Name != "") {
        echo '<li><a href="index.php?s=admin&a=map&mapindex='.$abfrage3->mapId.'">'.$abfrage3->Name.'</a></li>';
      }
    }
    
    echo'</ul>';
    
  }
  
  function getDatum($timeStamp=0)
  {
    return date("d.m.Y",$timeStamp);
  }
  
  function getZeit($timeStamp=0)
  {
    return date("H:i",$timeStamp);
  }

  function x_nl2br($input)
  {
    $input = str_replace("\n",'<br/>',$input);
    return $input;
  }
  
  function listNewsKat($mIndex=-1)
  {
    global $newsKategorien;
    echo'<select name="kategorie">';
    foreach($newsKategorien AS $katIndex => $katName)
    {
      $selected = ($mIndex==$katIndex) ? 'selected="selected"' : '';
      echo'<option '.$selected.' value="'.$katIndex.'">'.$katName.'</option>';
    }
    echo'</select>';
  }
  
  function checkBetween($input,$lower=0,$upper=0)
  {
    if($input>=$lower && $input<=$upper) { return true; }
    else { return false; }
  }
  
  function getTitel()
  {
	global $serverSettings;
	$nummer = rand(1, 3);
	if ($nummer == 1)
	{
		$titel = $serverSettings['titel_page1'];
	}
	elseif ($nummer == 2)
	{
		$titel = $serverSettings['titel_page2'];
	}
	else
	{
		$titel = $serverSettings['titel_page3'];
	}
	return $titel;
  }
  
  function charname($id)
  {
	global $sqlServ;
	$abfrage1 = "SELECT name FROM player.player WHERE id = '".$id."'";
	$abfrage2 = mysql_query($abfrage1, $sqlServ);
	if (mysql_num_rows($abfrage2) == 1) {
		$abfrage3 = mysql_fetch_object($abfrage2);
		return $abfrage3->name;
	} else {
		return false;
	}
  }
  
  function accname($id)
  {
	global $sqlServ;
	$abfrage1 = "SELECT login FROM account.account WHERE id = '".$id."'";
	$abfrage2 = mysql_query($abfrage1,$sqlServ);
	if (mysql_num_rows($abfrage2) == 1)
	{
		$abfrage3 = mysql_fetch_object($abfrage2);
		return $abfrage3->login;
	}
	else
	{
		return false;
	}
  }
  
  function tomail($email,$text,$titel)
  {
	global $mailSettings;
	if ($email == "" or $text == "" or $titel == "")
	{
	  return false;
	}
	else
	{
	  require_once '/PHPMailer/class.phpmailer.php';
	  $mail = new PHPMailer();
	  $mail->SetLanguage("de", "/PHPMailer/");
	  $mail->IsSMTP();
	  $mail->Host = $mailSettings['Host'];
	  $mail->SMTPAuth = true;
	  $mail->Username = $mailSettings['Username'];
	  $mail->Password = $mailSettings['Password'];
	  $mail->From     = $mailSettings['Email'];
	  $mail->FromName = $mailSettings['Name'];
	  
	  $mail->AddAddress($email);
	  $mail->Subject = $titel;
	  $mail->IsHTML(false);
	  $mail->Body = $text;
	  if ($mail->Send())
	  {
		return true;
	  }
	  else
	  {
		return false;
	  }
	}
  }
  
  function lang($name)
  {
	global $sqlHp;
	$ab1 = "SELECT * FROM ".SQL_HP_DB.".lang WHERE name = '".$name."' LIMIT 1";
	$ab2 = mysql_query($ab1,$sqlHp);
	if (mysql_num_rows($ab2) == 1)
	{
	  $ab3 = mysql_fetch_object($ab2);
	  if ($_SESSION['lang'] == "deutsch")
	  {
		return $ab3->deutsch;
	  }
	  elseif ($_SESSION['lang'] == "english")
	  {
		return $ab3->english;
	  }
	}
  }
  
  function get_item_proto($item)
  {
	global $sqlServ;
	$ab1 = "SELECT vnum,locale_name,size FROM player.item_proto WHERE vnum = '".$item."'";
	$ab2 = mysql_query($ab1,$sqlServ);
	if (mysql_num_rows($ab2) == 1)
	{
	  $ab3 = mysql_fetch_object($ab2);
	  $return = array();
	  $return['name'] = $ab3->locale_name;
	  $return['groesse'] = $ab3->size;
	  $return['id'] = $ab3->vnum;
	  return $return;
	}
	else
	{
	  return false;
	}
  }
?>
 
1

Etika

Poetro · 2013. Már. 6. (Sze), 13.06
Kezdjük az elején. Nem illik azzal kezdeni a hozzászólást, hogy sürgős, még akkor sem, ha tényleg az.

A megoldáshoz ugye legjobb, ha elolvasod a dokumentációt. A mysql_num_rows valószínűleg olyan paramétert kapott, ami egy nem sikeres SELECT vagy SHOW típusú lekérdezés. De maga a hibaüzenet is pontosan ezt írja:
supplied argument is not a valid MySQL result resource

Azaz a megadott argumentum egy nem valós MySQL eredmény forrás. Lehet, hogy maga a lekérdezés hibás, vagy nem is volt lekérdezés.
2

Ha már kódot idézel, miért

Poetro · 2013. Már. 6. (Sze), 13.11
Ha már kódot idézel, miért nem tudtad csak a lényeges kódot beidézni, miért kellett majd 500 sort beszúrni?

A probléma először is abból adódhat, hogy nem escapeled megfelelően a MySQL kérésnek átadandó paramétereket. Ezen kívül azt sem tudjuk a lang függvény milyen paramétert kap, mert abban a majd 500 sorban pont a lényeges információ nincs benne.
3

Bocsesz

Sytoxic · 2013. Már. 6. (Sze), 13.12
Hát sajnálom de tényleg fontos lenne :/
Azt értem igen, de valami megoldást nem tudsz mondani rá?
Vagy egy példát mutatni hogy hogyan lenne működőképes a dolog?
4

Ajánlom a mysql_query

Poetro · 2013. Már. 6. (Sze), 13.14
Ajánlom a mysql_query dokumentációjának elolvasását. Van ott rengeteg példa is, hogyan kellene használni.
5

Kisebb gond

Sytoxic · 2013. Már. 6. (Sze), 13.31
Az a baj hogy nem nagyon értek ezekhez a dolgokhoz...
Ez csak 1 letölthető alap web...
Ezért kértem segítséget :)
6

Keresd meg a support forumat

Greg · 2013. Már. 6. (Sze), 13.40
Keresd meg a support forumat a letoltott appnak es ott kerdezz.
7

tanulni?

Poetro · 2013. Már. 6. (Sze), 13.41
És mi lenne, ha megpróbálnál megtanulni érteni hozzá? Ezért válaszoltam.
8

tanulás??

Sytoxic · 2013. Már. 6. (Sze), 13.47
Jó értem hogy írsz de nem tudom megtanulni az biztos. gondolom te se egy nap alatt tanultál meg php-t írni meg hasonló.
Attól hogy elolvasok egy fórumot akár nekem az semmit nem mondd érted.
Hidd el elolvastam már nem egyet...
Szóval ezért írtam hogy jobb lenne egy konkrét megoldás.
(Amúgy skypre felvetelek ha mégis segítenél.)
9

Ha nem szeretnéd megtanulni,

Poetro · 2013. Már. 6. (Sze), 14.24
Ha nem szeretnéd megtanulni, akkor lehet inkább egy munkahirdetést feladni, vagy egy általad ismert programozót felkérni, hogy megfelelő ellenérték fejében segítsen neked.
10

Tanulas

janoszen · 2013. Már. 6. (Sze), 17.41
A tanulas nem ugy mukodik, hogy valaki megoldja helyetted a feladatot, abbol ugyanis nem tanulsz.

Amiert itt mindenki baratsagtalannak tunik, annak a hozzaallasod az oka. Te (latszolag?) nem akarsz azert tenni, hogy megoldodjon a problemad. Ha peldaul megkerdezned, hogy a forum tagok szerint mit kellene elolvasnod, hogy megertsd a kodot es meg tudd javitani, akkor valoszinuleg mindenki korulrajongana a kulonbozo elolvashato cikkekkel es jotanacsokkal. Igy, hogy a Te oldaladrol sem latjak a tenni akarast, a forum tagok sem fognak erted tul sokat mozdulni, belinkelik a hivatalos dokumentaciot es kesz.

Itt most harom dolgot tehetsz: 1. Atgondolod azt, hogy milyen elvarasokkal jottel ebbe a forumba es megprobalsz iranyt valtani a lassabb, de tanulast hozo folyamat fele. 2. Feltesztel egy projekt munka hirdetest, hogy valaki csinalja meg - penzert - a Te munkadat. 3. Kapcsolatba lepsz a script eredeti szerzojevel es tole kerdezed meg, hogy mit kellene tenned.

Hogy segitsek is, nehany alap informacio, ami segithet elindulni:

Van ugye az adatbazis szervered, jelen esetben egy MySQL. Ez egy program, ami valahol fut. Ha tarhely szolgaltatast hasznalsz, akkor ezt a szolgaltato bocsajtja rendelkezesedre. Ehhez van egy felhasznaloneved es jelszavar amit ebbe a letoltheto programba bele kell taplalnod, enelkul ugyanis nem tud csatlakozni a PHP program a MySQL-hez. Ha sikeresen csatlakozott a programod, akkor ezutan adatlekerdezeseket es modositasokat tud vegrehajtani az adatbazison.

Ha ez a muvelet hibara fut (vagy azert, mert nem volt aktiv csatlakozas es ezt korabban nem kezelte le a program alkotoja, vagy azert, mert a lekerdezessel tortent hiba), akkor nem kapsz vissza ervenyes MySQL eredmenyt a PHP-ban, amit a mysql_num_rows nem tud feldolgozni, ezert van a hibauzenet.

Mivel a programod szemmel lathatolag normalis hibakezeles nelkul van megirva (a normalistol eltero helyzeteket nem kezeli le), igy nem is fogod tudni megmondani a program modositasa nelkul, hogy mi a gond. Ezen a ponton viszont elgondolkoznek azon, hogy egy szemmel lathatolag gyengen megirt programba mennyi energiat erdemes fektetni.
11

+10

Pepita · 2013. Már. 6. (Sze), 19.40
Ez olyan szép és részletes felvilágosítás, hogy hasonló helyzetekben linkelni kell. Akár regisztrációs oldalra is illene.