PDA

View Full Version : مبتدی: مشکل کد من کجاشه؟؟؟؟؟؟



raha1234567
سه شنبه 27 آبان 1393, 22:15 عصر
<?php
if (isset($_POST["tsearch"]))
{
$sn="localhost";
$user="root";
$pass="";
$dbn="jobs";
$link=mysql_connect($sn,$user,$pass) or die(mysql_error());
mysql_query("SET Names 'utf8'");
mysql_select_db($dbn,$link);

//پیدا کردن جدول مورد نظر
$tbl1=mysql_query("SELECT pic FROM '".$_POST["tsearch"]."'
WHERE EXISTS(SELECT TABLE_NAMEFROM INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE LIKE 'BASE TABLE' AND TABLE_NAME
= '".$_POST["tsearch"]."')");

$row = mysql_fetch_array($tbl1);
if(!empty($row)){
echo "find";
}
else
{
echo "nofound";
}
// header('location:kafinet.php');}
}
?>


سلام میشه بگید ایراد این کد چیه که این اخطار پایین رو میده؟؟؟؟؟ لطفااااااااااااااا
منظ.ر از خط 83 حط if هستش!!!!!!!!!!

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\wamp\www\jobs\jobsbank.php on line 83
nofound

H:Shojaei
سه شنبه 27 آبان 1393, 22:26 عصر
یه پیشنهاد واسه این که وقتی کوئری ها به خطا میخورن به دردتون میخوره این که...
قبل از این که کوئری رو اجرا کنید نمایشش بدین (echo کنید) روی صفحه و کوئری که به دست اومده رو داخل mysql تست کنید ببینید که اونجا درست عمل میکنه یا نه اگرم خطایی داشته باشید تا حدودی خودش میگه کجاش خطا داره...
مثلا این کد شما رو اگه همین کارو میکردید بهتون میگفت که تو قسمت سلکت دوم :
INFORMATION_SCHEMA.TABLESWHERE TABLE_TYPE LIKE
TABLESWHERE نباید به هم بچسبن و فک کنم ایراد هم همینجا باشه...
و همچنین اون قسمت from از همین سلکت...

googoli
سه شنبه 27 آبان 1393, 22:27 عصر
سلام خب خطای شما از دستور زیر هست


mysql_fetch_array($tbl1)

اگر قصد شما این هست که جواب رو بصورت ارایه انجمنی دریافت کنید از این دستور درست استفاده کردید
و اگر این برداشت من درست باشه که شما می خواهی تعداد سطرها رو بشماری باید از دستور زیر استفاده کنی به این شکل استفاده کنی


mysql_num_rows($queryResult) > 0

اگر این دو مورد نباشه باید دستور sql رو بررسی کنی

raha1234567
سه شنبه 27 آبان 1393, 22:30 عصر
فرمودین چکار کنم؟؟؟؟؟

wallfa
سه شنبه 27 آبان 1393, 22:33 عصر
طبق گفته دوستمون باید اول سطر ها بشماری بعد بدی حلقه که حلقه بدونه اصلا چی به چیه

raha1234567
سه شنبه 27 آبان 1393, 22:39 عصر
سلام خب خطای شما از دستور زیر هست

شما اگر می خواهی تعداد سطرها رو بشماری باید از دستور زیر استفاده کنی به این شکل استفاده کنی


mysql_num_rows($queryResult) > 0


نه می خوام چک کنه اگه اسم جدول مورد نظر من رو از دیتابیس پیدا کرد بعد بره ستون pic جدول مورد نظر رو جسن جو کنه اگه پیدا شد f'i \dnh ;vnl

googoli
سه شنبه 27 آبان 1393, 22:52 عصر
خب اگر می خوای این کار رو بکنی یه نگاه به لینک های زیر بنداز شاید مشکلت حل شه


http://stackoverflow.com/questions/6432178/how-can-i-check-if-a-mysql-table-exists-with-php
http://stackoverflow.com/questions/9008299/check-if-mysql-table-exists-or-not

raha1234567
سه شنبه 27 آبان 1393, 23:02 عصر
خب اگر می خوای این کار رو بکنی یه نگاه به لینک های زیر بنداز شاید مشکلت حل شه


http://stackoverflow.com/questions/6432178/how-can-i-check-if-a-mysql-table-exists-with-php
http://stackoverflow.com/questions/9008299/check-if-mysql-table-exists-or-not


مرسی قسمت ولی من میخوام اسم جدول رو با txtbox چک کنه یعنی اگه توی تکسم نوشتم توپ بره توی دیتابیسم سرچ بزنه ببینه جدولی به اسم توپ وجود داره یا نه

raha1234567
سه شنبه 27 آبان 1393, 23:02 عصر
تازه بعد اگه جدولی به اسم توپ وجود داشت بره و برام ستون عکس هاش رو انتخاب کنه و چاپ کنه

googoli
سه شنبه 27 آبان 1393, 23:22 عصر
اگر زحمت خوندن این لینک ها رو به خودتون میدادید با این کد مشکلتون برطرف میشد


$connection = new PDO ( "mysql:host=localhost; dbname=blog", 'root', '' );

if ($connection->query ("DESCRIBE `comment`" )) {
echo "exist";
} else {
echo "doesn't exist";
}

googoli
سه شنبه 27 آبان 1393, 23:29 عصر
یا حتی با این کد هم میشد


SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'

raha1234567
سه شنبه 27 آبان 1393, 23:34 عصر
اگر زحمت خوندن این لینک ها رو به خودتون میدادید با این کد مشکلتون برطرف میشد


$connection = new PDO ( "mysql:host=localhost; dbname=blog", 'root', '' );

if ($connection->query ("DESCRIBE `comment`" )) {
echo "exist";
} else {
echo "doesn't exist";
}


من خوندم تازه کد سرچ جدول هم پیدا کردم ولی بازم ایراد میگیره و میگه پیدا نکردم



$tbl= mysql_query("SELECT table_name FROM information_schema.tables WHERE table_schema = '$jobs'
AND table_name = '".$_POST["tsearch"]."';");

googoli
سه شنبه 27 آبان 1393, 23:43 عصر
چرا از این کد استفاده نمی کنی


if (mysql_query("SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'" )) {
echo "exist";

} else {
echo "doesn't exist";
}

raha1234567
سه شنبه 27 آبان 1393, 23:49 عصر
چرا از این کد استفاده نمی کنی


if (mysql_query("SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'" )) {
echo "exist";

} else {
echo "doesn't exist";
}


از این هم استفده شد همش بهم exist میده

googoli
سه شنبه 27 آبان 1393, 23:57 عصر
خب برای این هست که باید اینطوری شرط رو میذاشتی


if (empty(mysql_query("SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'" )))

بعدش چرا از pdo استفاده نمی کنی ؟

raha1234567
چهارشنبه 28 آبان 1393, 00:05 صبح
خب برای این هست که باید اینطوری شرط رو میذاشتی


if (empty(mysql_query("SHOW TABLE STATUS FROM db_name LIKE 'tbl_name'" )))

بعدش چرا از pdo استفاده نمی کنی ؟

دیگه کلا این خطا رو میده

Fatal error: Can't use function return value in write context in C:\wamp\www\jobs\jobsbank.php on line 86

raha1234567
چهارشنبه 28 آبان 1393, 00:05 صبح
اینم کل صفحه من


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
#form1 table tr td label {
position: static;
}
#tsearch{
width: 600px;
border-width: 2;
height: 40px;
}
#tsearch{alignment-baseline:central}
#tsearch{alignment-adjust:central}
#bsearch{
width: 150px;
border-width: 2;
height: 30px;
}
</style></head>

<body>
<form id="form1" name="form1" method="post" action="">
<table width="1350" height="506" border="0">
<tr>
<td height="39">&nbsp;</td>
</tr>
<tr>
<td height="199">&nbsp;</td>
</tr>
<tr>
<td height="72"><label for="tsearch"></label>

<table width="1347" height="70" border="0">
<tr>
<td width="456" height="66">&nbsp;</td>
<td width="727">
<label for="tsearch2"></label>
<input name="tsearch" type="text" id="tsearch" width="450" height="30" /></td>
<td width="150">&nbsp;</td>
</tr>
</table></td>
</tr>
<tr>
<td height="95"><table width="1343" border="0">
<tr>
<td width="669">&nbsp;</td>
<td width="518"><input type="submit" name="bsearch" id="bsearch" value="جستجو" /></td>
<td width="142">&nbsp;</td>
</tr>
</table></td>
</tr>
<tr>
<td height="75">&nbsp;</td>
</tr>
</table>
</form>

<?php
if (isset($_POST["tsearch"]))
{
$sn="localhost";
$user="root";
$pass="";
$dbn="jobs";
$link=mysql_connect($sn,$user,$pass) or die(mysql_error());
mysql_query("SET Names 'utf8'");
mysql_select_db($dbn,$link);

//پیدا کردن جدول مورد نظر
//$tbl1=mysql_query("SELECT pic FROM '".$_POST["tsearch"]."'
//WHERE EXISTS("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE ='BASE TABLE' AND TABLE_NAME
// = '".$_POST["tsearch"]."' ")");
// $tbl= mysql_query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLES_SCHEMA = '$jobs'
// AND TABLE_NAME = '".$_POST["tsearch"]."';");

//$tbl1=mysql_query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE ='BASE TABLE'
// AND TABLE_NAME ='".$_POST["tsearch"]."' ");

//$result=mysql_query("SELECT pic FROM $tbl1");

// $row = mysql_fetch_array($tbl1);
if (empty(mysql_query("SHOW TABLE STATUS FROM 'jobs' LIKE '".$_POST["tsearch"]."'" ))) {
print("Exists");

} else {
print("Doesn't exist");
}
/*if($tbl!==TRUE){
print("Exists");
}
else
{
print("Doesn't exist");
}*/
// header('location:kafinet.php');}

}
?>



</body>
</html>

raha1234567
چهارشنبه 28 آبان 1393, 00:07 صبح
با pdo تا بححال کار نکردم نمیدونم چطوریه :افسرده: