цикл while выводит только одну строку - PullRequest
0 голосов
/ 29 апреля 2018

Данные внутри цикла while работают нормально, когда я использую echo перед каждой переменной внутри цикла, но вне цикла php, похоже, не распознает переменные и печатает только один раз, даже если база данных имеет более одной строки. Пожалуйста, помогите!

    if($process['organdoner']=="Yes" && $processorgan['bloodtype']== $process['bloodtype'] && $processorgan['bodytype']== $process['bodytype']  ){ //with same bloodtype,bodytype,intensivecare
        $to=$process['email'];
        $header= "Organ is urgently needed";
        $phquery="SELECT personprofile.firstname,personprofile.lastname,personprofile.fathername,hospital.hospitalname,hospital.geolocation 
        FROM personprofile,hospital,areaname 
        WHERE areaname.id= hospital.area AND personprofile.hospitaladmission= hospital.id AND areaname.area='$city' AND personprofile.admissionreason= 5";
        $fetchospitalperson=  mysqli_query($link,$phquery);
        $processtable=mysqli_fetch_assoc($fetchospitalperson);
        do{
         $messagebody= "Patient Name: ".$processtable['firstname']." ".$processtable['fathername']." ".$processtable['lastname']."  "."Hospital Name:"; 

        //$hyperlink= new DOMDocument();
        //$hyperlink->loadHTML("<html><body><a href='<".$processtable['geolocation']."'>" .$processtable['hospitalname']."</a></body></html>"); 
         $hyperlink= "<html><body><a href='<".$processtable['geolocation']."'>".$processtable['hospitalname']."</a></body></html>";
         //Name of the person that needs the blood transfusion along with hospital he is staying at,hyperlinked to its location
        }while($processtable=mysqli_fetch_assoc($fetchospitalperson));

    $message= "Dear"." ".$firstname." ".$lastname.",".PHP_EOL .$messagebody.$hyperlink.PHP_EOL; 
    if(isset($sendtoperson)){   
        if(mail($to,$header,$message)){
            echo "Sent";
        }
        else{ echo "Not sent";}
    }
} 

1 Ответ

0 голосов
/ 29 апреля 2018

Вы перезаписываете переменные каждый раз вокруг цикла, поэтому вместо использования x=y используйте конкатенатор x .= y

do{
     $messagebody .= "Patient Name: ".$processtable['firstname']." ".$processtable['fathername']." ".$processtable['lastname']."  "."Hospital Name:"; 

     $hyperlink .= "<html><body><a href='<".$processtable['geolocation']."'>".$processtable['hospitalname']."</a></body></html>";

}while($processtable=mysqli_fetch_assoc($fetchospitalperson));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...