Re: [PHP-DB] What is my Mistake?

2014-06-24 Thread Karl DeSaulniers
On Jun 24, 2014, at 12:27 AM, Ethan Rosenberg erosenb...@hygeiabiomedical.com 
wrote:

 Dear List -
 
 I know I have a mistake here, but I cannot find it.
 
 This is a part of a switch.
 
 The switch is fed with a formatted phone number [123-456-7890], which is then 
 tested for validity, and if valid the results of the query are displayed.  I 
 cannot get to the display part.
 
 Here is the code:

...
   
 
 TIA
 
 Ethan
 

Hi Ethan,
Try this. I did it on the fly and haven't tested, but I think it will put you 
on the right path.
You most likely will have to put your own juice on $return_string. 
I tried to follow as best as I could to the type of output your wanting.
HTH.

[CODE]

switch (step) {
case 'step28':
$return_string = 'Here we are, Step 28';
$Phone = ;
$phn = $_POST['phone'];
$dsh = '-';
$i = 0;
while($i  strlen($phn)) {
if($i === 2 || $i === 6) {
$Phone .= $phn[$i].$dsh;
} else {
$Phone .= $phn[$i];
}
$i++;
}
$sql1 =SELECT Cust_Num, Lname, Fname FROM Customers WHERE Phone = 
'.mysqli_real_escape_string($Phone).' ;
$result1 = mysqli_query($cxn, $sql1);
$return_string .= 'here2';  

if ( 0 === $result1-num_rows ) {   
$return_string = 'div style=text-align:center;strong 
style=margin-bottom:32px;No Match Found/strong/div';
} else {
$return_string .= 'here3';
$return_string .= 'br /result.  '.$result1;
$result = 0;
$return_string .= 'div style=text-align:center;
table border=4 cellpadding=5 cellspacing=55 rules=all 
frame=box
tr class=heading
thCust. Number/th
thLast Name/th
thFirst Name/th
/tr'; 
$row1 = mysqli_fetch_row($result1); 
while($row1) {
$return_string .= 'tr
td'.htmlspecialchars($row1[0]).'/td
td'.htmlspecialchars($row1[1]).'/td
td'.htmlspecialchars($row1[2]).'/td
/tr';
}
}
$return_string .= '/table/div';
break;
}

[END CODE]

Best,

Karl DeSaulniers
Design Drumm
http://designdrumm.com
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] What is my Mistake?

2014-06-24 Thread Karl DeSaulniers
On Jun 24, 2014, at 2:46 AM, Karl DeSaulniers k...@designdrumm.com wrote:

 On Jun 24, 2014, at 12:27 AM, Ethan Rosenberg 
 erosenb...@hygeiabiomedical.com wrote:
 
 Dear List -
 
 I know I have a mistake here, but I cannot find it.
 
 This is a part of a switch.
 
 The switch is fed with a formatted phone number [123-456-7890], which is 
 then tested for validity, and if valid the results of the query are 
 displayed.  I cannot get to the display part.
 
 Here is the code:
 
 ...
  
 
 TIA
 
 Ethan
 
 
 Hi Ethan,
 Try this. I did it on the fly and haven't tested, but I think it will put you 
 on the right path.
 You most likely will have to put your own juice on $return_string. 
 I tried to follow as best as I could to the type of output your wanting.
 HTH.
 
 [CODE]
 
 switch (step) {
   case 'step28':
   $return_string = 'Here we are, Step 28';
   $Phone = ;
   $phn = $_POST['phone'];
   $dsh = '-';
   $i = 0;
   while($i  strlen($phn)) {
   if($i === 2 || $i === 6) {
   $Phone .= $phn[$i].$dsh;
   } else {
   $Phone .= $phn[$i];
   }
   $i++;
   }
   $sql1 =SELECT Cust_Num, Lname, Fname FROM Customers WHERE Phone = 
 '.mysqli_real_escape_string($Phone).' ;
   $result1 = mysqli_query($cxn, $sql1);
   $return_string .= 'here2';  
 
   if ( 0 === $result1-num_rows ) {   
   $return_string = 'div style=text-align:center;strong 
 style=margin-bottom:32px;No Match Found/strong/div';
   } else {
   $return_string .= 'here3';
   $return_string .= 'br /result.  '.$result1;
   $result = 0;
   $return_string .= 'div style=text-align:center;
   table border=4 cellpadding=5 cellspacing=55 rules=all 
 frame=box
   tr class=heading
   thCust. Number/th
   thLast Name/th
   thFirst Name/th
   /tr'; 
   $row1 = mysqli_fetch_row($result1); 
   while($row1) {
   $return_string .= 'tr
   td'.htmlspecialchars($row1[0]).'/td
   td'.htmlspecialchars($row1[1]).'/td
   td'.htmlspecialchars($row1[2]).'/td
   /tr';
   }
   }
   $return_string .= '/table/div';
   break;
 }
 
 [END CODE]
 
 Best,
 
 Karl DeSaulniers
 Design Drumm
 http://designdrumm.com

Oh and you might have to check if $i is equal to the string length to get the 
10th number.
So swap this part.


while($i  strlen($phn)) {


with this...


while($i = strlen($phn)) {


Thought of it after the fact.. sorry.

Best,

Karl DeSaulniers
Design Drumm
http://designdrumm.com
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] What is my Mistake?

2014-06-24 Thread Karl DeSaulniers
On Jun 24, 2014, at 2:53 AM, Karl DeSaulniers k...@designdrumm.com wrote:

 On Jun 24, 2014, at 2:46 AM, Karl DeSaulniers k...@designdrumm.com wrote:
 
 On Jun 24, 2014, at 12:27 AM, Ethan Rosenberg 
 erosenb...@hygeiabiomedical.com wrote:
 
 Dear List -
 
 I know I have a mistake here, but I cannot find it.
 
 This is a part of a switch.
 
 The switch is fed with a formatted phone number [123-456-7890], which is 
 then tested for validity, and if valid the results of the query are 
 displayed.  I cannot get to the display part.
 
 Here is the code:
 
 ...
 
 
 TIA
 
 Ethan
 
 
 Hi Ethan,
 Try this. I did it on the fly and haven't tested, but I think it will put 
 you on the right path.
 You most likely will have to put your own juice on $return_string. 
 I tried to follow as best as I could to the type of output your wanting.
 HTH.
 
 [CODE]
 
 switch (step) {
  case 'step28':
  $return_string = 'Here we are, Step 28';
  $Phone = ;
  $phn = $_POST['phone'];
  $dsh = '-';
  $i = 0;
  while($i  strlen($phn)) {
  if($i === 2 || $i === 6) {
  $Phone .= $phn[$i].$dsh;
  } else {
  $Phone .= $phn[$i];
  }
  $i++;
  }
  $sql1 =SELECT Cust_Num, Lname, Fname FROM Customers WHERE Phone = 
 '.mysqli_real_escape_string($Phone).' ;
  $result1 = mysqli_query($cxn, $sql1);
  $return_string .= 'here2';  
 
  if ( 0 === $result1-num_rows ) {   
  $return_string = 'div style=text-align:center;strong 
 style=margin-bottom:32px;No Match Found/strong/div';
  } else {
  $return_string .= 'here3';
  $return_string .= 'br /result.  '.$result1;
  $result = 0;
  $return_string .= 'div style=text-align:center;
  table border=4 cellpadding=5 cellspacing=55 rules=all 
 frame=box
  tr class=heading
  thCust. Number/th
  thLast Name/th
  thFirst Name/th
  /tr'; 
  $row1 = mysqli_fetch_row($result1); 
  while($row1) {
  $return_string .= 'tr
  td'.htmlspecialchars($row1[0]).'/td
  td'.htmlspecialchars($row1[1]).'/td
  td'.htmlspecialchars($row1[2]).'/td
  /tr';
  }
  }
  $return_string .= '/table/div';
  break;
 }
 
 [END CODE]
 
 Best,
 
 Karl DeSaulniers
 Design Drumm
 http://designdrumm.com
 
 Oh and you might have to check if $i is equal to the string length to get the 
 10th number.
 So swap this part.
 
 
 while($i  strlen($phn)) {
 
 
 with this...
 
 
 while($i = strlen($phn)) {
 
 
 Thought of it after the fact.. sorry.
 
 Best,
 
 Karl DeSaulniers
 Design Drumm
 http://designdrumm.com

Also Ethan,
Here are some links I'd like to share with you which I think if you peruse 
through these, 
will give you a better understanding on, 

one: how to protect the database

http://us2.php.net//manual/en/mysqli.real-escape-string.php


two: how to display the data from that database.

http://www.php.net//manual/en/function.htmlspecialchars.php

Both are pretty quick reads and will give you more familiarity with what your 
working on I believe.
I noticed you never use these and IMO they are essential to good database 
programming.
HTH,

Best,

Karl DeSaulniers
Design Drumm
http://designdrumm.com

PS: Others may have a better way then I, but this was a quick throw together. 
Forgive me if it isn't 100% on the money.
--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DB] Re: What is my Mistake?

2014-06-24 Thread Jim Giner

Ethan -
You say your script stops here :  echo 'here3';  To be sure, you mean 
that the script DOES echo out 'here3' or does NOT get there?  I'm going 
to guess that it does get to that echo statement but the very next one 
is going to kill you because you cannot echo out a resource.


ONCE AGAIN - do you have php error checking turned on as you've been 
told many many times?


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Re: What is my Mistake?

2014-06-24 Thread Jim Giner

I don't recognize your error reporting configuration.  Try this instead:

error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors','1');


As for php startup errors, if you are not running your own installation, 
you don't need that.


So - if 'here3' is never echoed, then your code does NOT stop there - it 
obviously stopped somewhere prior to that.  Add more debugging lines to 
isolate exactly how far it gets.


(I assume that all of your other echos did appear?)

--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Re: What is my Mistake?

2014-06-24 Thread Jim Giner
Looking at your code again, I think that your query failed and your lack 
of error reporting isn't showing the error that occurred when  you tried 
to access a property of the result which is not a resource but merely a 
value of 'false'.


One should ALWAYS check the result of operations before assuming that 
they succeeded and proceeding onwards in code.  Saves lots of lost time.


--
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-DB] Re: What is my Mistake?

2014-06-24 Thread Ethan Rosenberg, PhD

On 06/24/2014 08:12 PM, Ethan Rosenberg, PhD wrote:

On 06/24/2014 01:55 PM, Jim Giner wrote:

Looking at your code again, I think that your query failed and your lack
of error reporting isn't showing the error that occurred when  you tried
to access a property of the result which is not a resource but merely a
value of 'false'.

One should ALWAYS check the result of operations before assuming that
they succeeded and proceeding onwards in code.  Saves lots of lost time.



Jim -

Thanks.

Error checking as per your instructions.
No errors.

Attached are two files.  I tried to mimic the behavior of the program.
One file does the data input and the second processes it.

The display on the browser screen is

select Cust_Num, Lname, Fname from Customers where Phone =
'845-123-3298' here2here3
result.
Last Name First Name

When the above query is run from the command line -

mysql select Cust_Num, Lname, Fname from Customers where Phone =
'845-123-3298';
+--++---+
| Cust_Num | Lname  | Fname |
+--++---+
|1 | Kitten | Gingy |
| 1153 | Puppy  | Woofy |
| 1154 | Puppy  | Woofy |
+--++---+

TIA

Ethan



Jim -

I think I know the problem.

These two lines of code were added -


$nmbr=mysqli_num_rows ( $result1 );
echo 'br 
/number of rows $nmbr';

The echo statement does not return a number.
Therefore ... bad connection. The script failed at the output stage 
because there were no results.


I'm again attaching the two files. They are somewhat modified.  The only 
thing in the first file is the form. The second file contains the 
calculations


TIA

Ethan



I have made the linnk $cxn a global variable in the in both scripts.
attachment: TestPh.php
attachment: StartTestPh2.php
-- 
PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php