Вы также можете проверить, не работает ли $result
так, как до этого, перед выполнением массива fetch
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
if(!$result)
{
echo "error executing query: "+mysql_error();
}else{
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
}
После первого scanf () в каждом scanf () в части форматирования поместите пробел
. Измените этот
scanf("%c",&val);
на этот
scanf(" %c",&val);
Причина в том, что scanf () возвращает, когда видит новую строку, а при первом запуске scanf () вы вводите ввод и нажмите enter. scanf () потребляет ваш вход, но не остается новой строкой, поэтому после scanf () потребляет эту оставшуюся новую строку.
Помещение пробела в части форматирования делает оставшуюся новую строку потребляемой.
Вы можете использовать fgets()
:
#include<stdio.h>
int main() {
int n, i = 0;
char val;
char a[20];
printf("\nEnter the value : ");
fgets(a, 20, stdin);
printf("\nEnter the value to be searched : ");
scanf("%c", &val);
int count = 0;
for (i = 0; i < 20; i++) {
if (a[i] == val) {
printf("\n%c found at location %d", val, i);
count++;
}
}
printf("\nTotal occurance of %c is %d", val, count);
return 0;
}
или очистить stdin
:
#include<stdio.h>
void clearstdin(void) {
int c;
while ((c = fgetc(stdin)) != EOF && c != '\n');
}
int main() {
int n, i = 0;
char val;
char a[20];
printf("\nEnter the value : ");
scanf("%s",a);
clearstdin();
printf("\nEnter the value to be searched : ");
scanf("%c", &val);
int count = 0;
for (i = 0; i < 20; i++) {
if (a[i] == val) {
printf("\n%c found at location %d", val, i);
count++;
}
}
printf("\nTotal occurance of %c is %d", val, count);
return 0;
}
Также см. C: Несколько scanf, когда я вхожу в значении для одного scanf он пропускает второй scanf
printf("\nEnter the value : ");
scanf("%s",a);
printf("\nEnter the value to be searched : ");
scanf("%d",&val); // here is different
Я не знаю, почему, но код выше работает ...
scanf("%d",&val);
Для строки формата вы можете использовать «% c» вместо «% c». Заготовка вызывает scanf (), чтобы пропустить пробел (включая символы новой строки) перед чтением символа.