Cum să verificați dacă o coloană mysql nu este NULL?

Urmărim dacă cineva este "artist" cu MySQL. Dacă utilizatorul este un artist, coloana artistului merge de la NULL la Y, am sortit această parte. Cu toate acestea, nu pot afla cum să verificați dacă coloana artistului pentru utilizator este Y, astfel încât să pot dezactiva funcțiile pentru acel utilizator. Site-ul folosește în principal cookie-urile pentru conectări, așa că trebuie să am verificarea interogării pentru Y unde numele de utilizator și parola sunt egale cu cookie-ul. Când artistul = conținutul Y ar trebui afișat.

Iată ce am până acum:

$username = $_COOKIE['username']; 
$pass = $_COOKIE['password']; 
include ("../database.php");

if (mysql_query("SELECT artist FROM members WHERE username='$username' ,
       artist = 'Y'")) {

    //artist specific content goes here
   echo '<div class="bubble">

Artist

<div class="innerbubble">Some text</div></div>'; 
}

Știi ce să faci acum.

0
care este problema?
adăugat autor FSP, sursa
Utilizarea AND din clauza WHERE ar trebui să stabilească cel puțin o problemă.
adăugat autor FSP, sursa
Ați încercat WHERE username = '$ username' ȘI artist = 'Y' în loc de ','
adăugat autor Jerome WAGNER, sursa
Ați încercat WHERE artistul NULL sau ceva similar?
adăugat autor Andy Jones, sursa
După cum a subliniat Jerome, interogarea ar trebui să fie WHERE username = '$ username' ȘI artist = 'Y' . O altă alternativă ar fi ȘI artistul NU ESTE NULL .
adăugat autor jweyrich, sursa
MySQL acceptă interogări precum WHERE abc IS NULL sau WHERE xyz NU ESTE NULL - aceasta ajută?
adăugat autor jedwards, sursa

3 răspunsuri

 //artists if
   $username = $_COOKIE['username']; 
   $pass = $_COOKIE['password']; 
   include ("../database.php");
   $result = mysql_query("SELECT artist FROM members WHERE username='$username' , artist = 'Y'");
   $count = mysql_num_rows($result);

 //check the total count for artist 
      if ($count > 0) {
     //artist specific content goes here

       echo '<div class="bubble">

Artist

<div class="innerbubble">Hi there, I see       that yo are an artist so you have access to loads of awesome features. Contact us with ease, upload new tracks, share your street sessions and tell everyone about your latest gigs.</div></div>'; 
   }
0
adăugat

Cred că doriți următoarele cu interogarea dvs.:

 $res = mysql_query("SELECT count(*) FROM members WHERE username='$username' AND artist = 'Y' LIMIT 1");
   if($res){
     $count = mysql_fetch_array($res);
         if($count[0]>0){
       /* Artist content goes here */
         }
    } 
0
adăugat

Am câteva recomandări dincolo de ceea ce au sugerat alte răspunsuri.

1) Cookie-urile sunt excelente pentru dezvoltare, dar pot fi vizualizate și editate de proprietarii lor. Aș sugera utilizarea sesiunilor; puteți păstra în continuare informații despre un utilizator în ele, dar nu este accesibil de acel utilizator.

2) Declarații pregătite, declarații pregătite, declarații pregătite! Dacă îmi dau numele de utilizator

'; DELETE FROM members;--

tabelul dvs. de membri ar fi dezactivat! Prin utilizarea unei instrucțiuni pregătite, șirurile transmise interogării sunt parametrizate și nu sunt transmise literalmente.

Guide:
http://www.php.net/manual/en/pdo.connections.php
http://www.php.net/manual/en/pdo.prepared-statements.php

Folosind instrucțiunile pregătite, interogarea devine

SELECT artist FROM members WHERE username=? AND artist='Y'
0
adăugat
Bună, mulțumesc pentru sfat. Am avut în vedere utilizarea sesiunilor, dar am mers pentru cookie-uri, deoarece am vrut ca utilizatorul să rămână conectat pentru o perioadă mai lungă de timp. Nu am putut vedea ce pagubă ar putea face utilizatorul dacă ar fi fost editat cookie-ul așa că a mers pentru ei. Ce vrei să spui prin faptul că numele de utilizator este setat ca "... DELETE ..."? Înseamnă că utilizatorul se poate înregistra pur și simplu cu acel nume, iar întregul tabel este șters?
adăugat autor Jacob Windsor, sursa
PHP România, Moldova
PHP România, Moldova
173 participanți

Vorbim despre Yii, Laravel, Symphony, MySQL, PgSQL, WP, OpenCart... Pentru confort, opriți notificările. Parteneri: https://ciupacabra.com @js_ro @node_ro @python_ro @seo_ro @Romania_Bot Offtop: @holywars_ro Joburi: @php_job @Grupuri_IT

MySQL - comunitatea Română
MySQL - comunitatea Română
19 participanți

Comunitatea română a programatorilor MySQL.