sprawdzanie czy rekord istnieje mysqli php7

0

Witam.
Bardzo bardzo proszę o pomoc, bo męczę się na różne sposoby cały dzień a jestem raczej początkującym programistą.
Zaczynałem dość dawno i wtedy wszystko działało na mysql a teraz jest mysqli i php7.
Próbowałem z COUNT, dodawałem w zapytaniu query dodatkowo "AS" i nic.

JAK SPRAWDZIĆ CZY REKORD WYSTĘPUJE W BAZIE MYSQLI?
Jak widać chcę sprawdzić czy dany numer telefonu występuje czy też nie w bazie i zwrócić odpowiedni komunikat.

<?php require ('connectbase.php'); // wstawiamy dane configuracyjne do polaczenia z baza 
$telefon = 123123123;
$query = mysqli_query("SELECT telefon FROM users WHERE telefon='$telefon'");
$zapytanie = mysqli_query($query);
$wiersze = mysqli_num_rows($zapytanie);

if($wiersze != 0)
{
echo "istnieje";
}
else
{
echo "nie istnieje";
}
@mysqli_close($db);		
?>
0
if (mysqli_num_rows($query) > 0) {
    // gdy rekord istnieje w bazie
}  else {
 // gdy nie istnieje
}

Daj znać czy pomogło oraz na przyszłość po wstępnym zapoznaniu się z mysqli polecam Ci zainteresować się PDO, z którego należy korzystać - bindowanie parametrów itp. ;)

1

a sprawdzałeś co ma zmienna $wiersze?

print "mam wartosc =" .$wiersze;

ogólnie spróbuj tak:

mysqli_num_rows > 0

0

Nadal mi to nie działa : (
http://taniepranie.zgora.pl/test.php

<?php require ('connectbase.php'); // wstawiamy dane configuracyjne do polaczenia z baza 
$telefon = 6;
$query = mysqli_query("SELECT telefon FROM users WHERE telefon='$telefon'");
$zapytanie = mysqli_query($query);
$wiersze = mysqli_num_rows($zapytanie);

if (mysqli_num_rows($query) > 0) {
    echo 'jest';
}  else {
     echo 'nie ma';
}		
?>

A co do PDO to już czytałem, że coś takiego jest, ale chwilo nie mam za bardzo czasu. Staram się na razie zrobić to tak, żeby działało a później będę czytał i edukował się dalej. ;]

1

Działa

Wywala Ci " nie ma " więc nie ma rezultatu

pokaż formularz

0
Aby anulować swoją rezerwację proszę podać swój numer telefonu.
<form name="form1" method="post" action="anulacja2.php">
<input type="text" name="telefon" value="" required />
<input value="ANULUJ REZERWACJE" type="submit"></tr>
</form>

W bazie danych jest numer telefonu "6" a wywala, że nie ma, więc nie działa. (zapomniałem powiedzieć).
Dodałem do bazy również numer "123123123", żeby sprawdzić raz jeszcze i nadal nic.
Formularz na razie jest nie połączony. Jak ogarnę jak to ma być, to zamiast:

$telefon = 123123123;

wstawię:

$telefon=$_POST['telefon'];
<?php require ('connectbase.php'); // wstawiamy dane configuracyjne do polaczenia z baza 
$telefon = 123123123;
$query = mysqli_query("SELECT telefon FROM users WHERE telefon='$telefon'");
$zapytanie = mysqli_query($query);
$wiersze = mysqli_num_rows($zapytanie);

if (mysqli_num_rows($query) > 0) {
    echo 'jest';
}  else {
     echo 'nie ma';
}		
?>
1

Można też tak:

<?php 

$con = mysqli_connect("localhost", "", "", "");


$telefon = 6;
$query = "SELECT telefon FROM users WHERE telefon='$telefon'";


if ($result = mysqli_query($con,$query)) {
	
	 $wiersze = mysqli_num_rows($result);
	 
	 if ($wiersze > 0)
	 {
		 
	 while ($row = $result->fetch_assoc()) {
        $wynik = $row["telefon"];
		
	 }
    echo 'jest';
	echo '<br>wiersze = ' . $wiersze . 'numbero telefono = '.$wynik['telefon'];
	 }
	 else
	 {
		 echo '<br>wiersze = ' . $wiersze;
		echo ' nie ma '; 
	 } 
}  else {
     echo 'blad zapytania';
}       
?>

Z wyświetlaniem. Tylko pomyśl skąd się pojawia:

Warning: Illegal string offset 'telefon'

No chyba, że wyświetlanie ogarnąłeś :)

0

Teraz cały czas wyświetla "jest, a zmieniłem numer na taki, którego nie ma.

<?php
$con = mysqli_connect('sql.mibrychcy.nazwa.pl', 'mibrychcy', 'Z24XgfMkbBase', 'mibrychcy'); 
$telefon = 8;
$query = "SELECT telefon FROM users WHERE telefon='$telefon'";
 
if ($result = mysqli_query($con,$query)) {
 
     $wiersze = mysqli_num_rows($result);
    echo 'jest';
}  else {
     echo 'nie ma';
}       
?>
W bazie są numery telefonów:
6
123123123

Na bieżąco zmieniam kod. Można obserwować na http://taniepranie.zgora.pl/test.php

1

zobacz na ten drugi kod ode mnie, po edycie

na nim działa poprawnie

ten pierwszy if sprawdza czy zapytanie poszło .. czyli czy coś ma w sobie a nie koniecznie czy to co chcesz aby miał

0

Działa, ale wyświetla również niepożądane info.

Zaraz edytuje trochę

1

Tylko pomyśl skąd się pojawia:

no serio pomyśl bo ja nie wiem :D

zacznij od uproszczenia tego. niepotrzebne jest tyle zmiennych ... i $row i $wiersze

0

Zbyt szybko napisałem na forum ;p
Zaraz poprawię

0

Działa! Kocham Cię! : D

1
	echo '<br>wiersze = ' . $wiersze . 'numbero telefono = '.$wynik;

XDDDDDDDDDDDDDDDDDDDDDDDDDD XDDDDDDDDDDDDDDDDDDDDDDDDDD

daj tak po prostu ... przecież zmienna już ma ... tablice XDD

a i możesz dać tak tą pętlę:

	 $wynik = array();
	 while ($row = $result->fetch_assoc()) {
        $wynik = $row["telefon"];
		
	 }
	 $result->free();

Oczywiście uporządkuj to sobie... bo teraz jest syf, i da się z mniejszą ilością nadpisanego kodu :)

0

Wiem, wykasowałem to ; p

0

Heheh. Jeszcze raz bardzo Ci dziękuję. Czasem człowiek się zatnie na jakimś momencie i nie może ruszyć. Na prawdę, pół dnia szukałem rozwiązania.

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