Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] funckja in_array
Forum PHP.pl > Forum > Przedszkole
fredzio90
otóż mam problem.. stworzyłem kod który zmienia długie adresy w krótkie... i mam taką funkcje:

  1. <?php
  2. function url_add_sql() {
  3. global $url_new, $url_old, $s_url_tbl, $PHP_SELF, $REMOTE_ADDR, $id, $adres;
  4.  
  5. $tabelka = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  6. $id = '';
  7. for ($i=0; $i<3; $i++)
  8. {
  9. $liczba .= $tabelka[rand()%(strlen($tabelka))];
  10. }
  11.  
  12. $sprZap = mysql_query("SELECT * FROM $s_url_tbl");
  13. while($rr = @mysql_fetch_array($sprZap)) {
  14.  
  15. $nnew = $rr['new'];
  16. $old = $rr['old'];
  17.  
  18. if(in_array($url_new, $rr, true)) {
  19. echo 'Podany Skrót ( <b>'.$url_new.'</b> ) jest już zajęty';
  20. die();
  21. }
  22. }
  23.  
  24. if(empty($url_new)) {
  25. $sqlIns = mysql_query("INSERT INTO $s_url_tbl SET old='$url_old', ip='$REMOTE_ADDR', data=now(), new='$liczba'"); 
  26. } else {
  27. $sqlIns = mysql_query("INSERT INTO $s_url_tbl SET old='$url_old', ip='$REMOTE_ADDR', data=now(), new='$url_new'");
  28. }
  29.  
  30.  
  31. if($sqlIns) {
  32. echo '<center>Dziękujemy, twoje zgłoszenie zostało przyjęte.<br><br><b>Twój Stary adres</b>: '.$url_old.' <br>
  33. <b>Twój Nowy Adres</b>: '.$adres.''.$PHP_SELF.'?url=';
  34. if($url_new<>'') {
  35. echo ''.$url_new.'';
  36. } else {
  37. echo ''.$liczba.'';
  38. }
  39.  
  40. echo '<br><br><br><center><a href="'.$PHP_SELF.'">Short URL</a></center>';
  41. } else {
  42. echo '<center>Niestety nie udało się przyjšć twojego zgłoszenia na stronie!.<br> Skontaktuj się z <a href="mailer.php">Administratorem</a><br><br><a href="'.$PHP_SELF.'">Short URL</a></center>';
  43. }
  44. }
  45. ?>


jak widziecie jst kod:

  1. <?php
  2. if(in_array($url_new, $rr, true)) {
  3. echo 'Podany Skrót ( <b>'.$url_new.'</b> ) jest już zajęty';
  4. die();
  5. ?>


lecz niestey nie wylkapuje czy $url_new ( przesułana nazwa formularza ) znajduje się w bazie....

chodzi mo o to żeby jezeli jest w bazie dany wpis ( $url_new ) to żeby wywaliło funkcje die();

lecz niestety nie działa....

pomóżcie! tiredsmiley.gif
Krzasz
Ja bym to zrobił tak:

TO:
  1. <?php
  2. $sprZap = mysql_query("SELECT * FROM $s_url_tbl");
  3. while($rr = @mysql_fetch_array($sprZap)) {
  4.  
  5. $nnew = $rr['new'];
  6. $old = $rr['old'];
  7.  
  8. if(in_array($url_new, $rr, true)) {
  9. echo 'Podany Skrót ( <b>'.$url_new.'</b> ) jest już zajęty';
  10. die();
  11. }
  12. }
  13. ?>


zamienił na:

  1. <?php
  2. $sprZap = mysql_query("SELECT * FROM $s_url_tbl WHERE new = '".$url_new."' OR old = '".$url_new."'");
  3. if (mysql_num_rows($sprZap) >0)
  4. die('Podany Skrót ( <b>'.$url_new.'</b> ) jest już zajęty');
  5. else {
  6. //rób coś innego
  7. }
  8. ?>


Nie wiem czy potrzebne jest to OR old = '".$url_new."' jak nie to usuń smile.gif
fredzio90
ohohohoo naprawde dziękuje, nie wymyślił bym tego ;D

TTTTTTTTHHHHHHHHHHHHHXXXXXXXXXXX rolleyes.gif guitar.gif

DZIAŁAAAAAAAAAA guitar.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.