wyswietlanie znaków

0
if(strlen($typ_oslonki) >= 2) && (strlen($typ_oslonki) <= 3) {
    $typ_oslonki .= "-";
}

Czemu mi to nie chce działać?? Wywala błąd:
Parse error: syntax error, unexpected '&&' (T_BOOLEAN_AND) in C:\xamppp\htdocs\test\update.php on line 23

Chcę aby moja funkcja strlen spełniała te dwa warunki

1
if( (strlen($typ_oslonki) >= 2) && (strlen($typ_oslonki) <= 3)) {
    $typ_oslonki .= "-";
}

Zgubiłeś nawias

0

hehe takie proste a takie głupie. dzieki
A pytanie jaką funkcją sprawdzać z bazy aby mi wyswietlało 2 lub 3 znaki w zalezności jeżeli jest FEX to ma wyswietlać FEX a jesli jest FC- to ma wyswietlać FC. Jaka funkcja i jak tego ifa sprawdzajaćego trzeba by było napisać?

1

Użyj do sprawdzania ostatniego znaku stringa takiej funkcji jak substr.
Przykład :
$string1 = 'FEX';
$string2 = 'FC-';

echo substr($string2, -1); // wyświetli -

0

EEE... A jak to tu dodać??

include('polacz.php');
$l = 1;
if ($sql =  $mysqli->prepare("SELECT * FROM oslonki WHERE deleted = 0")) 
{ 
        $sql->execute();

        $sql->bind_result($id, $typ_oslonki, $typ_oslonki_opis, $dod_typ_oslonki, $dod_typ_oslonki_opis, $kolor, $kolor_opis, $kaliber, $pakowanie, $pakowanie_opis, $dodatki, $dodatki_opis, $metry, $metry_opis, $gatunek, $gatunek_opis,$deleted);

        while ($sql->fetch() || $l<=1)
        { 
          

                echo "<tr>
                        <td>$l</td>
            <td>substr($typ_oslonki$,-1).typ_oslonki_opis</td> //tak nie działa a dokładnie pod zmienną $typ_oslonki są elementy ciągniete z bazy
                        <td>$dod_typ_oslonki$dod_typ_oslonki_opis</td>
                        <td>$kolor$kolor_opis</td>
                        <td>$kaliber</td>
                        <td>$pakowanie$pakowanie_opis</td>
                        <td>$dodatki$dodatki_opis</td>
                        <td>$metry$metry_opis</td>
                        <td>$gatunek$gatunek_opis</td>
                        <td><a href=\"edycja.php?id=$id\">Edytuj</a></td>
                        <td><a href=\"usun.php?id=$id\" onclick=\"javascript:return confirm('Czy na pewno usunąć?'); \">Usuń</a></td>
                   </tr>";
                   $l++;
        }
        $sql->close();
 }
else die( "Błąd w zapytaniu SQL! Sprawdź kod SQL w PhpMyAdmin." );

 $mysqli->close();
0

Nie dziwne, że nie działa skoro wyświetlasz substr($typ_oslonki,-1) - czyli ostatni znak stringa. Musisz sobie to obsłużyć, w taki sposób, że jeżeli ostatnim znakiem stringa jest minus, to wyświetl stringa bez ostatniego znaku. Chyba umiesz napisać takiego prostego ifa ?

0

Ale to będzie if podobny jak w pierwszym poście tylko z funkcją substr??

0

Tak, coś w tym stylu. Spróbuj napisać sam, jak się nie uda to pisz tutaj

0
if( (strlen($typ_oslonki) >= 2) && (strlen($typ_oslonki) <= 3)) {
   substr($string2, -1);
}

Próbowałem tak, ale nie bardzo ehh..

0

zamiast $string2 dałem typ_oslonki i też nic nie dało

0

No nie dało, bo jest źle napisane ;).

if (substr($string2, -1) == '-') {
    echo substr($string2, 0, strlen($string2) - 1);
}

Wstaw u siebie ten kod i zobacz jak to działa, oczywiście zamiast $string2 wstaw swoją wartość.

0
include('polacz.php');
$l = 1;

if ($sql =  $mysqli->prepare("SELECT * FROM oslonki WHERE deleted = 0")) 

{ 
        $sql->execute();

        $sql->bind_result($id, $typ_oslonki, $typ_oslonki_opis, $dod_typ_oslonki, $dod_typ_oslonki_opis, $kolor, $kolor_opis, $kaliber, $pakowanie, $pakowanie_opis, $dodatki, $dodatki_opis, $metry, $metry_opis, $gatunek, $gatunek_opis,$deleted);

        if (substr($typ_oslonki, -1) == '-') {
    echo substr($typ_oslonki, 0, strlen($typ_oslonki) - 1);
}

        while ($sql->fetch() || $l<=1)
        { 
          

                echo "<tr>
                        <td>$l</td>
                        <td>$typ_oslonki$typ_oslonki_opis</td>
                        <td>$dod_typ_oslonki$dod_typ_oslonki_opis</td>
                        <td>$kolor$kolor_opis</td>
                        <td>$kaliber</td>
                        <td>$pakowanie$pakowanie_opis</td>
                        <td>$dodatki$dodatki_opis</td>
                        <td>$metry$metry_opis</td>
                        <td>$gatunek$gatunek_opis</td>
                        <td><a href=\"edycja.php?id=$id\">Edytuj</a></td>
                        <td><a href=\"usun.php?id=$id\" onclick=\"javascript:return confirm('Czy na pewno usunąć?'); \">Usuń</a></td>
                   </tr>";
                   $l++;
        }
        $sql->close();
 }
else die( "Błąd w zapytaniu SQL! Sprawdź kod SQL w PhpMyAdmin." );

 $mysqli->close();

?>

1.Nie wiem czy w dobre miejsce wstawiłem.
2. Jeżeli w dobre to nie działa

0

To już od Ciebie zależy gdzie Ty chcesz to wstawić, ja Ci tylko podpowiedziałem jak to może wygladać

0

No dobra tylko gdzie bym nie wstawił to mi nie działa :(

0

Sprawdzałem u siebie i u mnie działa, także musisz coś źle robić.

0

No ale wg ciebie jeżeli reord np. FC- jest ciągnięty z bazy to powinien działać,tak?

0

No tak, skoro przechowujesz w zmiennej $typ_oslonki wartość "FC-", która pochodzi z bazy danych, a później sobie przerabiasz ją na swoje potrzeby i wyświetlasz, to dlaczego miałoby to nie działać?

0
$typ_oslonki = $mysqli->query('SELECT * FROM oslonki WHERE typ_oslonki!="" AND deleted = 0 ORDER BY typ_oslonki');
echo '<select name="typ_oslonki">';
if (substr($typ_oslonki, -1) == '-') {
    echo substr($typ_oslonki, 0, strlen($typ_oslonki) - 1);
}
while($row1 = mysqli_fetch_row($typ_oslonki)) {
  echo '<option value="'.$row1[1].'">'.$row1[1].$row1[2].'</option>';
}
echo '</select>';
?>

Czyli powinno to zadziałać tu, to dlaczego mi nie chce działać?

0

https://images83.fotosik.pl/1099/810ef1c4a733b7d0med.jpg
bo wiesz o co chodzi żeby mi tego myślnika nie wyświetlało

0

Przecież do $typ_oslonki masz przypisany rezultat z bazy danych, więc musisz puścić pętle po tej zmiennej, tak jak robisz to niż w pętli while. I wtedy możesz zrobić coś takiego :

while($row1 = mysqli_fetch_row($typ_oslonki)) {
  if (substr($row1['rekord_z_bazy'], -1) == '-') {
    echo substr($row1['rekord_z_bazy'], 0, strlen($row1['rekord_z_bazy']) - 1);
}
}

rekord_z_bazy to oczywiście nazwa pola z bazy danych pod ktorą znajduję się wartość FEX lub FC-

0

Daj var_dump($typ_oslonki) po $typ_oslonki = $mysqli->query('SELECT * FROM oslonki WHERE typ_oslonki!="" AND deleted = 0 ORDER BY typ_oslonki');
I napisz co zwraca

0

zrobiłem ale ta funkcja mi wypisuje wszystkie te co są 2 znakowe w jednym ciągu a nie w tych moich listach rozwijanych

0

Wklej tutaj to co Ci wypisała ta funkcja

0

var dump zwraca:
object(mysqli_result)#2 (5) { ["current_field"]=> int(0) ["field_count"]=> int(17) ["lengths"]=> NULL ["num_rows"]=> int(13) ["type"]=> int(0) }

0

Nie wiem jaką masz strukturę bazy danych. Jak wygląda tabela oslonki ? Możesz podesłać jakiegoś screena?

0

https://images84.fotosik.pl/1100/fe0020502faf0a99gen.jpg

Mniejwiecej tak, ten screen nie ma id 1 ale w nowej bazie jest on aktualny

Panel admina ma wygląd bazy tylko jest bardziej czytelny no i w nim też chce się pozbyć tych minusów

0

Skoro nie chcesz minusów w bazie, to po co je dodajesz? Kolejna sprawa, jaki efekt chcesz osiągnąć? Bo już się pogubiłem.. Prosta sprawa, wyciągasz dane z bazy, obrabiasz je sobie tak jak chcesz i wyświetlasz - prościej już nie potrafię Ci tego wytłumaczyć.

0

Popatrz na to : To przykładowy kod produktu który został sprzedany: FC---C03-050-R00-00500-A

Na tej stronie internetowej:

uzytkownik wybiera parametry jakie mu odpowiadają, w zależnosci co wybierze wyświetli mu się komunikat aby zgłosił sie z działem sprzedaży lub technologi (jezli kiedykolwiek produkt nie był sprzedany nie mam takiego rekordu w bazie:

wiec dlatego te minusy mi trzeba aby to co uzyktownik wybrał mogło zostać prównane z kodami z bazy.

Chodzi mi o to że strona internetowa jest testowa tak czy inaczej, ale szpetnie wyglądają te minusy, to samo w panelu admina.

0

Rozumiem, więc chcesz w polu typu select usunąć minusa przy nazwie, jeśli jest na końcu? I tylko tam ?

0

tak dokładnie

1 użytkowników online, w tym zalogowanych: 0, gości: 1