Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Znowu SQL :/


Rekomendowane odpowiedzi

Opublikowano

Siemka :D to znowu ja :(.

Mam problem, zrobiłem stronę, wszystko ładnie się wyświetla co powinno (gildie, nicki, ranking itp...) ale jeżeli ktoś nie jest w żadnej gildii (NULL w kolumnie) to w informacjach o graczu wywala błąd który zrobiłem :/.

Tak wygląda ktoś kto jest w gildii:

770821406229693924811.jpg

 

A tak ktoś kto nie jest w żadnej gildii:

153681406229693924811.jpg

 

Tu jest kod:

 

 

<?php
$usr = addslashes($_GET['graczID']);
$query  = "SELECT * FROM gracze where graczID= '$usr'";
$result = mysql_query($query) or die("Query failed");
$urow = mysql_fetch_array($result);
echo 'Gracz: <b>' . $urow["nick"] . '</b><br>Punkty: <b>' . $urow["ranking"]."</b>";
 
$query  = "SELECT gildiaID, tag, liderID, nazwa FROM gildie WHERE gildiaID=".$urow['gildiaID'];
$result = mysql_query($query) or die("Query failed");
$grow = mysql_fetch_array($result);
 
$query  = "SELECT nick FROM gracze WHERE graczID=".$grow['liderID'];
$result = mysql_query($query) or die("Query failed");
$lrow = mysql_fetch_array($result);
 
echo '<br>Gildia: <a href="gildia.php?gildiaID='.$urow['gildiaID']. '"><b>' . $grow['nazwa'].'</b></a><br />Tag gildii: <a href="gildia.php?gildiaID='.$urow['gildiaID']. '"><b>'.$grow['tag'].'</b></a><br />Lider gildii: <a href="player.php?graczID='.$grow['liderID']. '"><b>'.$lrow['nick']. '</b></a>';
$usr = addslashes($_GET['graczID']);
$query  = "SELECT * FROM gracze where graczID= '$usr'";
$result = mysql_query($query) or die("Query failed");
$urow = mysql_fetch_array($result);
echo "<br><h3>".$urow["nick"]. " Ostatnio zabił:</h3>";
?>

 

 

 

Za pomoc jak zawsze "LUJKI" :D 

 

Domyślam się także że będzie coś w stylu if($urow['gildiaID'] === NULL) czy coś takiego :P ale nie wiem miałem tylko tydzień wolnego od PC a od PHP i SQL'a  ok 2/3 tygodnie i już nic nie pamiętam :(. Ahh no cóż, liczę na pomoc :)

Opublikowano

Ten kod to jakaś masakra :D Html łączony z php :D

Zainteresuj się jakimś innym językiem do back-endu (polecam ruby), albo przynajmniej jakimś frameworkiem MVC do tego phpa.

mjut.png
Opublikowano

Ten kod to jakaś masakra :D Html łączony z php :D

Zainteresuj się jakimś innym językiem do back-endu (polecam ruby), albo przynajmniej jakimś frameworkiem MVC do tego phpa.

Może się zainteresuję, ale później/kiedyś iż jeszcze nie ogarniam php'a nawet w 60% (tak mi się wydaję :P).

Jak dla mnie to PHP + HTML nie przeszkadza, co to za trud dodać znacznik HTML do PHP'a? i jaki to powoduje śmietnik w kodzie? :D ważne aby się dało doczytać.

 

PS. Nic nie wprowadzasz do tematu ;) ale nie wysyłam raporta bo powiedziałeś coś użytecznego dla mnie :D

Opublikowano


echo '<br>Gildia:'. (($urow['gildiaID'] == null) ? "Nie posiada" : $urow['gildiaID']) . '<a href="gildia.php?gildiaID='. (($urow['gildiaID'] == "null") ? "ErrorNieJestCzlonkiem" : $urow['gildiaID']) .'"><b>'.$grow['tag'].'</b></a><br />Lider gildii: <a href="player.php?graczID='.$grow['liderID']. '"><b>'.$lrow['nick']. '</b></a>';?>

 

Opublikowano

@Bumbap głupota, nie rozumiesz skryptu. ;)

<?php
$usr = addslashes($_GET['graczID']);
$query  = "SELECT * FROM gracze where graczID= '$usr'";
$result = mysql_query($query) or die("Query failed");
$urow = mysql_fetch_array($result);
echo 'Gracz: <b>' . $urow["nick"] . '</b><br>Punkty: <b>' . $urow["ranking"]."</b>";
 
$query  = "SELECT gildiaID, tag, liderID, nazwa FROM gildie WHERE gildiaID=".$urow['gildiaID'];
$result = mysql_query($query) or die("Query failed");
if(mysql_num_rows($result) > 0){
$grow = mysql_fetch_array($result);

$query  = "SELECT nick FROM gracze WHERE graczID=".$grow['liderID'];
$result = mysql_query($query) or die("Query failed");
$lrow = mysql_fetch_array($result);
 
echo '<br>Gildia: <a href="gildia.php?gildiaID='.$urow['gildiaID']. '"><b>' . $grow['nazwa'].'</b></a><br />Tag gildii: <a href="gildia.php?gildiaID='.$urow['gildiaID']. '"><b>'.$grow['tag'].'</b></a><br />Lider gildii: <a href="player.php?graczID='.$grow['liderID']. '"><b>'.$lrow['nick']. '</b></a>';
;
}else echo 'Brak gildii.';

echo "<br><h3>".$urow["nick"]. " Ostatnio zabił:</h3>";
?>
Naprawiłem i usunęłem zbędny skrypt.

Ten kod to jakaś masakra :D Html łączony z php :D

Zainteresuj się jakimś innym językiem do back-endu (polecam ruby), albo przynajmniej jakimś frameworkiem MVC do tego phpa.

Lecz się (lub porządnie naucz)... dobrze Ci radzę. ;)

@Edit jestem na telefonie, więc nie zedytuję skryptu (ucina mi tekst, Wave533 - mało RAM-u)...

$result = mysql_query($query) or die("Query failed");
if(mysql_num_rows($result) > 0){
$grow = mysql_fetch_array($result);
zamień na:

$result = mysql_query($query);
if(mysql_num_rows($result) > 0){
$grow = mysql_fetch_array($result);

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

teraz ciągle mam Query failed.

 

Zmieniałem poprawiałem i różne metody lecz nadal nic tzn ogólnie działa dla tych co sa w gildii.

 

@Writen to oświeć nas :)

 

//EDIT wiem o co chodzi z joinem np, SELECT gracze.graczID, gildie.gildiaID FROM gracze INNER JOIN gildie czy coś takiego? :D

Opublikowano

$query  = "SELECT gildiaID, tag, liderID, nazwa FROM gildie WHERE gildiaID=".$urow['gildiaID'];
$result = mysql_query($query) or die("Query failed");
if(mysql_num_rows($result) > 0){
$grow = mysql_fetch_array($result);
zamień na:

if($urow['gildiaID'] > 0){
$query  = "SELECT gildiaID, tag, liderID, nazwa FROM gildie WHERE gildiaID=".$urow['gildiaID'];
$result = mysql_query($query) or die("Query failed");
$grow = mysql_fetch_array($result);
;)

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

Nie rozumiem czemu nie korzystaszz MySQLi lub PDO, tylko z tej przestarzałej metody. Jest mało wygodna - jeżeli chodzi o moje zdanie.

Opublikowano

Nie rozumiem czemu nie korzystaszz MySQLi lub PDO, tylko z tej przestarzałej metody. Jest mało wygodna - jeżeli chodzi o moje zdanie.

1) Tutaj nie piszemy swojego zdania, tylko pomagamy. ;]

2) Trudno, tak już mają. Nie wiem czy wiedzą, że w dalszych wersjach php, ta biblioteka ma być usunięta.

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

Czyli SQl/MySQL nie będzie :D? czemu albo raczej możecie mi bardziej wytłumaczyć? Bo nie chcę się uczyć czegoś co nie będzie używane kiedyś :(. W HTML i CSS siedzę od roku, PHP i SQL kilka miesięcy (3-4msc).

Możecie mi powiedzieć kilka ciekawostek? coś co się zmini? coś co jeszcze polecacie (inne języki, nie długo też planuję uczyć się JAVY).

@1361622928-U485574.pngBlackPanda

Z góry znowu dzięki za odpowiedzi.

 

//EDIT

 

Nie rozumiem czemu nie korzystaszz MySQLi lub PDO, tylko z tej przestarzałej metody. Jest mało wygodna - jeżeli chodzi o moje zdanie.

 

 

Jak nie korzystam z MySQL'a? WTF raczej że używam?

 

//Nie doczytałem się wcześniej.

 

//EDIT

 

 

 

$query  = "SELECT gildiaID, tag, liderID, nazwa FROM gildie WHERE gildiaID=".$urow['gildiaID'];
$result = mysql_query($query) or die("Query failed");
if(mysql_num_rows($result) > 0){
$grow = mysql_fetch_array($result);
zamień na:
if($urow['gildiaID'] > 0){
$query  = "SELECT gildiaID, tag, liderID, nazwa FROM gildie WHERE gildiaID=".$urow['gildiaID'];
$result = mysql_query($query) or die("Query failed");
$grow = mysql_fetch_array($result);
;)

 

Kod działa jak powinien (tak mi się wydaje) jak ktoś nie ma gildii to po prostu nie wyświetlają się: gidlia, TAG, lider gildi.

Ale chciał bym to zamienić aby się wyświetlało ale że pisze "Brak gildii" Jak to zrobić? :(

 

//EDIT kurna mać kolejny problem :(

 

Bosze! Znowu problem który wcześniej mnie nie spotkał :( tzn tak jakby, na dole stronie zrobiłem że jest pokazane ostatnie zgony (ale to działa i nie w tym problem) teraz zrobiłem że w profilu gracza pokazuję kogo on zabił (ostatnie 12 osóB) lecz wyświetla tylko jedną osobę (ta która ostatni raz zmodyfikowałem w tabeli zgony) mimo że w tabeli jest dodane że gracz zabił 3 osoby, to i tak pokazuje tą jedną osobę która była zmodyfikowana w tabeli ostatni raz. Przynajmniej jak ktoś nikogo nie zabił to nie błędów lecz były (jakoś naprawiłem :P)

603xia.jpg

tabela zgony:

 

 

we7zb3.jpg

 

 

 

ID gracza Alti329 to 7.

Opublikowano

@Altiruss, MySql to baza danych, a mysql, mysqli i PDO to biblioteki php do jej obsługi. Do gier viawww najlepiej używać MySqli, tak na szybko:

//połączenie:
$db = new mysqli($host, $user, $password, $base);
//wykonanie zapytania:
$db->query("ZAPYTANIE");
//np.
$query = $db->query("SELECT * FROM tabelka");
//ilość rekordów:
$how = $query->num_rows;
//pobranie danych:
$data = $query->fetch_assoc();
Co do "Brak Gildi", nie zapomniałeś o:

else echo 'Brak gildii.';
? ;)

@Altiruss zapewne nie pobierasz danych w pętli tylko tak jak już masz w skrypcie. :p

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

@Altiruss, MySql to baza danych, a mysql, mysqli i PDO to biblioteki php do jej obsługi. Do gier viawww najlepiej używać MySqli, tak na szybko:

//połączenie:
$db = new mysqli($host, $user, $password, $base);
//wykonanie zapytania:
$db->query("ZAPYTANIE");
//np.
$query = $db->query("SELECT * FROM tabelka");
//ilość rekordów:
$how = $query->num_rows;
//pobranie danych:
$data = $query->fetch_assoc();
Co do "Brak Gildi", nie zapomniałeś o:

else echo 'Brak gildii.';
? ;)

@Altiruss zapewne nie pobierasz danych w pętli tylko tak jak już masz w skrypcie. :P

 

 

Tak zapomniałem :(

Co do MySQLI to na pewno w przyszłości jeszcze będę miał styczność więc poczytam o tym kiedyś :P

A jesteś w stanie mi pomóc z problemem podanym w poście wyżej? :D

 

 

OUPS kurde sorki do wcześniejszego postu zapomniałem dodać kod:

 

echo "<br><h3>".$urow["nick"]. " Ostatnio zabił:</h3>";
 
$usr = addslashes($_GET['graczID']);
$query  = "SELECT * FROM gracze where graczID= '$usr'";
$result = mysql_query($query) or die("Query failed");
$urow = mysql_fetch_array($result);
 
$query  = "SELECT zabityID, zabijajacyID FROM zgony WHERE zabijajacyID=".$urow['graczID'];
$result = mysql_query($query) or die("Query failed");
$grow = mysql_fetch_array($result);
 
if($grow['zabijajacyID'] > NULL){
$query  = "SELECT nick FROM gracze WHERE graczID=".$grow['zabityID'];
$result = mysql_query($query) or die("Query failed");
$lrow = mysql_fetch_array($result);
echo '<a href="player.php?graczID=' . $grow["zabityID"] .'"><span class="hint--top" data-hint="' . $lrow["nick"] . '"><img src="https://minotar.net/helm/'. $lrow["nick"] .'" width="35"></a></span> ';
}
Opublikowano

echo "<br><h3>".$urow["nick"]. " Ostatnio zabił:</h3>";
 
$query  = "SELECT zabityID, zabijajacyID FROM zgony WHERE zabijajacyID=".$urow['graczID'];
$result = mysql_query($query) or die("Query failed");
if(mysql_num_rows($result) > 0){
while($zrow = mysql_fetch_array($result)){
 
$query  = "SELECT nick FROM gracze WHERE graczID=".$zrow['zabityID'];
$result = mysql_query($query) or die("Query failed");
$prow = mysql_fetch_array($result);
echo '<a href="player.php?graczID=' . $zrow["zabityID"] .'"><span class="hint--top" data-hint="' . $prow["nick"] . '"><img src="https://minotar.net/helm/'. $prow["nick"] .'" width="35"></a></span> ';
}
}else echo 'Brak zabitych.';
 

@Edit: ale nie jest to optymalne. :c

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

@1361622928-U485574.pngBlackPanda o co chodzi z "Optymalne" sorry ale nie jestem świetny w Polskim iż mieszkam w UK ale niej więcej wiem co to znaczy lecz nie jestem pewny :) chodzi mi raczej co to ma do tego kodu :P

 

//EDIT nadal pokazuje tylko jedno zabicie :(

Opublikowano

optymalny - najlepszy z możliwych w jakichś warunkach.

 

 

Jakie id ma grasz którego sprawdzasz? Wydaje mi się, że zabił on tylko jedną osobę.

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

while($zrow = mysql_fetch_array($result)){
zamień na:

while($zrow = mysql_fetch_array($result, MYSQL_NUM)){

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Opublikowano

Teraz jest błąd:
 

Notice: Undefined index: zabityID in C:\xampp\xxx\xxx\player.php on line 82
Query failed

A tutaj kod:

echo "<br><h3>".$urow["nick"]. " Ostatnio zabił:</h3>";
 
$query  = "SELECT zabityID, zabijajacyID FROM zgony WHERE zabijajacyID=".$urow['graczID'];
$result = mysql_query($query) or die("Query failed");
if(mysql_num_rows($result) > 0){
while($zrow = mysql_fetch_array($result, MYSQL_NUM)){
 
$query  = "SELECT nick FROM gracze WHERE graczID=".$zrow['zabityID']; //Linijka 82
$result = mysql_query($query) or die("Query failed");
$prow = mysql_fetch_array($result);
echo '<a href="player.php?graczID=' . $zrow["zabityID"] .'"><span class="hint--top" data-hint="' . $prow["nick"] . '"><img src="https://minotar.net/helm/'. $prow["nick"] .'" width="35"></a></span> ';
}
}else echo 'Brak zabitych.';
Opublikowano

Jeste debilem. xD

$query  = "SELECT nick FROM gracze WHERE graczID=".$zrow['zabityID']; //Linijka 82
$result = mysql_query($query) or die("Query failed");
$prow = mysql_fetch_array($result);
zamień na:

$pquery  = "SELECT nick FROM gracze WHERE graczID=".$zrow['zabityID'];
$presult = mysql_query($pquery) or die("Query failed");
$prow = mysql_fetch_array($presult);
;)

Ostatnio brak czasu i utrudnienia...

...+ Java liżę xD

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...