İçeriğe geç
ShiftDelete.Net
Haber ara/ SDN'ye SorGiriş
Haber Akışı SDNTV İnceleme Forum Yapay Zeka Akıllı Telefon Elektrikli Otomobil Oyun ShiftDelete.Net Global Teknoloji Haberleri Mobil Otomobil Donanım Savunma Bilim Sosyal Medya İnternet Giyilebilir Teknoloji Rehber Ürünler Son dakika Yazarlar
  1. Ana sayfa
  2. Topluluk
  3. Programlama
  4. Web Programlama (PHP, ASP, HTML, CSS, JavaScript)
Web Programlama (PHP, ASP, HTML, CSS, JavaScript)

PHP MYSQL Hatası ?

thetech24.09.20138 cevap7.240 görüntüleme
2012'den beri91 mesaj
#1

[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
$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
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.
Cevaplar
2011'den beri9.780 mesaj
#2
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.
2012'den beri74 mesaj
#3
eSa dedi: ↑
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 Konuyu açan
2012'den beri91 mesaj
#4

@eSa @mrtAkdeniz

Hata


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:

$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)
2012'den beri74 mesaj
#5
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 Konuyu açan
2012'den beri91 mesaj
#6
check.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
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
2013'den beri218 mesaj
#7
bu hatalar bu meslekte daha bir sey degil
2012'den beri74 mesaj
#8
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.
2013'den beri6 mesaj
#9
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..

Cevabını yaz

Cevap yazmak için giriş yap ya da üye ol. Eski forum kullanıcı adın ve parolanla girebilirsin.