Kezdőoldal » Számítástechnika » Programozás » Php programozásban szeretnék...

Php programozásban szeretnék segítséget kérni?

Figyelt kérdés

Sziasztok.

Nem rég vettem egy könyvet és nem nagyon értek benne valamit, egész pontosan a felkiáltó jel funkciót.

Például empty-nél és issetnél.

Az értem ha pl sima empty van akkor azt vizsgálja, hogy üres e ha !empty van akkor azt, hogy nem üres e, issetnél ugyan ez csak megadással.


Konkrétan azt nem értem, hogy pl ha csinálok egy űrlapot

és sima empty-t adok neki, és megjelenítettem az adott file-t azonnal ki írja hogy az adott változó hiányzik, de ettől függetlenül beküld egy üres adatbázist, ha felkiáltó jellel csinálom akkor is üres adatbázist de, annyi különbséggel, hogy ha beküldöm az űrlap adatokat akkor írja ki.


Példákul

if(isset($_POST['bekuld'])) {


$változó1 = $_POST['valtozo1'];

$változó2 = $_POST['valtozo2'];


if(empty($változó1)) {

echo "Nem adtad meg az egyes változót";

}


if(empty($változó2)) {

echo "Nem adtad meg az kettes változót";

}


mysql_query("INSERT INTO tabla_nev (adat) VALUES ('$valtozo')");


}//beküld lezárás


igye ide jön a form a bekuld azonosítóval


És ennek ellenére a fent emlitett probálkozási hibák jönnek be.


Valaki ha lenne olyan kedves elmagyarázná nekem mit csinálok rosszul?


Köszönöm


2010. júl. 28. 12:15
 1/6 anonim ***** válasza:

Azért küldi be, mert az if-nél csupán végrehajtódik az adott utasítás

if(empty($változó2)) {

echo "Nem adtad meg az kettes változót";

}

Végrehajtódik a kiíratás, és utána folytatódik a program a } után, ahhoz, hogy ezt megold csináld így:

if(empty($változó1))

{

echo "első üres\n";

}elseif(empty($változó2))

{

echo "második üres\n";

}else{

//mysql-be írás

}

Még egy tanács, ne használj ékezetes változóneveket.

A ! pedig nem más, mint az eredményt negálja (megfordítja), ami eredetileg igaz (true) az hamis (false) lesz, a hamis pedig igaz.

2010. júl. 28. 13:52
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:

Egy kicsit pontosítanák a válaszomon, most jut eszembe,m ha elseif-el vizsgálod, az nem írja ki, ha mindkettő hiányzik, a legjobb, ha egy feltételen belül megvizsgálod, hogy mindkettő megvan-e, ha egyik hiányzik, akkor megvizsgálod, melyik hiányzik

if((empty...) or (empty...))

{

if(empty...)


}else

//mysql

2010. júl. 28. 13:57
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:
köszönöm a választ, megprobálom
2010. júl. 28. 13:59
 4/6 A kérdező kommentje:

megmondom szintén így kicsit zavaros, mert belegabalyodok a sok if-be.

Azért tettem fel ezt a kérdést valójában mert megnéztem mások kódolását én ott sima empty kapcsos zárójelek nélkül ezt nem értem, és azok az ellenőrzők előtt van felkiáltójel ami functions egyedi ellenőrzők formájában van kialakítva

2010. júl. 28. 15:08
 5/6 anonim ***** válasza:

A kapcsos zárójelet csak akkor lehet elhagyni, ha a végrehajtandó utasítás egy sor, ha több, akkor mindenképpen kell, ha egy, akkor pedig oda lehet tenni. Itt van konkrétan, hogy hogyan gondoltam:

if(isset($_POST['bekuld']))

{

$változo1 = $_POST['valtozo1'];

$változo2 = $_POST['valtozo2'];

if(empty($valtozo1) or empty($valtozo2)) //ha valami hiányzik

{

if(empty($változo1)) {

echo "Nem adtad meg az egyes változót<br>";

}

if(empty($változo2)) {

echo "Nem adtad meg az kettes változót<br>";

}

}else //ha mindkettő meg van adva

mysql_query("INSERT INTO table_name SET valt1='$valtozo1', valt2='valtozo2'");


És mint írtam, akkor tegyél elé felkiáltójelet, ha azt szeretnéd ellenőrizni, hogy van-e, nem pedig, hogy nincs-e

Nem sok különbség lenne a programban.

Hogy ne gabalyodj bele az if, {}-be, tagold a programot, azaz ha nyitsz egy kapcsos zárójelet, akkor nyomj egy tabulátor-t beljebb, a Notepad++ nagyon sokat segíthet ebben, ugyanis nem ugrik vissza minden sorban, tehát nem kell minden sorban újra és újra behúzni a kódot, illetve összekapcsolja, hogy melyik kapcsos zárójel melyikkel tartozik össze, nagyobb programoknál ez nagy segítség.

2010. júl. 28. 15:29
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
köszönöm szépen :)
2010. júl. 29. 10:10

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!