PHP MYSQL Hatası ?

thetech

Öğrenci
Katılım
9 Ocak 2012
Mesajlar
91
Reaksiyon puanı
0
Puanları
0
Kod:
[B]Warning[/B]:  mysql_query() expects parameter 1 to be string, resource given in [B]D:\xampp\htdocs\webmakale\check.php[/B] on line [B]13[/B]

[B]Warning[/B]:  mysql_num_rows() expects parameter 1 to be resource, null given in [B]D:\xampp\htdocs\webmakale\check.php[/B] on line [B]14[/B]


config.php
PHP:
<?php
$host="localhost";
$db="wm";
$user="wmdbuser";
$pass="wmdbpass";
$baglan=@mysql_connect($host,$user,$pass) or die("Mysql Baglanamadi");
mysql_select_db($db,$baglan) or die("Veritabanina Baglanilamadi");
?>


sorgu.php
PHP:
<?php
error_reporting (E_ALL ^ E_NOTICE); 
ob_start();


include("config.php");


$q_kullaniciadi = htmlentities($_POST["kullaniciadi"]);
$q_parola = htmlentities($_POST["parola"]);


$sorgu = mysql_query($baglan,"SELECT * FROM KULLANICILAR WHERE KULLANICIADI='".$q_kullaniciadi."' AND PAROLA='".$q_parola."' AND AKTIF='1' LIMIT 0 , 1");
$uye_varmi = mysql_num_rows($sorgu);
if($uye_varmi > 0)
{    
    if(mysql_fetch_array($sorgu))  {
    $_SESSION["login"] = "true";
    $_SESSION["kullaniciadi"] = $kullaniciadi;
    $_SESSION["pass"] = $parola;
        
...
...
...

Hatanın nerde olduğunu bi türlü bulamadım. Veritabanında kullanıcı kaydı bulunmakta. Servere ve dbye bağlantı kuruyor ancak yukardaki hatayı veriyor. İnternette boş kayıtla alakalı bilgilendirme var ama aynı sorgu mysql panelinde sonuç dönderiyor.

Daha önce php/mssql çalışması yaptım ancak php/mysql ile hiç çalışmadım.
 

eSa

Dekan
Katılım
5 Kasım 2011
Mesajlar
9,782
Reaksiyon puanı
352
Puanları
263
mysqlquery(sorgu,bağlan) olmayacak mı?

sen (bağlan,sorgu ) demişsin.

- - - Mesaj Güncellendi - - -

Ayrıca $kullaniciadi ve $parola yerine, $q_kullaniciadi ve $q_parola olmalı gibi.
 

mrtAkdeniz

Öğrenci
Katılım
19 Eylül 2012
Mesajlar
74
Reaksiyon puanı
0
Puanları
0
mysqlquery(sorgu,bağlan) olmayacak mı?

sen (bağlan,sorgu ) demişsin.

- - - Mesaj Güncellendi - - -

Ayrıca $kullaniciadi ve $parola yerine, $q_kullaniciadi ve $q_parola olmalı gibi.
@thetech, @eSa haklı oradaki değişkenleri düzeltmen gerek yoksa değişken boş tanımlanır. İkinci olarak check.php sayfanı da buraya aktarabilirsen daha sağlıkla geri dönüş yapabilirim.

Düzeltme: Eğer check.php sayfanız sadece formu barındırıyorsa eklemenize gerek yok, bunun yerine sorgudaki LIMIT'i kaldırmayı deneyin.
 

thetech

Öğrenci
Katılım
9 Ocak 2012
Mesajlar
91
Reaksiyon puanı
0
Puanları
0
szr9x.png

@eSa @mrtAkdeniz

Hata
PHP:
13.Satır: $sorgu = mysql_query($baglan,"SELECT * FROM KULLANICILAR WHERE KULLANICIADI='".$q_kullaniciadi."' AND PAROLA='".$q_parola."' AND AKTIF='1' LIMIT 0 , 1");

14.Satır: $uye_varmi = mysql_num_rows($sorgu);

şeklinde sadece bu satırlardan dönüyor. Alt bölümde herhangi bir hata vermiyor. Proje canımı sıkınca değişkenlere karakter eklemiştim. Onları düzelttim. $sorgu bölümünü de dediğiniz gibi mysql_query($sorgu,$baglan) şeklinde düzenledim ancak gene aynı. LIMIT bölümünü düzenleyerek denedim sonuç aynı. Yaptığım küçük bir hata var ama bulamıyorum :blink:

Gecenin azizliği sorgu.php olarak gösterdiğim aslında check.php

Diğer yandan php5.x artık mysql_query çalıştırmayacak gibi birkaç makale okudum. PDO ve mysqli kullanılması gerekiyormuş. Acaba bu olabilir mi ?

Son Hali:
PHP:
$sorgu = mysql_query("SELECT * FROM KULLANICILAR WHERE KULLANICIADI='".$q_kullaniciadi."' AND PAROLA='".$q_parola."' AND AKTIF='1' LIMIT 1",$baglan);
$uye_varmi = mysql_num_rows($sorgu);
if($uye_varmi > 0)
 

mrtAkdeniz

Öğrenci
Katılım
19 Eylül 2012
Mesajlar
74
Reaksiyon puanı
0
Puanları
0
Sorguyu php üzerinden mysql_fetch_array ile döngüye sokup çıktıyı echo ile ekranın yazdırıp buraya yazar mısın? Yani $uye_varmi'nin altına bir de o sorgunun dönütünü aldıracak bir echo... Biliyorum phpMyAdmin'den almışsın çıktı ama syntax hatası olabilir kodlarında, bu yüzden sen o değerleri elle verdiğin zaman doğru sonuç almana rağmen php üzerinden boş sorgu çekiyor olabilir.
 

thetech

Öğrenci
Katılım
9 Ocak 2012
Mesajlar
91
Reaksiyon puanı
0
Puanları
0
check.php
PHP:
<?php
error_reporting (E_ALL ^ E_NOTICE); 
ob_start();

include("config.php");

$q_kullaniciadi = htmlentities($_POST["kullaniciadi"]);
$q_parola = htmlentities($_POST["parola"]);

echo "gelen veri: $q_kullaniciadi $q_parola";

$sorgu = mysql_query("SELECT * FROM KULLANICILAR WHERE KULLANICIADI='".$q_kullaniciadi."' AND PAROLA='".$q_parola."' AND AKTIF='1' LIMIT 1",$baglan);
$uye_varmi = mysql_num_rows($sorgu);

echo "<br> $uye_varmi Üye Bulundu...<br>";

while ($listele = mysql_fetch_array($sorgu))
 {
    $kadi=$listele['KULLANICIADI'];
    echo "$kadi<br>";
    $adi=$listele['ADI'];
    echo "$adi<br>";
    $soyadi=$listele['SOYADI'];
    echo "$soyadi<br>";
    $c=$listele['CINSIYET'];
    echo "$c<br>";
    $yetki=$listele['YETKI'];
    echo "$yetki<br>";
    }
?>

@mrtAkdeniz ilginçtir senin yazdığını okuduktan sonra alt bölümdeki while bölümünü sildim
PHP:
echo "<br> $uye_varmi Üye Bulundu...<br>";
satırını ekledim ve sonuç döndü. while ekledim, bilgiler geldi. 2 gece 4'e kadar, dün de arabayı serviste beklerken 6 saat boyunca kıvrandırdı :hammer: Vay arkadaş...

Yardımlarınız için teşekkürler, İlk projem olduğu için daha çookk hata alıp sinir olucam, o yüzden yardımlarınızın devamını beklerim :D
 

hdoru

Asistan
Katılım
25 Eylül 2013
Mesajlar
218
Reaksiyon puanı
0
Puanları
0
bu hatalar bu meslekte daha bir sey degil
 

mrtAkdeniz

Öğrenci
Katılım
19 Eylül 2012
Mesajlar
74
Reaksiyon puanı
0
Puanları
0
Biz yardım etmemişiz kendin çözmüşsün zaten ama bir dahakine bir sorununda döngünü de eklersen daha kolay sonuç alırsın. En çok hata yapılan yerler döngülerdir.
 

actueeldesign

Öğrenci
Katılım
30 Ekim 2013
Mesajlar
6
Reaksiyon puanı
0
Puanları
0
Bu kodlardab anladigim kadari ile database baglantisini mysqli_connect ile yapmissin. Eger oyle ise heryerde mysqli kullanman lazim. Onuda su seklidre yapman gerek mysqli->query .... gibi..
 
Üst