Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Jednostavan SELECT problem

[es] :: PHP :: Jednostavan SELECT problem

[ Pregleda: 675 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Candy Guru
Novi Sad

Član broj: 128972
Poruke: 10
*.ptt.rs.

Sajt: www.eyecandystudio.info


Profil

icon Jednostavan SELECT problem02.07.2009. u 10:49 - pre 180 meseci
Problem nastaje sa najobichnijim SELECT upitom, i to NE na mojoj lokalnoj mashini, nego tek kada skript uploadujem na provajderov server. Da bih lakse locirao gde je problem, napravio sam jednu test tabelu u bazi i jedan prost php skript, ovako:
Code:
<?php

$upit = "SELECT * FROM testtable";
$findRes = $connection -> query($upit);
$numOfRes = $findRes -> num_rows;

echo 'redova:'.$numOfRes.'<br />';

if($numOfRes)
{
    for($i=1; $i<=$numOfRes; $i++)
    {
        $row = $findRes -> fetch_assoc();
        echo stripslashes($row['testText']);
        echo '<br />';
    }
}

?>


...i problem je isti: kod mene radi, a "gore" ne izbacuje NISTA. Kao da nije nasao ni jedan red u tabeli.
Da stvar bude jos cudnija, za sajt koji radim imam vec 9 tabela i 15-20 skriptova i svi bez izuzetka rade kako bi trebalo, i na "lokalu" i "gore".
Ono na sta ja sumnjam je sledece:
kada sam prvi put uploadovao skriptove na server - nijedan nije radio. Kontaktirao sam provajdera i ispostavilo se da su mi obezbedili PHP4, dok sam ja radio objektno orijentisano u PHP5. Na moju molbu - preselili su me na PHP5, i sve je bilo OK. Sve je ferceralo. Posle toga, ovo je prvi novi skript koji sam napisao i podigao na server od tada - i eto sta mu se desilo. (Tacnije, sad su to vec 2; jedan "pravi" i ovaj za test). Da li tu negde lezhi zec?? Shta da radim?
Hvala.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Jednostavan SELECT problem02.07.2009. u 11:15 - pre 180 meseci
el ti izbaci praznu stranu (greska u php-u) ili ti izbaci stranu normalno ali bez rezultata ?

ovo bi "trebalo" da radi .. ali nisi napisao ceo skript (kako se konektujes na bazu, kako detektujes greske ...) aj baci copy/paste "ceo" skript (samo stav username i password neke dummy vrednosti posto nam to ne treba) ..

dakle stavi jedan php fajl koji gore ne radi pa da vidimo sto ...

takodje - bitno je da li izbaci full blanko stranu ili izbaci html bez rezultata (ovakav skrip bas i nije dobar test ... dodaj echo "pocetak" i echo "kraj" na pocetak i kraj .. cisto da stamps "nesto" bez obzira da li ima ili nema rezultata) .. ako dobijas praznu stranu i onda - pogledaj da li mozes da dodjes do php log-a ili da li mozes da upalis (sa .htaccess na primer) show_errors na on - pa da vidis "de ti je greska" posto je u php-u ... tj verovatno u php mysql konektoru
 
Odgovor na temu

Candy Guru
Novi Sad

Član broj: 128972
Poruke: 10
*.ptt.rs.

Sajt: www.eyecandystudio.info


Profil

icon Re: Jednostavan SELECT problem02.07.2009. u 11:30 - pre 180 meseci
E, hvala na odgovoru.

Ne izbacuje blanko stranicu. Pishe: "redova:", i to je sve.

Ovo je konekcija:
Code:

$host = '***';
$user = '***';
$password = '***';
$db_name = '***';

$connection = new mysqli($host, $user, $password, $db_name);

if (mysqli_connect_errno())
    {
    echo 'Error: could not connect to database';
    exit;
    }

$setEnc = "SET NAMES 'utf8'";
$connection -> query($setEnc);


Probao sam u onaj skript da ubacim i
Code:
echo $findRes->error;
, ali ne pokazuje nista.

Krajnje mi je chudno shto skriptovi koje sam radio pre onog transfera sa php4 na php5, i dalje rade bez problema, a ima ih kud i kamo komplikovanijih od ovog, pri chemu svi imaju identichnu rutinu.

Naravno, poslednja opcija mi je da opet iscimam tehnichku podrshku provajdera, ali to necu da chinim dok ne iscrpim ostale mogucnosti... poshto, kao, kontam da nije njihov posao da me uche PHP-u :P
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Jednostavan SELECT problem02.07.2009. u 12:01 - pre 180 meseci
to treba da radi:

Code:


[arhimed@gedora10 ~]$ php
<?php

$host = '127.0.0.1';
$user = 'root';
$password = '';
$db_name = 'test';

$connection = new mysqli($host, $user, $password, $db_name);

if (mysqli_connect_errno())
    {
    echo 'Error: could not connect to database';
    exit;
    }

$setEnc = "SET NAMES 'utf8'";
$connection->query($setEnc);
$upit = "SELECT * FROM a";
$findRes = $connection->query($upit);
$numOfRes = $findRes->num_rows;

echo 'redova:'.$numOfRes.'<br />';

if($numOfRes)
{
    for($i=1; $i<=$numOfRes; $i++)
    {
        $row = $findRes -> fetch_assoc();
        echo stripslashes($row['i']);
        echo '<br />';
    }
}

?>
^D
redova:8<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />1<br />[arhimed@gedora10 ~]$ 
[arhimed@gedora10 ~]$ 



jedina mogucnost je da ti ne valja query ... dakle ako probas query koji ne valja (na primer tabela znj ne postoji):

Code:

[arhimed@gedora10 ~]$ php
<?php

$host = '127.0.0.1';
$user = 'root';
$password = '';
$db_name = 'test';

$connection = new mysqli($host, $user, $password, $db_name);

if (mysqli_connect_errno())
    {
    echo 'Error: could not connect to database';
    exit;
    }

$setEnc = "SET NAMES 'utf8'";
$connection->query($setEnc);
$upit = "SELECT * FROM znj";
$findRes = $connection->query($upit);
$numOfRes = $findRes->num_rows;

echo 'redova:'.$numOfRes.'<br />';

if($numOfRes)
{
    for($i=1; $i<=$numOfRes; $i++)
    {
        $row = $findRes -> fetch_assoc();
        echo stripslashes($row['i']);
        echo '<br />';
    }
}

?>
^D
PHP Notice:  Trying to get property of non-object in /home/arhimed/- on line 20
redova:<br />[arhimed@gedora10 ~]$ 


dakle ako je upit "puko" ili nije vratio rezultat onaj "findRes" nije objekat .. te onda treba nesto ovako:
Code:

<?php

$host = '127.0.0.1';
$user = 'root';
$password = '';
$db_name = 'test';

$connection = new mysqli($host, $user, $password, $db_name);

if (mysqli_connect_errno())
    {
    echo 'Error: could not connect to database';
    exit;
    }

$setEnc = "SET NAMES 'utf8'";
$connection->query($setEnc);
$upit = "SELECT * FROM a";
$findRes = $connection->query($upit);

if($findRes){
  $numOfRes = $findRes->num_rows;

  echo 'redova:'.$numOfRes.'<br />';

  if($numOfRes)
  {
      for($i=1; $i<=$numOfRes; $i++)
      {
          $row = $findRes -> fetch_assoc();
          echo stripslashes($row['i']);
          echo '<br />';
      }
  }

} else {
  echo 'nema redova';
}

?>

 
Odgovor na temu

Candy Guru
Novi Sad

Član broj: 128972
Poruke: 10
*.ptt.rs.

Sajt: www.eyecandystudio.info


Profil

icon Re: Jednostavan SELECT problem02.07.2009. u 12:17 - pre 180 meseci
"Nema redova".

Ne vredi.
Ranije sam imao problem shto kod sebe nisam morao da vodim rachuna o malim i velikim slovima u upitima, tj. nazivu tabele, dok "gore" jeste bilo case sensitive. Zato sada dobro pazim kako "oslovljavam" tabele. Takodje sam 100 puta proverio da li ima neke razlike u tabelama kod mene i onim na provajderovom serveru... i nema razlike.
 
Odgovor na temu

bogdan.kecman
Bogdan Kecman
"specialist"
Oracle
srbistan

Član broj: 201406
Poruke: 15887
*.31.24.217.adsl2.beograd.com.

Sajt: mysql.rs


+2377 Profil

icon Re: Jednostavan SELECT problem02.07.2009. u 12:24 - pre 180 meseci
ako ti vrati nema redova - znaci da ti query nije vratio resultset...

ako imas direktan pristup bazi, okaci se iz nekog klijenta ... ili digni gore phpmyadmin pa iz njega pusti taj query .. videces da ti taj query ne vraca rezultat .. dakle nije greska ni do php-a, ni do provajdera ni do mysql-a ... "ne valja ti query" ... uzmi i zameni taj query sa "SELECT 1" pa da vidis kako ce da radi ... dakle nesto ti u query-u ne valja ...

ako ti je query bukvalno "select * from testtable" .. proveri
- da li imas tabelu testtable
- da li se tabela testtable zove "bas tako" dakle sve malim slovima ...

tabele su na mysql-u case sensitive ako se datadir nalazi na case sensitive fajl sistemu a svi normalni fajl sistemi su case sensitive tako da "na zalost" moras o tome da vodis racuna.

ima opcija na serveru da se to ugasi (automatski sve prebacuje u mala slova) ali tesko da ces nagovoriti provajdera da to uradi ... obrati paznju na imena tabela ..

sve u svemu - dignes gore phpmyadmin ili se direktno od kuce kacis nekim klijentom ako ti to provajder dozvoljava (na primer mysql workbench 5.1 ima odlican query browser integrisan) i vidis lepo sta ti fali sa upitom
 
Odgovor na temu

Candy Guru
Novi Sad

Član broj: 128972
Poruke: 10
*.ptt.rs.

Sajt: www.eyecandystudio.info


Profil

icon Re: Jednostavan SELECT problem02.07.2009. u 12:54 - pre 180 meseci
Postoji vec phpMyAdmin gore. Evo, copy-paste u SQL prozor: SELECT * FROM testtable
i prikazao mi tabelu, sve uredno...
Nema druge nego cu da gnjavim tehnichku podrshku.

Hvala na vremenu!
 
Odgovor na temu

Candy Guru
Novi Sad

Član broj: 128972
Poruke: 10
*.ptt.rs.

Sajt: www.eyecandystudio.info


Profil

icon Re: Jednostavan SELECT problem03.07.2009. u 12:49 - pre 180 meseci
Reshen problem. Ljudski faktor.
Kada su me premestili, dali su mi novu bazu i preselili sve u nju. Ja sam izmenio connection parametre, ALI nisam promenio user/pass za pristup phpMyAdmin interfejsu. Tako da sam sve vreme i dalje radio na staroj bazi (koju oni, iz nepoznatih razloga, nisu uklonili), dok su mi skriptovi pristupali novoj.
Eto... bzvz.

Case closed.
 
Odgovor na temu

[es] :: PHP :: Jednostavan SELECT problem

[ Pregleda: 675 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.