Autor Zpráva
SirDoxik
Profil
                                if (isset($steamauth['loginpage']))
                                {
                                    
                                    $steamid = $_SESSION['steamid'];
                                    $findIdInDb = mysql_query("SELECT id FROM users WHERE steamid = '".$steamid."'") or die("Mysql ERROR in finding");
                                    $control = mysql_fetch_row($findIdInDb);
                                    
                                    if ($control == 0) {
                                        
                                        mysql_query("INSERT INTO users VALUES ('','".$steamid."','')") or die("Mysql ERROR in saving");
                                        
                                    }
                                    header('Location: '.$steamauth['loginpage']);
                                }
                               
                        }
                       
                        else
                        {
                                echo "User is not logged in.\n";
                        }
       
                }
Dobrý den, tento kód mi hází chybu MYSQL error finding, ale nemohu najít, kde je problém. S PHP jsem absolutní začátečník
smiesek
Profil
SirDoxik:
jsem taky zelenáč v php, a spíše dělám škodu, než užitek :( až se snažím a trápím, tak to prosím berte s rezervou, ale podle mě na tom 5. řádku ještě chybí proměnná pro spojení do DB tedy zkusila bych něco jako
$findIdInDb = mysql_query("SELECT id FROM users WHERE steamid = '".$steamid."'", $spojeni) or die("Mysql ERROR in finding");
kde právě proměnná obsahuje údaje pro DB = jméno hostitele, přihlašovací jméno, heslo

Případně zkuste vložit sem celý obsah souboru, líp a rychleji se určitě najde chyba
SirDoxik
Profil
smiesek:
takhle to nefunguje. Pro spojení jsem použil už před tím
mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error());
mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());    
Kajman
Profil
SirDoxik:
Vypište si chybu. Tipuji na špatné připojení nebo chybějící tabulku.
SirDoxik
Profil
Kajman:
tabulku mám a připojení mi pokud selže vypíše chybu viz #3
Kajman
Profil
Vypište si tu chybu (obdobně jak při připojení), pak se dá poradit.
SirDoxik
Profil
já tam tu chybu vypsanou mám, ta chyba je $findIdInDb = mysql_query("SELECT id FROM users WHERE steamid = '".$steamid."'") or die("Mysql ERROR in finding");
Kubo2
Profil
SirDoxik:
Nemáš. Vypíš si reálnu chybu vrátenú MySQL serverom.

$findIdInDb = mysql_query("SELECT id FROM users WHERE steamid = '{$steamid}'") or die(mysql_error());
SirDoxik
Profil
Kubo2:
děkuju moc. Už jsem to vyřešil.


Teď jsem zjistil že né úplně. Script mi sice do db id přídá ale pokaždé i když databáze již toto id obsahuje.
                                    mysql_connect(SQL_HOST, SQL_USERNAME, SQL_PASSWORD) or die("Nelze se připojit k MySQL: " . mysql_error());
                                    mysql_select_db(SQL_DBNAME) or die("Nelze vybrat databázi: ". mysql_error());    
                                    
                                    $steamid = $_SESSION['steamid'];
                                    $findIdInDb = mysql_query("SELECT `steamid` FROM `users` WHERE `steamid` = '".$steamid."'") or die(mysql_error());
                                    $control = mysql_fetch_row($findIdInDb);
                                    
                                    if ($control == 0) {
                                        
                                        mysql_query("INSERT INTO `users` VALUES ('','".$steamid."','')") or die(mysql_error());;
                                        
                                    }
                                    else {
                                        header('Location: '.$steamauth['loginpage']);
                                    }
Zde je kód.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: