У меня были некоторые проблемы с этим php, потому что он ничего не возвращал из БД, поэтому я понял, что, возможно, он не получает переменную из $ _POST. Поэтому я попытался распечатать его, и он ничего не возвратил. Итак, я ввел его значение вручную, но ничего не печатает! Хотя он печатает тексты, если бы в скрипте была проблема с синтаксисом, он бы тоже не печатал тексты (я думаю). Так что я не знаю, что не так.
Часть HTML с таблицами будет напечатана!
В конце есть «эхо» чего-нибудь «;» и это тоже напечатано! Единственное, что не печатается, это переменная $ nome.
Извините за португальские тексты, но вам не нужно беспокоиться о них.
<?php
//$nome = $_POST['nome'];
$nome = "renato"; //ive set the value manually for tests
$pdo = new PDO('mysql:host=myserver;dbname=mydb', 'myuser', 'mypw');if ($nome = ""){
$sql = $pdo->query("SELECT * FROM clientes");
}
else{
$sql = $pdo->query("SELECT * FROM clientes WHERE nome='".$nome."'");
}
echo $nome; //prints nothing!
?>
<table border="1px">
<tr>
<td>
<h3>ID</h3>
</td>
<td>
<h3>NOME</h3>
</td>
<td>
<h3>ENDERECO</h3>
</td>
<td>
<h3>BAIRRO</h3>
</td>
<td>
<h3>CIDADE</h3>
</td>
<td>
<h3>FIS_JUR</h3>
</td>
<td>
<h3>RG</h3>
</td>
<td>
<h3>CPF</h3>
</td>
<td>
<h3>TEL</h3>
</td><td>
<h3>TEL2</h3>
</td>
<td>
<h3>DATA_NASC</h3>
</td>
</tr>//this table gets printed!<?php
while($row = $sql->fetch(PDO::FETCH_ASSOC)){
echo "<tr>
<td> {$row['id']}
</td>
<td> {$row['nome']}
</td>
<td> {$row['endereco']}
</td>
<td> {$row['bairro']}
</td>
<td> {$row['cidade']}
</td>
<td> {$row['fis_jur']}
</td>
<td> {$row['rg']}
</td>
<td> {$row['cpf']}
</td>
<td> {$row['tel']}
</td>
<td> {$row['tel2']}
</td>
<td> {$row['data_nasc']}
</td>
</tr>";
//this one prints nothing!
}
echo $nome; //prints nothing
echo "anything"; //yes, this one gets printed
$pdo = null;
$sql = null;
?>
</table>
заменить эту строку
if ($nome = ""){
с
if ($nome == ""){
Вы присваиваете значение вместо сравнения.
`the problem is that single = sign. rather use double == for comparing.`
the batter way checking empty string use
` if ( empty($nome) ){
$sql = $pdo->query("SELECT * FROM clientes");
}else{
$sql = $pdo->query("SELECT * FROM clientes WHERE nome='".$nome."'");
}