Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]php , mysql, implode
canismajoris
post
Post #1





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

Ostrzeżenie: (0%)
-----


Cześć , Proszę o pomoc.
mam kod w php:

  1. $nick2=array($nick);echo "</br>1";print_r($nick2);
  2. $users2=explode(";",$zap5);echo "</br>2";print_r($users2);
  3. $res=array_diff($users2,$nick2);echo "</br>3";print_r($res);
  4. $res2=implode(";",$res);echo "</br>4";print_r($res2);
  5. $pol->query("update base set users='$res2'");
  6. foreach ($row as $linia){
  7. $users11=explode(";",$res2);echo "</br>5";print_r($users11);
  8. $res12=array_merge($users11,$nick2);echo "</br>6";print_r($res12);
  9. $res13=implode(";",$res12);echo "</br>7";print_r($res13);
  10. $pol->query("update base set users='$res13' where name='$linia'");
  11. }}


to widać na wyjściu:

1Array ( [0] => iphone )
2Array ( [0] => [1] => tablet )
3Array ( [0] => [1] => tablet )
4;tablet
5Array ( [0] => [1] => tablet )
6Array ( [0] => [1] => tablet [2] => iphone )
7;tablet;iphone

a to ląduje w bazie na wszystkich polach:

;iphone


dlaczego to:
$pol->query("update base set users='$res13' where name='$linia'");

nie zapisuje w bazie tego :
;tablet;iphone
a zapisuje tylko :
;iphone
questionmark.gif?

Pewnie to proste, ale nie mogę tego ogarnąć.
Dzięki za pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
Tomplus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


  1. zrób sobie print('<pre>\n"update base set users='$res13' where name='$linia'"\n</pre>')

To zobaczysz błąd.

Te \n<pre> są dla poprawienia wyglądu na stronie.
Go to the top of the page
+Quote Post
canismajoris
post
Post #3





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

Ostrzeżenie: (0%)
-----


Dzięki za odpowiedź, to jest na wyjściu z <pre>:

'update base set users=';tablet;iphone' where name='black'
czyli zapytanie 'query->' odczytuje users z dwoma zmiennymi (;tablet;iphone) , jednak zapisuje w bazie tylko jedną (;iphone),
dlaczego tak się dzieje?
Go to the top of the page
+Quote Post
Tomplus
post
Post #4





Grupa: Zarejestrowani
Postów: 1 879
Pomógł: 230
Dołączył: 20.03.2005
Skąd: Będzin

Ostrzeżenie: (0%)
-----


Wciąż za mało informacji.

1. Co masz pod zmienną $row?
Bo sądzę że, nadpisuje ci się coś.

2. Czy próbowałeś wykonać zapytanie bezpośrednio w konsoli SQL bazy danych np. PHPMyAdmin?
Go to the top of the page
+Quote Post
canismajoris
post
Post #5





Grupa: Zarejestrowani
Postów: 68
Pomógł: 0
Dołączył: 11.01.2012

Ostrzeżenie: (0%)
-----


Cześć

przepisałem skrypt, który ma robić dokładnie to samo tylko napisany jest w inny sposób. Wymiękłem przy poprzednim smile.gif
wklejam całość:

  1.  
  2. require("dblog.php");
  3. $pol=new mysqli($host, $username, $password, $dbname);
  4. $zap=$pol->query("select * from perm");
  5. $zar=$pol->query("show Fields from perm where Field<> 'id_kat' and Field<> 'kat_name'");
  6. while($zap2=mysqli_fetch_array($zap)){
  7. $valid=array();
  8. $zkat=$zap2['kat_name'];
  9. <------>while($zar2=mysqli_fetch_array($zar)){
  10. <------>$user=$zar2['Field'];
  11. <------>$www=$pol->query("select $user from perm where kat_name='$zkat' and $user='1'");
  12. <------>$www2=$www->num_rows;
  13. <------><------>if ($www2 == "1"){array_push($valid,$user);
  14. <------><------>$valid2=implode(",",$valid);}}
  15.  
  16. echo "<div style='float:left;border:solid 1px black;width:300px;padding:3px;'>$zkat</div>";
  17. echo "<div style='float:left;border:solid 1px black;width:300px;padding:3px;'>$valid2</div>";
  18. echo "<div style='clear:both;'></div>";}
  19. mysqli_close($pol);
  20.  
  21.  


valid users dla każdej pozycji zkat jest taka sama, jak zrobić aby dla każdej był inna tak jak jest w db? bo w tym momencie array_push($valid,$user ) tworzy ten sam wynik dla każdej pozycji $zkat.
dzięki za pomoc.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 21:51